| [tox] |
| envlist = typing,lint,py27,py34,py35,py36,py37,pypy,pypy3,manifest,docs,pypi-description,changelog,coverage-report |
| isolated_build = True |
| |
| |
| [testenv] |
| # Prevent random setuptools/pip breakages like |
| # https://github.com/pypa/setuptools/issues/1042 from breaking our builds. |
| setenv = |
| VIRTUALENV_NO_DOWNLOAD=1 |
| extras = tests |
| commands = python -m pytest {posargs} |
| |
| |
| [testenv:py27] |
| extras = tests |
| commands = coverage run --parallel -m pytest {posargs} |
| |
| |
| [testenv:py37] |
| # Python 3.6+ has a number of compile-time warnings on invalid string escapes. |
| # PYTHONWARNINGS=d and --no-compile below make them visible during the Tox run. |
| install_command = pip install --no-compile {opts} {packages} |
| setenv = |
| PYTHONWARNINGS=d |
| extras = tests |
| commands = coverage run --parallel -m pytest {posargs} |
| |
| |
| [testenv:coverage-report] |
| basepython = python3.7 |
| skip_install = true |
| deps = coverage |
| commands = |
| coverage combine |
| coverage report |
| |
| |
| [testenv:lint] |
| basepython = python3.7 |
| skip_install = true |
| deps = pre-commit |
| passenv = HOMEPATH # needed on Windows |
| commands = pre-commit run --all-files |
| |
| |
| [testenv:docs] |
| # RTD only allows for 3.7 |
| basepython = python3.7 |
| extras = docs |
| commands = |
| sphinx-build -W -b html -d {envtmpdir}/doctrees docs docs/_build/html |
| sphinx-build -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html |
| python -m doctest README.rst |
| |
| |
| [testenv:manifest] |
| basepython = python3.7 |
| deps = check-manifest |
| skip_install = true |
| commands = check-manifest |
| |
| |
| [testenv:pypi-description] |
| basepython = python3.7 |
| skip_install = true |
| deps = |
| twine |
| pip >= 18.0.0 |
| commands = |
| pip wheel -w {envtmpdir}/build --no-deps . |
| twine check {envtmpdir}/build/* |
| |
| |
| [testenv:changelog] |
| basepython = python3.7 |
| deps = towncrier |
| skip_install = true |
| commands = towncrier --draft |
| |
| |
| [testenv:typing] |
| basepython = python3.7 |
| deps = mypy |
| commands = mypy tests/typing_example.py |