vmware-nsx/tox.ini
asarfaty 98b2832e4d Add coverage tests
As a first step add coverage test as non-voting with a low threshold,
and exclude older plugins.
Also removing some unused code, and relocating tests-only code, and adding
some unit tests to improve coverage.

Change-Id: Ib7af0b5de49e1a0ee2927b01f2a5f71acf633fb5
2020-04-13 06:13:32 +02:00

224 lines
7.0 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[tox]
envlist = py37,pep8
minversion = 2.0
skipsdist = True
[testenv]
basepython = python3
setenv = VIRTUAL_ENV={envdir}
PYTHONWARNINGS=default::DeprecationWarning
passenv = TRACE_FAILONLY GENERATE_HASHES http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
usedevelop = True
deps = -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
whitelist_externals =
sh
stestr
commands =
stestr run {posargs}
stestr slowest
[testenv:common]
# Fake job to define environment variables shared between dsvm/non-dsvm jobs
setenv = OS_TEST_TIMEOUT=180
commands = false
[testenv:dev]
# run locally (not in the gate) using editable mode
# https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs
# note that order is important to ensure dependencies don't override
commands =
pip install -q -e "git+https://opendev.org/openstack/networking-l2gw#egg=networking_l2gw"
pip install -q -e "git+https://opendev.org/openstack/networking-sfc#egg=networking_sfc"
pip install -q -e "git+https://opendev.org/openstack/neutron-fwaas#egg=neutron_fwaas"
pip install -q -e "git+https://opendev.org/openstack/neutron-dynamic-routing#egg=neutron_dynamic_routing"
pip install -q -e "git+https://opendev.org/openstack/neutron-vpnaas#egg=neutron_vpnaas"
pip install -q -e "git+https://opendev.org/openstack/octavia#egg=octavia"
pip install -q -e "git+https://opendev.org/openstack/vmware-nsxlib#egg=vmware_nsxlib"
pip install -q -e "git+https://opendev.org/openstack/neutron#egg=neutron"
[testenv:functional]
setenv = {[testenv]setenv}
{[testenv:common]setenv}
OS_TEST_PATH=./vmware_nsx/tests/functional
OS_LOG_PATH={env:OS_LOG_PATH:/opt/stack/logs}
deps =
{[testenv]deps}
-r{toxinidir}/vmware_nsx/tests/functional/requirements.txt
[testenv:dsvm-functional]
setenv = OS_SUDO_TESTING=1
OS_FAIL_ON_MISSING_DEPS=1
OS_TEST_TIMEOUT=180
sitepackages=True
deps =
{[testenv:functional]deps}
commands =
stestr run {posargs}
stestr slowest
[tox:jenkins]
sitepackages = True
[testenv:releasenotes]
deps = -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:py36]
basepython = python3.6
setenv = OS_FAIL_ON_MISSING_DEPS=1
[testenv:py37]
basepython = python3.7
setenv = OS_FAIL_ON_MISSING_DEPS=1
[testenv:py38]
basepython = python3.8
setenv = OS_FAIL_ON_MISSING_DEPS=1
[testenv:py3-dev]
commands =
{[testenv:dev]commands}
pip freeze
stestr run {posargs}
whitelist_externals =
stestr
[testenv:py36-dev]
basepython = python3.6
commands =
{[testenv:dev]commands}
pip freeze
stestr run {posargs}
whitelist_externals =
stestr
[testenv:pep8]
commands =
# If it is easier to add a check via a shell script, consider adding it in this file
sh ./tools/misc-sanity-checks.sh
# Checks for coding and style guidelines
flake8
sh ./tools/coding-checks.sh --pylint '{posargs}'
neutron-db-manage --subproject vmware-nsx check_migration
{[testenv:genconfig]commands}
{[testenv:genpolicy]commands}
whitelist_externals =
sh
bash
[testenv:pep8-dev]
commands =
{[testenv:dev]commands}
pip freeze
# If it is easier to add a check via a shell script, consider adding it in this file
sh ./tools/misc-sanity-checks.sh
# Checks for coding and style guidelines
flake8
sh ./tools/coding-checks.sh --pylint '{posargs}'
neutron-db-manage --subproject vmware-nsx check_migration
{[testenv:genconfig]commands}
{[testenv:genpolicy]commands}
whitelist_externals =
sh
[testenv:bandit]
commands = bandit -r vmware_nsx -n 5 -ll
[testenv:cover]
basepython = python3.6
envdir = {toxworkdir}/shared
setenv = {[testenv]setenv}
{[testenv:common]setenv}
PYTHON=coverage run --source vmware_nsx --parallel-mode
commands =
{[testenv:dev]commands}
coverage erase
stestr run {posargs}
stestr slowest
coverage combine
coverage report --fail-under=65 --skip-covered
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:docs]
deps = -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -b html doc/source doc/build/html
[flake8]
# H106: Don't put vim configuration in source files
# H203: Use assertIs(Not)None to check for None
# H204: Use assert(Not)Equal to check for equality
# H205: Use assert(Greater|Less)(Equal) for comparison
enable-extensions=H106,H203,H204,H205
# E125 continuation line does not distinguish itself from next logical line
# E126 continuation line over-indented for hanging indent
# E128 continuation line under-indented for visual indent
# E129 visually indented line with same indent as next logical line
# E265 block comment should start with #
# H305 imports not grouped correctly
# H307 like imports should be grouped together
# H404 multi line docstring should start with a summary
# H405 multi line docstring summary not separated with an empty line
# H904 Wrap long lines in parentheses instead of a backslash
# TODO(dougwig) -- uncomment this to test for remaining linkages
# N530 direct neutron imports not allowed
# N531 translations hints
# W504 line break after binary operator
ignore = E125,E126,E128,E129,E265,H305,H307,H404,H405,H904,N530,N531,W504
show-source = true
builtins = _
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,.ropeproject
import-order-style = pep8
[hacking]
import_exceptions = vmware_nsx._i18n,
local-check-factory = neutron_lib.hacking.checks.factory
[testenv:genconfig]
commands = {toxinidir}/tools/generate_config_file_samples.sh
[testenv:genpolicy]
commands = oslopolicy-sample-generator --config-file=etc/oslo-policy-generator/policy.conf
[testenv:uuidgen]
commands =
check-uuid --fix
[testenv:lower-constraints]
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
-r{toxinidir}/requirements.txt
[testenv:lower-constraints-dev]
commands =
{[testenv:dev]commands}
pip freeze
stestr run {posargs}
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
-r{toxinidir}/requirements.txt
[testenv:venv]
commands = {posargs}
[testenv:requirements-check-dev]
commands =
pip install -q -e "git+https://opendev.org/openstack/requirements#egg=requirements"
pip freeze
# must have openstack/requirements on latest src/master in ../requirements
{toxinidir}/../requirements/playbooks/files/project-requirements-change.py --reqs={toxinidir}/../requirements {toxinidir}
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
-r{toxinidir}/requirements.txt