hobo/tox.ini

158 lines
4.2 KiB
INI

# 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]
min_version = 4
toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/hobo/{env:BRANCH_NAME:}
envlist =
py3-django32-{hobo,authentic,multipublik,multitenant,schemas,passerelle}
code-style
pylint
[testenv]
usedevelop = True
parallel_show_output = True
setenv =
# necessary to separate coverage binary output between parallel environments
COVERAGE_FILE=.coverage.{envname}
DISABLE_GLOBAL_HANDLERS=1
BRANCH_NAME={env:BRANCH_NAME:}
DB_ENGINE=django.db.backends.postgresql_psycopg2
SETUPTOOLS_USE_DISTUTILS=stdlib
JUNIT=--junitxml=junit-{envname}.xml
COVERAGE=--cov=hobo/ --cov-config .coveragerc --cov-report= --cov-branch
hobo: DJANGO_SETTINGS_MODULE=hobo.settings
hobo: HOBO_SETTINGS_FILE=tests/settings.py
schemas: DJANGO_SETTINGS_MODULE=hobo.settings
schemas: HOBO_SETTINGS_FILE=tests_schemas/settings.py
multitenant: PYTHONPATH=tests_multitenant
multitenant: DJANGO_SETTINGS_MODULE=settings
multipublik: PYTHONPATH=tests_multipublik
multipublik: DJANGO_SETTINGS_MODULE=settings
authentic: DEBIAN_CONFIG_COMMON=debian/debian_config_common.py
authentic: DJANGO_SETTINGS_MODULE=authentic2.settings
authentic: AUTHENTIC2_SETTINGS_FILE=tests_authentic/settings.py
passerelle: DEBIAN_CONFIG_COMMON=debian/debian_config_common.py
passerelle: PASSERELLE_SETTINGS_FILE=tests_passerelle/settings.py
passerelle: DJANGO_SETTINGS_MODULE=passerelle.settings
# test directories
hobo: TEST_DIRECTORY=tests/
schemas: TEST_DIRECTORY=tests_schemas/
multitenant: TEST_DIRECTORY=tests_multitenant/
multipublik: TEST_DIRECTORY=tests_multipublik/
authentic: TEST_DIRECTORY=tests_authentic/
passerelle: TEST_DIRECTORY=tests_passerelle/
deps:
django32: django>=3.2,<3.3
pytest!=6.0.0
pytest-cov
pytest-django
pytest-mock
pyquery
coverage
cssselect
WebTest
pyquery
django-mellon
django-webtest
Markdown<3
authentic: https://git.entrouvert.org/entrouvert/authentic/archive/main.tar.gz
passerelle: https://git.entrouvert.org/entrouvert/passerelle/archive/main.tar.gz
passerelle: python-memcached
multitenant: systemd-python
https://git.entrouvert.org/entrouvert/debian-django-tenant-schemas/archive/main.tar.gz
mock<4
httmock
requests
responses
pytest-freezegun
xmlschema<1.1
enum34<=1.1.6
psycopg2
psycopg2-binary
sorl-thumbnail
djangorestframework>=3.12,<3.13 # matching debian bullseye
Pillow
black: pre-commit
git+https://git.entrouvert.org/publik-django-templatetags.git
allowlist_externals =
./getlasso3.sh
commands =
./getlasso3.sh
py.test {posargs:{tty::{env:JUNIT:}} {tty::{env:COVERAGE:}} {env:TEST_DIRECTORY:}}
[testenv:code-style]
basepython = python3
skip_install = true
deps =
pre-commit
commands =
pre-commit run --all-files --show-diff-on-failure
[testenv:update-locales]
setenv =
DJANGO_SETTINGS_MODULE=hobo.settings
allowlist_externals =
./getlasso3.sh
commands =
./getlasso3.sh
./manage.py makemessages --add-location=file
./manage.py compilemessages
[testenv:coverage-report]
setenv =
deps =
coverage
commands =
python3 -m coverage erase --data-file=.coverage
python3 -m coverage combine
python3 -m coverage html -d htmlcov --show-contexts
python3 -m coverage xml
[testenv:pylint]
setenv =
TOX_WORK_DIR={toxworkdir}
SETUPTOOLS_USE_DISTUTILS=stdlib
DB_ENGINE=django.db.backends.postgresql_psycopg2
NUMPROCESSES={env:NUMPROCESSES:1}
deps =
pylint<3
astroid<3
pylint-django
django>=3.2,<3.3
pyquery
pytest!=6.0.0
pytest-cov
pytest-django
pytest-mock
pyquery
coverage
cssselect
WebTest
pyquery
django-mellon
django-webtest
Markdown<3
https://git.entrouvert.org/entrouvert/debian-django-tenant-schemas/archive/main.tar.gz
mock<4
httmock
requests
responses
pytest-freezegun
xmlschema<1.1
enum34<=1.1.6
psycopg2
psycopg2-binary
sorl-thumbnail
Pillow
uwsgidecorators
https://git.entrouvert.org/entrouvert/authentic/archive/main.tar.gz
allowlist_externals =
./getlasso3.sh
./pylint.sh
commands =
./getlasso3.sh
./pylint.sh hobo tests tests_authentic tests_multipublik tests_multitenant tests_passerelle tests_schemas