[tox] minversion = 2.0 distshare = {homedir}/.tox/distshare # make sure to update environment list in travis.yml and appveyor.yml envlist = linting py27 py34 py35 py36 py37 pypy {py27,py36}-{pexpect,xdist,trial,numpy,pluggymaster} py27-nobyte doctesting py36-freeze docs [testenv] commands = {env:_PYTEST_TOX_COVERAGE_RUN:} pytest --lsof -ra {env:_PYTEST_TEST_OPTS:} {posargs:testing} coverage: coverage report -m --skip-covered setenv = 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 passenv = USER USERNAME deps = hypothesis>=3.56 nose mock requests {env:_PYTEST_TOX_EXTRA_DEP:} [testenv:py27-subprocess] changedir = . deps = pytest-xdist>=1.13 mock nose commands = pytest -n3 -ra --runpytest=subprocess {posargs:testing} [testenv:linting] skip_install = True basepython = python3.6 deps = pre-commit commands = pre-commit run --all-files --show-diff-on-failure [testenv:py27-xdist] deps = pytest-xdist>=1.13 mock nose hypothesis>=3.56 {env:_PYTEST_TOX_EXTRA_DEP:} changedir=testing commands = {env:_PYTEST_TOX_COVERAGE_RUN:} pytest -n8 -ra {posargs:.} [testenv:py36-xdist] deps = {[testenv:py27-xdist]deps} commands = {[testenv:py27-xdist]commands} [testenv:py27-pexpect] changedir = testing platform = linux|darwin deps = pexpect {env:_PYTEST_TOX_EXTRA_DEP:} commands = {env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra test_pdb.py test_terminal.py test_unittest.py [testenv:py36-pexpect] changedir = {[testenv:py27-pexpect]changedir} platform = {[testenv:py27-pexpect]platform} deps = {[testenv:py27-pexpect]deps} commands = {[testenv:py27-pexpect]commands} [testenv:py27-nobyte] deps = pytest-xdist>=1.13 hypothesis>=3.56 mock {env:_PYTEST_TOX_EXTRA_DEP:} distribute = true changedir=testing setenv = {[testenv]setenv} PYTHONDONTWRITEBYTECODE=1 commands = {env:_PYTEST_TOX_COVERAGE_RUN:} pytest -n3 -ra {posargs:.} [testenv:py27-trial] deps = twisted {env:_PYTEST_TOX_EXTRA_DEP:} commands = {env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra {posargs:testing/test_unittest.py} [testenv:py36-trial] deps = {[testenv:py27-trial]deps} commands = {[testenv:py27-trial]commands} [testenv:py27-numpy] deps = numpy {env:_PYTEST_TOX_EXTRA_DEP:} commands= {env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra {posargs:testing/python/approx.py} [testenv:py36-numpy] deps = {[testenv:py27-numpy]deps} commands = {[testenv:py27-numpy]commands} [testenv:py27-pluggymaster] setenv= {[testenv]setenv} _PYTEST_SETUP_SKIP_PLUGGY_DEP=1 deps = {[testenv]deps} git+https://github.com/pytest-dev/pluggy.git@master [testenv:py36-pluggymaster] setenv = {[testenv:py27-pluggymaster]setenv} deps = {[testenv:py27-pluggymaster]deps} [testenv:docs] skipsdist = True usedevelop = True changedir = doc/en deps = PyYAML sphinx sphinxcontrib-trio commands = sphinx-build -W -b html . _build [testenv:doctesting] basepython = python skipsdist = True deps = PyYAML {env:_PYTEST_TOX_EXTRA_DEP:} commands = {env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra 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 whitelist_externals = rm make commands = rm -rf /tmp/doc-exec* make regen [testenv:jython] changedir = testing commands = {envpython} {envbindir}/py.test-jython -ra {posargs} [testenv:py36-freeze] changedir = testing/freeze deps = pyinstaller commands = {envpython} create_executable.py {envpython} tox_run.py [testenv:coveralls] passenv = CI TRAVIS TRAVIS_* COVERALLS_REPO_TOKEN usedevelop = True changedir = . deps = {[testenv]deps} coveralls codecov commands = coverage run -m pytest testing coverage report -m coveralls codecov [testenv:release] decription = do a release, required posarg of the version number basepython = python3.6 skipsdist = True usedevelop = True passenv = * deps = colorama gitpython pre-commit towncrier wheel commands = python scripts/release.py {posargs} [pytest] minversion = 2.0 plugins = pytester addopts = -ra -p pytester --ignore=testing/cx_freeze rsyncdirs = tox.ini pytest.py _pytest testing python_files = test_*.py *_test.py testing/*/*.py python_classes = Test Acceptance python_functions = test norecursedirs = .tox ja .hg cx_freeze_source 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: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 pytester_example_dir = testing/example_scripts [flake8] max-line-length = 120 ignore = E203,W503