[tox]
envlist = py27, py34, py35, py36, py37, py38, pypy, lint, packaging, docs

[testenv]
deps= -r{toxinidir}/test_requirements.txt
commands=
    coverage run -m py.test {posargs}
    coverage report

[testenv:pypy]
# temporarily disable coverage testing on PyPy due to performance problems
commands= py.test {posargs}

[testenv:lint]
basepython=python3.7
deps = flake8==3.7.8
commands = flake8 --max-complexity 10 h2 test

[testenv:docs]
basepython=python3.7
deps = sphinx==2.2.0
changedir = {toxinidir}/docs
whitelist_externals = rm
commands =
    rm -rf build
    sphinx-build -nW -b html -d build/doctrees source build/html

[testenv:graphs]
basepython=python2.7
deps = graphviz==0.13
commands =
    python visualizer/visualize.py -i docs/source/_static

[testenv:packaging]
basepython=python3.7
deps =
    check-manifest==0.39
    readme-renderer==24.0
commands =
    check-manifest
    python setup.py check --metadata --restructuredtext --strict

[testenv:h2spec]
basepython=python3.6
deps = twisted[tls]==19.7.0
whitelist_externals = {toxinidir}/test/h2spectest.sh
commands =
    {toxinidir}/test/h2spectest.sh
