freeipa/tox.ini
Christian Heimes 2a459ce0f2 Make python-ldap optional for PyPI packages
python-ldap is a Python package with heavy C extensions. In order to
build python-ldap, not only OpenLDAP development headers are necessary,
but also OpenSSL, Cyrus SASL, and MIT KRB5 development headers.

A fully functional ipaclient doesn't need an LDAP driver. It talks JSON
RPC over HTTPS to a server. python-ldap is only used by ipapython.dn.DN
to convert a string to a DN with ldap_str2dn(). The function is simple
and can be wrapped with ctypes in a bunch of lines.

Related: https://pagure.io/freeipa/issue/6468
Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
2019-04-26 12:53:23 +02:00

56 lines
1.3 KiB
INI

[tox]
minversion=2.3.1
envlist=py36,py37,pylint3,pypi
skip_missing_interpreters=true
skipsdist=true
[testenv]
# always re-create virtual env. A special install helper is used to configure,
# build and install packages.
recreate=True
install_command={toxinidir}/.tox-install.sh wheel_bundle {envpython} {envsitepackagesdir} {packages}
changedir={envdir}
setenv=
HOME={envtmpdir}
deps=
ipaclient[csrgen]
ipatests
commands=
{envbindir}/ipa --help
{envpython} -bb {envbindir}/ipa-run-tests --ipaclient-unittests --junitxml={envdir}/junit-{envname}.xml
[testenv:pylint3]
basepython=python3
deps=
ipaclient[csrgen,otptoken_yubikey,ldap]
pylint
commands=
{envpython} -m pylint \
--rcfile={toxinidir}/pylintrc \
--load-plugins pylint_plugins \
{envsitepackagesdir}/ipaclient \
{envsitepackagesdir}/ipalib \
{envsitepackagesdir}/ipapython
[testenv:pypi]
recreate=True
install_command={toxinidir}/.tox-install.sh pypi_packages {envpython} {envsitepackagesdir} {packages}
changedir={envdir}
setenv=
HOME={envtmpdir}
deps=
pytest
ipaclient
# placeholder
ipaplatform
ipaserver
ipatests
commands=
{envpython} -m pytest {toxinidir}/pypi/test_placeholder.py
[pycodestyle]
# E402 module level import not at top of file
# W504 line break after binary operator
ignore = E402, W504