diff --git a/.gitignore b/.gitignore index 6242f657..e4d36175 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ nosetests.xml .testrepository .venv .stestr +cover # Translations *.mo diff --git a/.zuul.yaml b/.zuul.yaml index 9a6d469c..87dc9398 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -129,6 +129,7 @@ - openstack-python3-victoria-jobs - publish-openstack-docs-pti - release-notes-jobs-python3 + - openstack-cover-jobs check: jobs: - kuryr-kubernetes-tempest: diff --git a/bindep.txt b/bindep.txt index 986c66b1..d38df520 100644 --- a/bindep.txt +++ b/bindep.txt @@ -1,5 +1,10 @@ # This is a cross-platform list tracking distribution packages needed for install and tests; # see https://docs.openstack.org/infra/bindep/ for additional information. - libffi-dev [platform:dpkg test] libffi-devel [platform:rpm test] +make [pdf-docs] +texlive [pdf-docs] +texlive-xetex [pdf-docs] +texlive-latex-recommended [pdf-docs] +latexmk [pdf-docs] + diff --git a/tox.ini b/tox.ini index 1fd648d4..2b8e6c39 100644 --- a/tox.ini +++ b/tox.ini @@ -1,39 +1,26 @@ [tox] minversion = 3.1.1 -envlist = py37,pep8 +envlist = py3,pep8,docs,releasenotes,cover,lower-constraints skipsdist = True ignore_basepython_conflict = True [testenv] basepython = python3 usedevelop = True -install_command = pip install -U {opts} {packages} setenv = - VIRTUAL_ENV={envdir} 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 -whitelist_externals = bash commands = stestr run --black-regex ".tests.functional" {posargs} -[testenv:pep8] -commands = flake8 - -[testenv:venv] -commands = {posargs} -deps = - {env:CONSTRAINTS_OPT} - -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt - -r{toxinidir}/doc/requirements.txt - [testenv:functional] +envdir = {toxworkdir}/shared setenv = - {[testenv]setenv} + {[testenv]setenv} commands = - stestr run --black-regex ".tests.unit" '{posargs}' + stestr run --black-regex ".tests.unit" {posargs} [testenv:docs] deps = @@ -41,10 +28,20 @@ deps = -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] -deps = - {env:CONSTRAINTS_OPT} - -r{toxinidir}/doc/requirements.txt +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] @@ -57,6 +54,28 @@ 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.