[tox]
minversion = 1.6
-envlist = py27,pep8
+envlist = py36,pep8,lint,docs,docs-linkcheck
skipsdist = True
[testenv]
VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-changedir=test
-commands = py.test -q -s --basetemp={envtmpdir} {posargs}
+commands = py.test -q --basetemp={envtmpdir} {posargs}
[testenv:pep8]
+basepython = python3
commands = flake8 {toxinidir}
+[testenv:lint]
+basepython = python3
+commands = pylint --rcfile pylint.rc nfvbench test
+
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:cover]
+basepython = python3
commands = python setup.py testr --coverage --testr-args='{posargs}'
-[testenv:docs]
-commands = python setup.py build_sphinx
-
[flake8]
# H803 skipped on purpose per list discussion.
# E123, E125 skipped as they are invalid PEP-8.
#H233: Python 3.x incompatible use of print operator
#H236: Python 3.x incompatible __metaclass__, use six.add_metaclass()
#H302: import only modules.
+#H304: No relative imports
+#H306: imports not in alphabetical order
#H404: multi line docstring should start without a leading new line
#H405: multi line docstring summary not separated with an empty line
#H904: Wrap long lines in parentheses instead of a backslash
-ignore = E123,E125,H803,E302,E303,H233,H236,H302,H404,H405,H904
+ignore = E123,E125,H803,E302,E303,H104,H233,H236,H302,H304,H306,H404,H405,H904,D102,D100,D107
builtins = _
-exclude=venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build
+exclude=venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,dib-venv
+
+[testenv:docs]
+basepython = python3
+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]
+basepython = python3
+deps = -rdocs/requirements.txt
+commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck