188 lines
5.2 KiB
INI
188 lines
5.2 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
|
|
py27
|
|
py34
|
|
py35
|
|
py36
|
|
py37
|
|
py38
|
|
pypy
|
|
pypy3
|
|
{py27,py37}-{pexpect,xdist,twisted,numpy,pluggymaster}
|
|
py27-nobyte-xdist
|
|
doctesting
|
|
py37-freeze
|
|
docs
|
|
|
|
[testenv]
|
|
commands =
|
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest {posargs:{env:_PYTEST_TOX_DEFAULT_POSARGS:}}
|
|
coverage: coverage combine
|
|
coverage: coverage report
|
|
passenv = USER USERNAME COVERAGE_* TRAVIS PYTEST_ADDOPTS
|
|
setenv =
|
|
_PYTEST_TOX_DEFAULT_POSARGS={env:_PYTEST_TOX_POSARGS_LSOF:} {env:_PYTEST_TOX_POSARGS_PEXPECT:} {env:_PYTEST_TOX_POSARGS_TWISTED:} {env:_PYTEST_TOX_POSARGS_XDIST:}
|
|
|
|
# Configuration to run with coverage similar to Travis/Appveyor, 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
|
|
|
|
nobyte: PYTHONDONTWRITEBYTECODE=1
|
|
|
|
lsof: _PYTEST_TOX_POSARGS_LSOF=--lsof
|
|
|
|
pexpect: _PYTEST_TOX_PLATFORM=linux|darwin
|
|
pexpect: _PYTEST_TOX_POSARGS_PEXPECT=testing/test_pdb.py testing/test_terminal.py testing/test_unittest.py
|
|
|
|
twisted: _PYTEST_TOX_POSARGS_TWISTED=testing/test_unittest.py
|
|
|
|
xdist: _PYTEST_TOX_POSARGS_XDIST=-n auto
|
|
extras = testing
|
|
deps =
|
|
numpy: numpy
|
|
pexpect: pexpect
|
|
pluggymaster: git+https://github.com/pytest-dev/pluggy.git@master
|
|
twisted: twisted
|
|
twisted: unittest2
|
|
xdist: pytest-xdist>=1.13
|
|
{env:_PYTEST_TOX_EXTRA_DEP:}
|
|
platform = {env:_PYTEST_TOX_PLATFORM:.*}
|
|
|
|
[testenv:py27-subprocess]
|
|
deps =
|
|
pytest-xdist>=1.13
|
|
py27: mock
|
|
nose
|
|
commands =
|
|
pytest -n auto --runpytest=subprocess {posargs}
|
|
|
|
|
|
[testenv:linting]
|
|
skip_install = True
|
|
basepython = python3
|
|
deps = pre-commit>=1.11.0
|
|
commands = pre-commit run --all-files --show-diff-on-failure
|
|
|
|
[testenv:docs]
|
|
basepython = python3
|
|
# broken due to pip 19.1 (#5167)
|
|
# usedevelop = True
|
|
changedir = doc/en
|
|
deps = -r{toxinidir}/doc/en/requirements.txt
|
|
|
|
commands =
|
|
sphinx-build -W -b html . _build
|
|
|
|
[testenv:doctesting]
|
|
basepython = python3
|
|
skipsdist = True
|
|
deps =
|
|
{[testenv]deps}
|
|
PyYAML
|
|
commands =
|
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest doc/en
|
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest --doctest-modules --pyargs _pytest
|
|
|
|
[testenv:regen]
|
|
changedir = doc/en
|
|
skipsdist = True
|
|
basepython = python3.6
|
|
deps =
|
|
sphinx
|
|
PyYAML
|
|
regendoc>=0.6.1
|
|
dataclasses
|
|
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:jython]
|
|
changedir = testing
|
|
commands =
|
|
{envpython} {envbindir}/py.test-jython {posargs}
|
|
|
|
[testenv:py37-freeze]
|
|
changedir = testing/freeze
|
|
# Disable PEP 517 with pip, which does not work with PyInstaller currently.
|
|
deps =
|
|
--no-use-pep517
|
|
pyinstaller
|
|
commands =
|
|
{envpython} create_executable.py
|
|
{envpython} tox_run.py
|
|
|
|
[testenv:release]
|
|
decription = do a release, required posarg of the version number
|
|
basepython = python3.6
|
|
# broken due to pip 19.1 (#5167)
|
|
# usedevelop = True
|
|
passenv = *
|
|
deps =
|
|
colorama
|
|
gitpython
|
|
pre-commit>=1.11.0
|
|
towncrier
|
|
wheel
|
|
commands = python scripts/release.py {posargs}
|
|
|
|
[pytest]
|
|
minversion = 2.0
|
|
addopts = -ra -p pytester
|
|
rsyncdirs = tox.ini doc src testing
|
|
python_files = test_*.py *_test.py testing/*/*.py
|
|
python_classes = Test Acceptance
|
|
python_functions = test
|
|
# NOTE: "doc" is not included here, but gets tested explicitly via "doctesting".
|
|
testpaths = testing
|
|
norecursedirs = testing/example_scripts
|
|
xfail_strict=true
|
|
filterwarnings =
|
|
error
|
|
ignore:yield tests are deprecated, and scheduled to be removed in pytest 4.0:pytest.RemovedInPytest4Warning
|
|
ignore:Metafunc.addcall is deprecated and scheduled to be removed in pytest 4.0:pytest.RemovedInPytest4Warning
|
|
ignore::pytest.RemovedInPytest4Warning
|
|
ignore:Module already imported so cannot be rewritten:pytest.PytestWarning
|
|
# produced by path.local
|
|
ignore:bad escape.*:DeprecationWarning:re
|
|
# produced by path.readlines
|
|
ignore:.*U.*mode is deprecated:DeprecationWarning
|
|
# produced by pytest-xdist
|
|
ignore:.*type argument to addoption.*:DeprecationWarning
|
|
# produced by python >=3.5 on execnet (pytest-xdist)
|
|
ignore:.*inspect.getargspec.*deprecated, use inspect.signature.*:DeprecationWarning
|
|
# pytest's own futurewarnings
|
|
ignore::pytest.PytestExperimentalApiWarning
|
|
# Do not cause SyntaxError for invalid escape sequences in py37.
|
|
default:invalid escape sequence:DeprecationWarning
|
|
# ignore use of unregistered marks, because we use many to test the implementation
|
|
ignore::_pytest.warning_types.PytestUnknownMarkWarning
|
|
pytester_example_dir = testing/example_scripts
|
|
markers =
|
|
issue
|
|
slow
|
|
|
|
[flake8]
|
|
max-line-length = 120
|
|
ignore = E203,W503
|
|
|
|
[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
|