[tox] envlist = py{38,39,310,311,312}-dj{42}-{unittest,pytest,checkmigrations} py{310,311,312,313,314}-dj{50}-{unittest,pytest,checkmigrations} py{310,311,312,313,314}-dj{51}-{unittest,pytest,checkmigrations} py{310,311,312,313,314}-dj{52}-{unittest,pytest,checkmigrations} py{310,311,312,313,314}-dj{main}-{unittest,pytest,checkmigrations} lint sphinx readme [gh-actions] python = 3.8: py38, lint, sphinx, readme 3.9: py39 3.10: py310 3.11: py311 3.12: py312 3.13: py313 3.14: py314 [gh-actions:env] DJANGO = 4.2: dj42 5.0: dj50 5.1: dj51 5.2: dj52 main: djmain [testenv] deps = coverage dj42: Django>=4.2,<5.0 dj50: Django>=5.0,<5.1 dj51: django>=5.1,<5.2 dj52: django>=5.2,<5.3 djmain: https://github.com/django/django/archive/main.tar.gz pytest pytest-cov commands = pip install -e . pip install -e demo # doctests and unit tests pytest --cov=django_downloadview --cov=demoproject {posargs} # demo project integration tests coverage run --append {envbindir}/demo test {posargs: demoproject} coverage xml pip freeze ignore_outcome = djmain: True [testenv:lint] deps = flake8 black isort commands = flake8 demo django_downloadview tests black --check demo django_downloadview tests isort --check-only --recursive demo django_downloadview tests [testenv:sphinx] deps = Sphinx commands = pip install -e . make --directory=docs SPHINXOPTS='-W' clean {posargs:html doctest linkcheck} whitelist_externals = make [testenv:readme] description = Ensure README renders on PyPI deps = twine commands = {envpython} setup.py -q sdist bdist_wheel twine check dist/* [flake8] max-line-length = 88 ignore = E203, W503 [coverage:run] source = django_downloadview,demo [pytest] DJANGO_SETTINGS_MODULE = demoproject.settings addopts = --doctest-modules --ignore=docs/ python_files = tests/*.py