| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- [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
- py39
- 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=-m uses_pexpect
- 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
- 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
- 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 =
- pyinstaller
- setuptools < 45.0.0
- 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
- gitpython
- pre-commit>=1.11.0
- towncrier
- wheel
- commands = python scripts/release.py {posargs}
- [testenv:publish_gh_release_notes]
- description = create GitHub release after deployment
- basepython = python3
- usedevelop = True
- passenv = GH_RELEASE_NOTES_TOKEN TRAVIS_TAG TRAVIS_REPO_SLUG
- deps =
- github3.py
- pypandoc
- commands = python scripts/publish_gh_release_notes.py
- [pytest]
- minversion = 2.0
- addopts = -ra -p pytester --strict-markers
- 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 =
- # dummy markers for testing
- foo
- bar
- baz
- # conftest.py reorders tests moving slow ones to the end of the list
- slow
- # experimental mark for all tests using pexpect
- uses_pexpect
- [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
|