f21fee9a72
Mark all sqlachemy deprecation warnings as 'error', but ignore each known deprecation at the moment. Each followup commit will remove one or more 'ignored' deprecation warnings and will also fix them. Change-Id: Iedcfc826962ad28446e91d44eea3071c11d16973
245 lines
8.1 KiB
INI
245 lines
8.1 KiB
INI
[tox]
|
|
minversion = 3.18.0
|
|
envlist = docs,py3,functional-py3,pep8,specs,pip-missing-reqs,pip-extra-reqs
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONWARNINGS=always::DeprecationWarning
|
|
SQLALCHEMY_WARN_20=1
|
|
install_command =
|
|
pip install {opts} {packages}
|
|
allowlist_externals = find
|
|
deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
stestr run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:api-ref]
|
|
# This environment is called from CI scripts to test and publish
|
|
# the API Ref to docs.openstack.org.
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
allowlist_externals = rm
|
|
commands =
|
|
rm -rf api-ref/build
|
|
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
|
|
|
[testenv:cover]
|
|
allowlist_externals = sh
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run --source octavia --parallel-mode
|
|
commands =
|
|
coverage erase
|
|
sh -c 'OS_TEST_PATH={toxinidir}/octavia/tests/unit stestr run {posargs}'
|
|
sh -c 'OS_TEST_PATH={toxinidir}/octavia/tests/functional stestr run {posargs}'
|
|
coverage combine
|
|
# Generate a new HTML report with the combined results
|
|
# otherwise the HTML report will only show partial results
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report --fail-under=92 --skip-covered
|
|
|
|
[testenv:py3]
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/unit
|
|
PYTHONWARNINGS=always::DeprecationWarning
|
|
SQLALCHEMY_WARN_20=1
|
|
|
|
[testenv:functional]
|
|
# This will use whatever 'basepython' is set to, so the name is ambiguous.
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/functional
|
|
PYTHONWARNINGS=always::DeprecationWarning
|
|
SQLALCHEMY_WARN_20=1
|
|
|
|
[testenv:functional-py3]
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/functional
|
|
|
|
[testenv:functional-py38]
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/functional
|
|
|
|
[testenv:functional-py39]
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/functional
|
|
|
|
[testenv:functional-py310]
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/functional
|
|
|
|
[testenv:debug]
|
|
commands = oslo_debug_helper {posargs}
|
|
|
|
[testenv:pep8]
|
|
commands = flake8
|
|
# RST linter
|
|
doc8 --ignore-path doc/source/contributor/modules specs \
|
|
doc/source octavia CONSTITUTION.rst HACKING.rst README.rst \
|
|
TESTING.rst
|
|
# Run security linter
|
|
{[testenv:bandit]commands}
|
|
# Make sure specs follow our template
|
|
find . -type f -name "*.pyc" -delete
|
|
python -m unittest specs-tests.test_titles
|
|
sh ./tools/misc-sanity-checks.sh
|
|
{toxinidir}/tools/coding-checks.sh --pylint {posargs}
|
|
{toxinidir}/tools/check_unit_test_structure.sh
|
|
{[testenv:bashate]commands}
|
|
allowlist_externals =
|
|
sh
|
|
find
|
|
bash
|
|
{toxinidir}/tools/coding-checks.sh
|
|
{toxinidir}/tools/check_unit_test_structure.sh
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
allowlist_externals = rm
|
|
commands =
|
|
rm -rf doc/build api-guide/build api-ref/build doc/source/contributor/modules
|
|
sphinx-build -W -b html doc/source doc/build/html
|
|
sphinx-build -W -b html api-ref/source api-ref/build/html
|
|
|
|
[testenv:pdf-docs]
|
|
deps = {[testenv:docs]deps}
|
|
allowlist_externals =
|
|
make
|
|
rm
|
|
commands =
|
|
rm -rf doc/build/pdf
|
|
sphinx-build -W -b latex doc/source doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:genconfig]
|
|
allowlist_externals = mkdir
|
|
commands =
|
|
mkdir -p etc/octavia
|
|
oslo-config-generator \
|
|
--config-file etc/config/octavia-config-generator.conf
|
|
|
|
[testenv:genpolicy]
|
|
allowlist_externals = mkdir
|
|
commands =
|
|
mkdir -p etc/octavia
|
|
oslopolicy-sample-generator \
|
|
--config-file etc/policy/octavia-policy-generator.conf
|
|
|
|
[testenv:specs]
|
|
allowlist_externals =
|
|
rm
|
|
find
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
python -m unittest specs-tests.test_titles
|
|
|
|
|
|
[testenv:bandit]
|
|
commands = bandit -r octavia -ll -ii -x tests
|
|
|
|
[flake8]
|
|
# [H104]: Empty file with only comments
|
|
# [W504]: Line break after binary operator
|
|
ignore = H104,W504
|
|
show-source = true
|
|
builtins = _
|
|
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build
|
|
import-order-style = pep8
|
|
# [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
|
|
|
|
[testenv:bashate]
|
|
envdir = {toxworkdir}/shared
|
|
commands = bash -c "find {toxinidir} \
|
|
-not \( -type d -name .tox\* -prune \) \
|
|
-not \( -type d -name .venv\* -prune \) \
|
|
-type f \
|
|
-name \*.sh \
|
|
# [E005]: File does not begin with #! or have a .sh prefix
|
|
# [E006]: Check for lines longer than 79 columns
|
|
# [E042]: Local declaration hides errors
|
|
# [E043]: Arithmetic compound has inconsistent return semantics
|
|
-print0 | xargs -0 bashate -v -iE006 -eE005,E042,E043"
|
|
|
|
[hacking]
|
|
import_exceptions = octavia.i18n
|
|
|
|
[flake8:local-plugins]
|
|
extension =
|
|
O316 = checks:assert_true_instance
|
|
O318 = checks:assert_equal_or_not_none
|
|
O323 = checks:assert_equal_true_or_false
|
|
O324 = checks:no_mutable_default_args
|
|
O338 = checks:assert_equal_in
|
|
O339 = checks:no_log_warn
|
|
O341 = checks:no_translate_logs
|
|
O342 = checks:check_raised_localized_exceptions
|
|
O345 = checks:check_no_eventlet_imports
|
|
O346 = checks:check_line_continuation_no_backslash
|
|
O347 = checks:revert_must_have_kwargs
|
|
O348 = checks:check_no_logging_imports
|
|
paths =
|
|
./octavia/hacking
|
|
|
|
[doc8]
|
|
max-line-length = 79
|
|
|
|
[testenv:releasenotes]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
allowlist_externals = rm
|
|
commands =
|
|
rm -rf releasenotes/build
|
|
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:requirements]
|
|
deps =
|
|
-egit+https://opendev.org/openstack/requirements#egg=openstack-requirements
|
|
allowlist_externals = sh
|
|
commands =
|
|
sh -c '{envdir}/src/openstack-requirements/playbooks/files/project-requirements-change.py --req {envdir}/src/openstack-requirements --local {toxinidir} master'
|
|
|
|
[testenv:pip-missing-reqs]
|
|
# do not install test-requirements as that will pollute the virtualenv for
|
|
# determining missing packages
|
|
# this also means that pip-check-reqs must be installed separately, outside
|
|
# of the requirements.txt files
|
|
# pip-check-reqs 2.3.0 is broken with latest pip release (21.2.2), so cap it to
|
|
# a previous release. But the latest pip-check-reqs working release doesn't
|
|
# work with recent pip release, also cap pip to a release that is supported by
|
|
# pip-check-reqs). Those caps will be removed once
|
|
# https://github.com/r1chardj0n3s/pip-check-reqs/issues/66 is fixed.
|
|
deps = pip-check-reqs<=2.2.2
|
|
pip<=21.1.3
|
|
-r{toxinidir}/requirements.txt
|
|
commands =
|
|
pip-missing-reqs --ignore-file=octavia/tests/* octavia
|
|
|
|
[testenv:pip-extra-reqs]
|
|
# do not install test-requirements as that will pollute the virtualenv for
|
|
# determining missing packages
|
|
# this also means that pip-check-reqs must be installed separately, outside
|
|
# of the requirements.txt files
|
|
# pip-check-reqs 2.3.0 is broken with latest pip release (21.2.2), so cap it to
|
|
# a previous release. But the latest pip-check-reqs working release doesn't
|
|
# work with recent pip release, also cap pip to a release that is supported by
|
|
# pip-check-reqs). Those caps will be removed once
|
|
# https://github.com/r1chardj0n3s/pip-check-reqs/issues/66 is fixed.
|
|
deps = pip-check-reqs<=2.2.2
|
|
pip<=21.1.3
|
|
-r{toxinidir}/requirements.txt
|
|
commands =
|
|
pip-extra-reqs --ignore-file=octavia/tests/* octavia
|