[tox]
minversion=2.3.1
envlist=py36,py37,py38,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} {envdir} {packages}
changedir={envdir}
setenv=
    HOME={envtmpdir}
deps=
    ipaclient
    ipatests
commands=
    {envbindir}/ipa --help
    {envbindir}/ipa-run-tests --junitxml={envdir}/junit-{envname}.xml {posargs:--ipaclient-unittests}

[testenv:pylint3]
basepython=python3
deps=
    ipaclient[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} {envdir} {packages}
changedir={envdir}
setenv=
    HOME={envtmpdir}
deps=
    pytest
    ipaclient
    # placeholder
    ipaplatform
    ipaserver
    ipatests
commands=
    {envpython} -m pytest {posargs:{toxinidir}/pypi/test_placeholder.py}

[pycodestyle]
# E402 module level import not at top of file
# E203 whitespace before ':' (not PEP-8)
# E231 missing whitespace after ',' (used by black)
# W503 line break before binary operator (not PEP-8)
# E731 do not assign a lambda expression
# E741 ambiguous variable name 'l'
ignore = E203, E402, E231, W503, E731, E741
max-line-length = 80
# exclude auto-generated remote plugins
exclude=.git,.venv,build,_build,rpmbuild,2_49,2_114,2_156,2_164
