[tox]
envlist = coverage-clean,py27,py34,py35,pypy,flake8,manifest,docs,readme,coverage-report


[testenv]
deps = -rdev-requirements.txt
commands = coverage run --parallel -m pytest {posargs}


[testenv:flake8]
basepython = python3.5
deps = flake8
commands = flake8 src tests setup.py


[testenv:docs]
basepython = python3.5
setenv =
    PYTHONHASHSEED = 0
deps =
    sphinx
    zope.interface  # for doctests
commands =
    sphinx-build -W -b html -d {envtmpdir}/doctrees docs docs/_build/html
    sphinx-build -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html
    python -m doctest README.rst


[testenv:manifest]
basepython = python3.5
deps = check-manifest
skip_install = true
commands = check-manifest


[testenv:readme]
basepython = python3.5
deps = readme_renderer
skip_install = true
commands = python setup.py check -r -s


[testenv:coverage-clean]
basepython = python3.5
deps = coverage
skip_install = true
commands = coverage erase


[testenv:coverage-report]
basepython = python3.5
deps = coverage
skip_install = true
commands =
    coverage combine
    coverage report

[tox]
envlist = coverage-clean,py27,py34,py35,pypy,flake8,manifest,docs,readme,coverage-report


[testenv]
deps = -rdev-requirements.txt
commands = coverage run --parallel -m pytest {posargs}


[testenv:flake8]
basepython = python3.5
deps = flake8
commands = flake8 src tests setup.py


[testenv:docs]
basepython = python3.5
setenv =
    PYTHONHASHSEED = 0
deps =
    sphinx
    zope.interface  # for doctests
commands =
    sphinx-build -W -b html -d {envtmpdir}/doctrees docs docs/_build/html
    sphinx-build -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html
    python -m doctest README.rst


[testenv:manifest]
basepython = python3.5
deps = check-manifest
skip_install = true
commands = check-manifest


[testenv:readme]
basepython = python3.5
deps = readme_renderer
skip_install = true
commands = python setup.py check -r -s


[testenv:coverage-clean]
deps = coverage
skip_install = true
commands = coverage erase


# Uses default basepython otherwise reporting doesn't work on Travis where
# Python 3.5 is only available in 3.5 jobs.
[testenv:coverage-report]
deps = coverage
skip_install = true
commands =
    coverage combine
    coverage report

Fix coverage reporting for Python 2
Fix coverage reporting for Python 2
