[tox] envlist = py{36,37,38,39,310}-dj{22,31,32} py{38,39,310}-djmain lint sphinx readme [gh-actions] python = 3.6: py36 3.7: py37 3.8: py38, lint, sphinx, readme 3.9: py39 3.10: py310 [gh-actions:env] DJANGO = 2.2: dj22 3.1: dj31 3.2: dj32 main: djmain [testenv] deps = coverage dj22: Django>=2.2,<3.0 dj31: Django>=3.1,<3.2 dj32: Django>=3.2,<3.3 djmain: https://github.com/django/django/archive/main.tar.gz pytest pytest-cov commands = pip install -e . pip install -e demo # doctests pytest --cov=django_downloadview --cov=demoproject {posargs} # all other test cases coverage run --append {envbindir}/demo test {posargs: tests 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/