[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 = pytest --lsof -ra {posargs:testing} passenv = USER USERNAME deps = hypothesis>=3.56 nose mock requests [testenv:py27-subprocess] changedir = . deps = pytest-xdist>=1.13 mock nose commands = pytest -n3 -ra --runpytest=subprocess {posargs:testing} [testenv:linting] skipsdist = True usedevelop = True basepython = python2.7 deps = flake8 # pygments required by rst-lint pygments restructuredtext_lint commands = flake8 pytest.py _pytest testing setup.py pytest.py {envpython} scripts/check-rst.py [testenv:py27-xdist] deps = pytest-xdist>=1.13 mock nose hypothesis>=3.56 changedir=testing commands = 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 commands = 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 distribute = true changedir=testing setenv = PYTHONDONTWRITEBYTECODE=1 commands = pytest -n3 -ra {posargs:.} [testenv:py27-trial] deps = twisted commands = 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 commands= pytest -ra {posargs:testing/python/approx.py} [testenv:py36-numpy] deps = {[testenv:py27-numpy]deps} commands = {[testenv:py27-numpy]commands} [testenv:py27-pluggymaster] 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 = attrs more-itertools PyYAML sphinx sphinxcontrib-trio commands = sphinx-build -W -b html . _build [testenv:doctesting] basepython = python usedevelop = True skipsdist = True # ensure the given pyargs can't mean anything else changedir = doc/ deps = PyYAML commands = pytest -ra en pytest --doctest-modules --pyargs _pytest [testenv:regen] changedir = doc/en skipsdist = True basepython = python3.5 deps = sphinx PyYAML regendoc>=0.6.1 whitelist_externals = rm make commands = rm -rf /tmp/doc-exec* make regen [testenv:fix-lint] skipsdist = True usedevelop = True deps = autopep8 commands = autopep8 --in-place -r --max-line-length=120 --exclude=test_source_multiline_block.py _pytest testing setup.py pytest.py [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 = TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH COVERALLS_REPO_TOKEN usedevelop = True changedir = . deps = {[testenv]deps} coveralls commands = coverage run --source=_pytest -m pytest testing coverage report -m coveralls [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 xfail_strict=true filterwarnings = error # 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 # ignore warning about package resolution using __spec__ or __package__ # should be a temporary solution, see #3061 for discussion ignore:.*can't resolve package from __spec__ or __package__.*:ImportWarning [flake8] max-line-length = 120