The functional tests started failing with "backend 'mysql' unavailable" after Neutron change [0]. Projects consuming Neutron's functional test infrastructure now need to explicitly declare PyMySQL in their own test requirements to enable MySQL backend connectivity for functional tests. This patch also pins pylint to < 4.0.0 to avoid compatibility issues as done in other OpenStack projects [1]. More details in [2]. [0] https://review.opendev.org/c/openstack/neutron/+/952258 [1] https://review.opendev.org/c/openstack/octavia/+/964892 [2] https://github.com/pylint-dev/pylint/issues/10669 Depends-on: https://review.opendev.org/c/openstack/requirements/+/965107 Change-Id: I16f325c265e22c3e73abd884cc336a2e27d69bec Signed-off-by: Fernando Royo <froyo@redhat.com>
171 lines
5.4 KiB
INI
171 lines
5.4 KiB
INI
[tox]
|
|
minversion = 3.18.0
|
|
envlist = docs,py3,pep8
|
|
skipsdist = False
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
usedevelop = True
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
|
|
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
|
|
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
|
|
PYTHONWARNINGS=default::DeprecationWarning,ignore::DeprecationWarning:distutils,ignore::DeprecationWarning:site
|
|
deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
allowlist_externals = bash
|
|
{toxinidir}/tools/pip_install_src_modules.sh
|
|
passenv = http_proxy
|
|
HTTP_PROXY
|
|
https_proxy
|
|
HTTPS_PROXY
|
|
no_proxy
|
|
NO_PROXY
|
|
TOX_ENV_SRC_MODULES
|
|
commands =
|
|
{toxinidir}/tools/pip_install_src_modules.sh "{toxinidir}"
|
|
stestr run {posargs}
|
|
|
|
[testenv:pep8]
|
|
commands = flake8
|
|
{toxinidir}/tools/check_unit_test_structure.sh
|
|
{toxinidir}/tools/coding-checks.sh --pylint '{posargs}'
|
|
{[testenv:bandit]commands}
|
|
{[testenv:genconfig]commands}
|
|
allowlist_externals =
|
|
{toxinidir}/tools/check_unit_test_structure.sh
|
|
{toxinidir}/tools/coding-checks.sh
|
|
{toxinidir}/tools/generate_config_file_samples.sh
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:functional]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
OS_TEST_PATH=./ovn_octavia_provider/tests/functional
|
|
OS_TEST_TIMEOUT=240
|
|
deps = {[testenv]deps}
|
|
-r{toxinidir}/ovn_octavia_provider/tests/functional/requirements.txt
|
|
|
|
[testenv:dsvm]
|
|
# Fake job to define environment variables shared between dsvm jobs
|
|
setenv = OS_TEST_TIMEOUT=240
|
|
OS_LOG_PATH={env:OS_LOG_PATH:/opt/stack/logs}
|
|
commands = false
|
|
|
|
[testenv:dsvm-functional]
|
|
setenv = {[testenv:functional]setenv}
|
|
{[testenv:dsvm]setenv}
|
|
deps = {[testenv:functional]deps}
|
|
passenv =
|
|
{[testenv]passenv}
|
|
OS_TEST_DBAPI_ADMIN_CONNECTION
|
|
commands =
|
|
stestr run --isolated {posargs}
|
|
|
|
[testenv:cover]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run --source ovn_octavia_provider --parallel-mode
|
|
commands =
|
|
stestr run --no-subunit-trace {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report --fail-under=92 --skip-covered
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
commands = sphinx-build -W -b html doc/source doc/build/html
|
|
|
|
[testenv:pdf-docs]
|
|
deps = {[testenv:docs]deps}
|
|
allowlist_externals =
|
|
make
|
|
commands =
|
|
sphinx-build -W -b latex doc/source doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:debug]
|
|
commands = oslo_debug_helper -t ovn_octavia_provider/tests {posargs}
|
|
|
|
[testenv:releasenotes]
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[flake8]
|
|
# I202 Additional newline in a group of imports
|
|
# W504 line break after binary operator
|
|
ignore = W504,I202
|
|
# 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
|
|
# H904: Delay string interpolations at logging calls
|
|
enable-extensions=H106,H203,H204,H205,H904
|
|
show-source = True
|
|
exclude=./.*,dist,doc,*egg*,build,releasenotes
|
|
import-order-style = pep8
|
|
|
|
[hacking]
|
|
import_exceptions = ovn_octavia_provider.i18n
|
|
|
|
[flake8:local-plugins]
|
|
extension =
|
|
N322 = checks:check_assert_called_once_with
|
|
N328 = checks:check_asserttruefalse
|
|
N330 = checks:check_assertempty
|
|
N331 = checks:check_assertisinstance
|
|
N332 = checks:check_assertequal_for_httpcode
|
|
N343 = checks:check_no_imports_from_tests
|
|
N344 = checks:check_python3_no_filter
|
|
N347 = checks:check_no_import_mock
|
|
N348 = checks:check_assertcountequal
|
|
paths =./ovn_octavia_provider/hacking
|
|
|
|
[testenv:genconfig]
|
|
commands = {toxinidir}/tools/generate_config_file_samples.sh
|
|
allowlist_externals =
|
|
{toxinidir}/tools/generate_config_file_samples.sh
|
|
|
|
# This environment can be used to quickly validate that all needed system
|
|
# packages required to successfully execute test targets are installed
|
|
[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
|
|
|
|
[testenv:requirements]
|
|
deps =
|
|
-egit+https://opendev.org/openstack/requirements#egg=openstack-requirements
|
|
allowlist_externals = bash
|
|
commands =
|
|
bash -c '{envdir}/src/openstack-requirements/playbooks/files/project-requirements-change.py --req {envdir}/src/openstack-requirements --local {toxinidir} master'
|
|
|
|
[testenv:bandit]
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands = bandit -r ovn_octavia_provider -x tests -n5
|
|
|
|
[testenv:dev]
|
|
# run locally (not in the gate) using editable mode
|
|
# https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs
|
|
commands =
|
|
pip install -q -e "git+https://git.openstack.org/openstack/neutron#egg=neutron"
|
|
{[testenv]commands}
|
|
|
|
[testenv:pep8-dev]
|
|
deps =
|
|
{[testenv]deps}
|
|
commands =
|
|
{[testenv:dev]commands}
|
|
{[testenv:pep8]commands}
|