Sean Mooney 68c4edba14 update tox envs and support pdf docs
- adds support for building PDF docs.
- adds a bindep.txt file with required deps for pdf docs
- groups the tox envs into logicaly related sections.
- This change updates the default set of jobs so that
  runing tox with out any arguments should run the
  default set of jobs that should pass before pushing
  changes for review.

Change-Id: Id5df8afe576881cba58b3288acd79501ef1de511
2020-08-18 14:13:03 +00:00

102 lines
2.7 KiB
INI

[tox]
minversion = 3.1.1
envlist = py3,pep8,docs,releasenotes,cover,lower-constraints
skipsdist = True
ignore_basepython_conflict = True
[testenv]
basepython = python3
usedevelop = True
setenv =
CONSTRAINTS_OPT=-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
deps =
{env:CONSTRAINTS_OPT}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = stestr run --black-regex ".tests.functional" {posargs}
[testenv:functional]
envdir = {toxworkdir}/shared
setenv =
{[testenv]setenv}
commands =
stestr run --black-regex ".tests.unit" {posargs}
[testenv:docs]
deps =
{env:CONSTRAINTS_OPT}
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:pdf-docs]
envdir = {toxworkdir}/docs
deps = {[testenv:docs]deps}
whitelist_externals =
rm
make
commands =
rm -rf doc/build/pdf
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[testenv:releasenotes]
envdir = {toxworkdir}/docs
deps = {[testenv:docs]deps}
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:lower-constraints]
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
commands =
stestr run --black-regex ".tests.functional" {posargs}
sphinx-build -W doc/source doc/build
[testenv:venv]
commands = {posargs}
deps =
{[testenv]deps}
-r{toxinidir}/doc/requirements.txt
[testenv:cover]
envdir = {toxworkdir}/shared
setenv =
{[testenv]setenv}
PYTHON=coverage run --source os_vif,vif_plug_linux_bridge,vif_plug_ovs,vif_plug_noop --parallel-mode
commands =
stestr run --black-regex ".tests.functional" {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report
[testenv:pep8]
envdir = {toxworkdir}/shared
commands = flake8
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
# Following checks are ignored on purpose.
#
# H404, H405 skipped on purpose per jay pipes discussion.
# W504 line break after binary operator
show-source = True
ignore = E123,E125,E126,E127,E128,H404,H405,W504
enable-extensions = H106,H203
builtins = _
exclude = .venv,.git,.tox,dist,*lib/python*,*egg,build
max-complexity = 30
[hacking]
import_exceptions = os_vif.i18n
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files.
deps = bindep
commands = bindep test