| [tox] |
| envlist = pre-commit,typing,lint,py27,py34,py35,py36,py37,pypy,pypy3,manifest,docs,readme,changelog,coverage-report |
| |
| |
| [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.6 |
| deps = coverage |
| skip_install = true |
| commands = |
| coverage combine |
| coverage report |
| |
| |
| [testenv:lint] |
| skip_install = true |
| basepython = python3.6 |
| extras = tests |
| deps = |
| flake8 |
| flake8-isort |
| black |
| commands = |
| flake8 src tests setup.py conftest.py docs/conf.py |
| black --check --verbose setup.py conftest.py src tests docs/conf.py |
| |
| |
| [testenv:pre-commit] |
| skip_install = true |
| basepython = python3.6 |
| deps = pre-commit |
| passenv = HOMEPATH # needed on Windows |
| commands = pre-commit run --all-files --verbose |
| |
| |
| [testenv:docs] |
| basepython = python3.6 |
| setenv = |
| PYTHONHASHSEED = 0 |
| 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.6 |
| deps = check-manifest |
| skip_install = true |
| commands = check-manifest |
| |
| |
| [testenv:readme] |
| basepython = python3.6 |
| deps = readme_renderer |
| skip_install = true |
| commands = python setup.py check -r -s |
| |
| |
| [testenv:changelog] |
| basepython = python3.6 |
| deps = towncrier |
| skip_install = true |
| commands = towncrier --draft |
| |
| [testenv:typing] |
| basepython = python3.6 |
| deps = mypy |
| commands = mypy tests/typing_example.py |