[tox]
minversion=2.0
distshare={homedir}/.tox/distshare
envlist=
     linting,py26,py27,py33,py34,py35,pypy,
     {py27,py35}-{pexpect,xdist,trial},
     py27-nobyte,doctesting,py27-cxfreeze

[testenv]
commands= py.test --lsof -rfsxX {posargs:testing}
passenv = USER USERNAME
deps=
    nose
    mock
    requests

[testenv:py26]
commands= py.test --lsof -rfsxX {posargs:testing}
deps=
    nose
    mock<1.1  # last supported version for py26

[testenv:py27-subprocess]
changedir=.
basepython=python2.7
deps=pytest-xdist>=1.13
    mock
    nose
commands=
  py.test -n3 -rfsxX --runpytest=subprocess {posargs:testing}

[testenv:genscript]
commands= py.test --genscript=pytest1

[testenv:linting]
basepython = python2.7
deps = flake8
    restructuredtext_lint
commands = flake8 pytest.py _pytest testing
    rst-lint CHANGELOG.rst

[testenv:py27-xdist]
deps=pytest-xdist>=1.13
    mock
    nose
commands=
  py.test -n1 -rfsxX {posargs:testing}

[testenv:py35-xdist]
deps={[testenv:py27-xdist]deps}
commands=
  py.test -n3 -rfsxX {posargs:testing}

[testenv:py27-pexpect]
changedir=testing
platform=linux|darwin
deps=pexpect
commands=
  py.test -rfsxX test_pdb.py test_terminal.py test_unittest.py

[testenv:py35-pexpect]
changedir=testing
platform=linux|darwin
deps={[testenv:py27-pexpect]deps}
commands=
  py.test -rfsxX test_pdb.py test_terminal.py test_unittest.py

[testenv:py27-nobyte]
deps=pytest-xdist>=1.13
distribute=true
setenv=
    PYTHONDONTWRITEBYTECODE=1
commands=
  py.test -n3 -rfsxX {posargs:testing}

[testenv:py27-trial]
deps=twisted
commands=
  py.test -rsxf {posargs:testing/test_unittest.py}

[testenv:py35-trial]
platform=linux|darwin
deps={[testenv:py27-trial]deps}
commands=
  py.test -rsxf {posargs:testing/test_unittest.py}

[testenv:doctest]
commands=py.test --doctest-modules _pytest
deps=

[testenv:doc]
basepython=python
changedir=doc/en
deps=sphinx
     PyYAML

commands=
    make clean
    make html

[testenv:doctesting]
basepython = python3.4
changedir=doc/en
deps=PyYAML
commands= py.test -rfsxX {posargs}

[testenv:regen]
changedir=doc/en
basepython = python3.4
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 -rfsxX {posargs}

[testenv:py27-cxfreeze]
changedir=testing/cx_freeze
platform=linux|darwin
commands=
    {envpython} install_cx_freeze.py
    {envpython} runtests_setup.py build --build-exe build
    {envpython} tox_run.py


[testenv:coveralls]
passenv = TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH COVERALLS_REPO_TOKEN
usedevelop=True
basepython=python3.4
changedir=.
deps =
    {[testenv]deps}
    coveralls
commands=
    coverage run --source=_pytest -m pytest testing
    coverage report -m
    coveralls

[pytest]
minversion=2.0
plugins=pytester
#--pyargs --doctest-modules --ignore=.tox
addopts= -rxsX -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


[flake8]
ignore =E401,E225,E261,E128,E124,E301,E302,E121,E303,W391,E501,E231,E126,E701,E265,E241,E251,E226,E101,W191,E131,E203,E122,E123,E271,E712,E222,E127,E125,E221,W292,E111,E113,E293,E262,W293,E129,E702,E201,E272,E202,E704,E731,E402