; tox configuration file for running tests similar to buildbot builders.

[tox]
skip_missing_interpreters=True
toxworkdir=build/
envlist=
        {py27,py33,py34,py35}-{tests,nomodules,coverage}
        pyflakes,twistedchecker,apidocs,narrativedocs
skipsdist=True


[testenv]
changedir={envtmpdir}
skip_install=True
deps =
     ; zope.interface is love, zope.interface is life
     zope.interface

     ; Some relatively standard dependencies that we want to have
     ; We cannot use extras here, because it is not supported on Py3
     {tests,coverage}: pyopenssl
     {tests,coverage}: service_identity
     {tests,coverage}: pycrypto

     coverage: coverage

     ; Code quality checkers
     pyflakes: pyflakes
     twistedchecker: twistedchecker

     ; Documentation
     apidocs: pydoctor
     narrativedocs: sphinx

commands =
    py27-{tests,nomodules}: python {toxinidir}/bin/trial {posargs:twisted}
    {py33,py34,py35}-{tests,nomodules}: python {toxinidir}/admin/run-python3-tests {posargs:}

    twistedchecker: twistedchecker {posargs:twisted}
    pyflakes: pyflakes {posargs:twisted}

    apidocs: {toxinidir}/bin/admin/build-apidocs {toxinidir} apidocs
    narrativedocs: sphinx-build -aW -b html -d {toxinidir}/docs/_build {toxinidir}/docs {toxinidir}/docs/_build/

    coverage: coverage erase
    py27-coverage: coverage run --rcfile={toxinidir}/.coveragerc {toxinidir}/bin/trial --reporter=bwverbose {posargs:twisted}
    {py33,py34,py35}-coverage: coverage run --rcfile={toxinidir}/.coveragerc {toxinidir}/admin/run-python3-tests --reporter=bwverbose {posargs:}
    coverage: coverage report --rcfile={toxinidir}/.coveragerc

[testenv:twistedchecker]
basepython=python2.7
changedir={toxinidir}
[testenv:pyflakes]
basepython=python2.7
changedir={toxinidir}
[testenv:apidocs]
basepython=python2.7
