# Tox (http://tox.testrun.org/) is a tool for running tests # in multiple virtualenvs. This configuration file will run the # test suite on all supported python versions. To use it, "pip install tox" # and then run "tox" from this directory. [tox] toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/authentic/ envlist = code-style authentic-py3-dj111-drf39 authentic-py3-dj22-drf39 [tox:jenkins] envlist = pylint rbac-py3-dj111 rbac-py3-dj22 authentic-py3-dj111-drf34 authentic-py3-dj111-drf39 authentic-py3-dj22-drf39 [testenv] setenv = authentic: AUTHENTIC2_SETTINGS_FILE=tests/settings.py authentic: DJANGO_SETTINGS_MODULE=authentic2.settings rbac: DJANGO_SETTINGS_MODULE=django_rbac.test_settings authentic: TESTS=tests/ authentic-oldldap: TESTS=tests/test_ldap.py rbac: TESTS=tests_rbac/ DB_ENGINE=django.db.backends.postgresql_psycopg2 SETUPTOOLS_USE_DISTUTILS=stdlib JUNIT={tty::-o junit_suite_name={envname} --junit-xml=junit-{envname}.xml} COVERAGE={tty::--cov --cov-append --cov-report xml --cov-report html --cov-config=tox.ini} fast: FAST=--nomigrations reusedb: REUSEDB=--reuse-db !nosw: SW={tty:--sw:} slow: PYTESTOPTIONS={env:PYTESTOPTIONS:} --slow passenv= BRANCH_NAME # support for pg_virtualenv PGPORT PGHOST PGUSER PGPASSWORD PYTESTOPTIONS deps = pip > 9 dj111: django<2.0 dj22: django<2.3 django-tables<2.0 psycopg2-binary coverage pytest-cov pytest-django pytest-random mock<4 pytest!=5.3.3 lxml cssselect django-webtest Markdown<3 WebTest pyquery httmock pytz pytest-freezegun faker enum34<=1.1.6 ldaptools>=0.15 oldldap: python-ldap<3 py2: django-appconf<1.0.4 py2: django-filter<2 py3: django-filter<2.3 drf34: djangorestframework>=3.4,<3.4.1 drf39: djangorestframework>=3.9.2,<3.10 usedevelop = True commands = py2: ./getlasso.sh py3: ./getlasso3.sh authentic: ./check-migrations.sh rbac,authentic: py.test {env:PYTESTOPTIONS:} {env:FAST:} {env:REUSEDB:} {env:COVERAGE:} {env:JUNIT:} {env:SW:} {posargs:{env:TESTS} --random-group} [testenv:pylint] basepython = python3 setenv = DJANGO_SETTINGS_MODULE=authentic2.settings SETUPTOOLS_USE_DISTUTILS=stdlib deps = pylint pylint-django psycopg2-binary commands = ./getlasso3.sh bash -c 'pylint -f parseable --rcfile pylint.rc src/authentic2_idp_cas src/authentic2_auth_oidc src/authentic2_idp_oidc src/authentic2_auth_saml src/authentic2 src/django_rbac src/authentic2_auth_fc | tee pylint.out' [testenv:manage] usedevelop = True setenv = DJANGO_SETTINGS_MODULE=authentic2.settings AUTHENTIC2_SETTINGS_FILE=local_settings.py deps = psycopg2-binary django-debug-toolbar ipython ipdb commands = ./getlasso3.sh ./authentic2-ctl {posargs:--help} [testenv:code-style] skip_install = true deps = pre-commit commands = pre-commit run black --all-files --show-diff-on-failure pre-commit run isort --all-files --show-diff-on-failure [pytest] filterwarnings = ignore once:::authentic2.* junit_family=xunit2 [coverage:run] source = authentic2 authentic2_auth_fc authentic2_auth_oidc authentic2_auth_saml authentic2_idp_cas authentic2_idp_oidc django_rbac branch = True