[tox]
minversion = 2.0
skipsdist = True
-envlist = py27,py3,pep8
+envlist = py{27,3},pep8,functional{,-py3},coverage
[testenv]
usedevelop=True
-passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
+passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY BRANCH
+setenv =
+ VIRTUAL_ENV={envdir}
deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-commands = /bin/bash ./run_tests.sh
whitelist_externals = /bin/bash
[testenv:py27]
-# don't re-run coverage on both py27 py3, it takes too long
-setenv =
- SKIP_COVERAGE=1
+commands =
+ /bin/bash {toxinidir}/tools/run_tests.sh --unit
+
+[testenv:py3]
+basepython = python3
+commands = {[testenv:py27]commands}
[testenv:pep8]
# for gate testing, scans only the files changed in the last commit
commands =
/bin/bash tools/coding-checks.sh --pylint '{posargs}'
+[testenv:coverage]
+basepython = python3
+commands =
+ /bin/bash {toxinidir}/tools/run_tests.sh --coverage
+
+[testenv:functional]
+commands =
+ /bin/bash {toxinidir}/tools/run_tests.sh --functional
+
+[testenv:functional-py3]
+basepython = python3
+commands = {[testenv:functional]commands}
+
+[testenv:docs]
+deps = -rdocs/requirements.txt
+commands =
+ sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
+ echo "Generated docs available in {toxinidir}/docs/_build/html"
+whitelist_externals = echo
+
+[testenv:docs-linkcheck]
+deps = -rdocs/requirements.txt
+commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck
+
[testenv:os-requirements]
commands =
python {toxinidir}/tools/os-requirements-check.py {envdir}