; a generative tox configuration, see: https://testrun.org/tox/latest/config.html#generative-envlist [tox] envlist = clean, check, {py27,py37,py38,py39,py310,pypy}, docs, report [testenv] basepython = pypy: {env:TOXPYTHON:pypy} py27: {env:TOXPYTHON:python2.7} py37: {env:TOXPYTHON:python3.7} py38: {env:TOXPYTHON:python3.8} py39: {env:TOXPYTHON:python3.9} py310: {env:TOXPYTHON:python3.10} {clean,check,report,codecov,docs,spell}: python3 setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes passenv = * usedevelop = false deps = -rtest-requirements.txt commands = {posargs:coverage run --parallel -m pytest -W error -vv --random-order-bucket=package tests} [testenv:py27] deps = -rtest-requirements-py2.txt [testenv:pypy] deps = -rtest-requirements-py2.txt [testenv:spell] setenv = SPELLCHECK=1 commands = sphinx-build -b spelling docs dist/docs skip_install = true deps = -r{toxinidir}/docs/requirements.txt sphinxcontrib-spelling==4.2.0 pyenchant==2.0.0 [testenv:docs] deps = -r{toxinidir}/docs/requirements.txt commands = sphinx-build {posargs:-E} -b html docs dist/docs sphinx-build -b linkcheck docs dist/docs [testenv:check] deps = docutils==0.14 check-manifest==0.37 flake8==3.5.0 readme-renderer==21.0 pygments==2.2.0 isort==4.3.4 flake8-isort==2.5 flake8-commas==2.0.0 flake8-docstrings==1.3.0 skip_install = true commands = python setup.py check --strict --metadata --restructuredtext check-manifest {toxinidir} flake8 src tests setup.py [testenv:codecov] deps = coverage==4.5.1 codecov==2.0.15 skip_install = true commands = codecov [testenv:report] deps = coverage==4.5.1 skip_install = true commands = coverage combine coverage report coverage html [testenv:clean] commands = coverage erase skip_install = true deps = coverage==4.5.1