We run mypy through pre-commit, and we don't keep duplicate targets in tox for all of the other linters. Since this adds some (small) maintenance overhead, remove it.
186 lines
5.3 KiB
INI
186 lines
5.3 KiB
INI
[tox]
|
|
isolated_build = True
|
|
minversion = 3.5.3
|
|
distshare = {homedir}/.tox/distshare
|
|
# make sure to update environment list in travis.yml and appveyor.yml
|
|
envlist =
|
|
linting
|
|
py36
|
|
py37
|
|
py38
|
|
py39
|
|
pypy3
|
|
py37-{pexpect,xdist,unittestextras,numpy,pluggymaster}
|
|
doctesting
|
|
plugins
|
|
py37-freeze
|
|
docs
|
|
docs-checklinks
|
|
|
|
[testenv]
|
|
commands =
|
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest {posargs:{env:_PYTEST_TOX_DEFAULT_POSARGS:}}
|
|
doctesting: {env:_PYTEST_TOX_COVERAGE_RUN:} pytest --doctest-modules --pyargs _pytest
|
|
coverage: coverage combine
|
|
coverage: coverage report -m
|
|
passenv = USER USERNAME COVERAGE_* TRAVIS PYTEST_ADDOPTS TERM
|
|
setenv =
|
|
_PYTEST_TOX_DEFAULT_POSARGS={env:_PYTEST_TOX_POSARGS_DOCTESTING:} {env:_PYTEST_TOX_POSARGS_LSOF:} {env:_PYTEST_TOX_POSARGS_XDIST:}
|
|
|
|
# Configuration to run with coverage similar to CI, e.g.
|
|
# "tox -e py37-coverage".
|
|
coverage: _PYTEST_TOX_COVERAGE_RUN=coverage run -m
|
|
coverage: _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess
|
|
coverage: COVERAGE_FILE={toxinidir}/.coverage
|
|
coverage: COVERAGE_PROCESS_START={toxinidir}/.coveragerc
|
|
|
|
doctesting: _PYTEST_TOX_POSARGS_DOCTESTING=doc/en
|
|
|
|
nobyte: PYTHONDONTWRITEBYTECODE=1
|
|
|
|
lsof: _PYTEST_TOX_POSARGS_LSOF=--lsof
|
|
|
|
xdist: _PYTEST_TOX_POSARGS_XDIST=-n auto
|
|
extras = testing
|
|
deps =
|
|
doctesting: PyYAML
|
|
numpy: numpy
|
|
pexpect: pexpect
|
|
pluggymaster: git+https://github.com/pytest-dev/pluggy.git@master
|
|
pygments
|
|
unittestextras: twisted
|
|
unittestextras: asynctest
|
|
xdist: pytest-xdist>=1.13
|
|
{env:_PYTEST_TOX_EXTRA_DEP:}
|
|
|
|
[testenv:linting]
|
|
skip_install = True
|
|
basepython = python3
|
|
deps = pre-commit>=1.11.0
|
|
commands = pre-commit run --all-files --show-diff-on-failure {posargs:}
|
|
|
|
[testenv:docs]
|
|
basepython = python3
|
|
usedevelop = True
|
|
deps =
|
|
-r{toxinidir}/doc/en/requirements.txt
|
|
towncrier
|
|
commands =
|
|
python scripts/towncrier-draft-to-file.py
|
|
# the '-t changelog_towncrier_draft' tags makes sphinx include the draft
|
|
# changelog in the docs; this does not happen on ReadTheDocs because it uses
|
|
# the standard sphinx command so the 'changelog_towncrier_draft' is never set there
|
|
sphinx-build -W --keep-going -b html doc/en doc/en/_build/html -t changelog_towncrier_draft {posargs:}
|
|
|
|
[testenv:docs-checklinks]
|
|
basepython = python3
|
|
usedevelop = True
|
|
changedir = doc/en
|
|
deps = -r{toxinidir}/doc/en/requirements.txt
|
|
commands =
|
|
sphinx-build -W -q --keep-going -b linkcheck . _build
|
|
|
|
[testenv:regen]
|
|
changedir = doc/en
|
|
basepython = python3
|
|
passenv = SETUPTOOLS_SCM_PRETEND_VERSION
|
|
deps =
|
|
dataclasses
|
|
PyYAML
|
|
regendoc>=0.6.1
|
|
sphinx
|
|
whitelist_externals =
|
|
rm
|
|
make
|
|
commands =
|
|
# don't show hypothesis plugin info in docs, see #4602
|
|
pip uninstall hypothesis -y
|
|
rm -rf /tmp/doc-exec*
|
|
rm -rf {envdir}/.pytest_cache
|
|
make regen
|
|
|
|
[testenv:plugins]
|
|
# use latest versions of all plugins, including pre-releases
|
|
pip_pre=true
|
|
# use latest pip and new dependency resolver (#7783)
|
|
download=true
|
|
install_command=python -m pip --use-feature=2020-resolver install {opts} {packages}
|
|
changedir = testing/plugins_integration
|
|
deps = -rtesting/plugins_integration/requirements.txt
|
|
setenv =
|
|
PYTHONPATH=.
|
|
# due to pytest-rerunfailures requiring 6.2+; can be removed after 6.2.0
|
|
SETUPTOOLS_SCM_PRETEND_VERSION=6.2.0a1
|
|
commands =
|
|
pip check
|
|
pytest bdd_wallet.py
|
|
pytest --cov=. simple_integration.py
|
|
pytest --ds=django_settings simple_integration.py
|
|
pytest --html=simple.html simple_integration.py
|
|
pytest --reruns 5 simple_integration.py
|
|
pytest pytest_anyio_integration.py
|
|
pytest pytest_asyncio_integration.py
|
|
pytest pytest_mock_integration.py
|
|
pytest pytest_trio_integration.py
|
|
pytest pytest_twisted_integration.py
|
|
pytest simple_integration.py --force-sugar --flakes
|
|
|
|
[testenv:py37-freeze]
|
|
changedir = testing/freeze
|
|
deps =
|
|
pyinstaller
|
|
commands =
|
|
{envpython} create_executable.py
|
|
{envpython} tox_run.py
|
|
|
|
[testenv:release]
|
|
decription = do a release, required posarg of the version number
|
|
basepython = python3
|
|
usedevelop = True
|
|
passenv = *
|
|
deps =
|
|
colorama
|
|
github3.py
|
|
pre-commit>=1.11.0
|
|
wheel
|
|
towncrier
|
|
commands = python scripts/release.py {posargs}
|
|
|
|
[testenv:release-on-comment]
|
|
decription = do a release from a comment on GitHub
|
|
usedevelop = {[testenv:release]usedevelop}
|
|
passenv = {[testenv:release]passenv}
|
|
deps = {[testenv:release]deps}
|
|
commands = python scripts/release-on-comment.py {posargs}
|
|
|
|
[testenv:publish-gh-release-notes]
|
|
description = create GitHub release after deployment
|
|
basepython = python3
|
|
usedevelop = True
|
|
passenv = GH_RELEASE_NOTES_TOKEN GITHUB_REF GITHUB_REPOSITORY
|
|
deps =
|
|
github3.py
|
|
pypandoc
|
|
commands = python scripts/publish-gh-release-notes.py {posargs}
|
|
|
|
[flake8]
|
|
max-line-length = 120
|
|
extend-ignore =
|
|
; whitespace before ':'
|
|
E203
|
|
; Missing Docstrings
|
|
D100,D101,D102,D103,D104,D105,D106,D107
|
|
; Whitespace Issues
|
|
D202,D203,D204,D205,D209,D213
|
|
; Quotes Issues
|
|
D302
|
|
; Docstring Content Issues
|
|
D400,D401,D401,D402,D405,D406,D407,D408,D409,D410,D411,D412,D413,D414,D415,D416,D417
|
|
|
|
[isort]
|
|
; This config mimics what reorder-python-imports does.
|
|
force_single_line = 1
|
|
known_localfolder = pytest,_pytest
|
|
known_third_party = test_source,test_excinfo
|
|
force_alphabetical_sort_within_sections = 1
|