beccbb17e2
The new flake8 includes check H216 to encourage the use of unittest.mock instead of third party mock modules. Octavia had a hacking check, O349, for the same purpose. Unfortunately, H216 is flagging that check as an improper use. This patch removes O349, in favor of H216, for the Octaiva hacking checks. Change-Id: I5c11c892ca1184624d6d8e111f69ec30cab2a0d8
245 lines
7.7 KiB
INI
245 lines
7.7 KiB
INI
[tox]
|
|
minversion = 2.5.0
|
|
envlist = docs,py3,functional-py3,pep8,specs,pip-missing-reqs,pip-extra-reqs
|
|
skipsdist = True
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
usedevelop = True
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONWARNINGS=default::DeprecationWarning
|
|
install_command =
|
|
pip install {opts} {packages}
|
|
whitelist_externals = find
|
|
deps = -c{env:UPPER_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:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
whitelist_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]
|
|
whitelist_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:functional]
|
|
# This will use whatever 'basepython' is set to, so the name is ambiguous.
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/functional
|
|
|
|
[testenv:functional-py3]
|
|
basepython = python3
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/functional
|
|
|
|
[testenv:functional-py36]
|
|
basepython = python3.6
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/functional
|
|
|
|
[testenv:functional-py37]
|
|
basepython = python3.7
|
|
setenv = OS_TEST_PATH={toxinidir}/octavia/tests/functional
|
|
|
|
[testenv:functional-py38]
|
|
basepython = python3.8
|
|
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}
|
|
whitelist_externals =
|
|
sh
|
|
find
|
|
bash
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
whitelist_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}
|
|
whitelist_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]
|
|
whitelist_externals = mkdir
|
|
commands =
|
|
mkdir -p etc/octavia
|
|
oslo-config-generator --output-file etc/octavia/octavia.conf.sample \
|
|
--namespace octavia \
|
|
--namespace oslo.db \
|
|
--namespace oslo.log \
|
|
--namespace oslo.messaging \
|
|
--namespace keystonemiddleware.auth_token \
|
|
--namespace cotyledon
|
|
|
|
[testenv:genpolicy]
|
|
whitelist_externals = mkdir
|
|
commands =
|
|
mkdir -p etc/octavia
|
|
oslopolicy-sample-generator \
|
|
--config-file etc/policy/octavia-policy-generator.conf
|
|
|
|
[testenv:specs]
|
|
whitelist_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:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
whitelist_externals = rm
|
|
commands =
|
|
rm -rf releasenotes/build
|
|
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}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
whitelist_externals = sh
|
|
commands =
|
|
sh -c 'OS_TEST_PATH={toxinidir}/octavia/tests/unit stestr run {posargs}'
|
|
sh -c 'OS_TEST_PATH={toxinidir}/octavia/tests/functional stestr run {posargs}'
|
|
|
|
[testenv:requirements]
|
|
deps =
|
|
-egit+https://opendev.org/openstack/requirements#egg=openstack-requirements
|
|
whitelist_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
|
|
deps = pip-check-reqs
|
|
-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
|
|
deps = pip-check-reqs
|
|
-r{toxinidir}/requirements.txt
|
|
commands =
|
|
pip-extra-reqs octavia
|