Files
masakari/tox.ini
Stephen Finucane c39b9bd7fd Drop support for Python 3.8, 3.9
Python 3.8 was untested for some time. Python 3.9 is no longer tested
in Flamingo.

We also update our tox.ini to reflect versions we're going to see in the
wild nowadays.

Change-Id: I5a7da653611aaaf761f3290f577b85df5a0e6bb2
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-05-08 14:18:09 +01:00

188 lines
5.3 KiB
INI

[tox]
minversion = 4.6.0
envlist = pep8,py3
[testenv]
usedevelop = True
setenv =
LANGUAGE=en_US
LC_ALL=en_US.utf-8
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}
passenv =
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
OS_DEBUG
GENERATE_HASHES
[testenv:functional]
commands =
stestr --test-path=./masakari/tests/functional run --concurrency=1 --slowest {posargs}
[testenv:genconfig]
commands =
oslo-config-generator --config-file=etc/masakari/masakari-config-generator.conf
oslo-config-generator --config-file=etc/masakari/masakari-customized-recovery-flow-config-generator.conf
[testenv:genpolicy]
commands =
oslopolicy-sample-generator --config-file=etc/masakari/masakari-policy-generator.conf
[testenv:linters]
skip_install = True
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
{[testenv:bashate]deps}
commands =
{[testenv:pep8]commands}
{[testenv:doc8]commands}
{[testenv:yamllint]commands}
{[testenv:bashate]commands}
[testenv:pep8]
skip_install = True
deps = {[testenv:linters]deps}
commands = flake8 {posargs}
[testenv:doc8]
skip_install = True
deps = {[testenv:linters]deps}
commands =
doc8 README.rst CONTRIBUTING.rst HACKING.rst doc/source
doc8 releasenotes/source
doc8 -e '.yaml' releasenotes/notes
doc8 -e '.rst' -e '.inc' api-ref/source
[testenv:yamllint]
skip_install = True
deps = {[testenv:linters]deps}
commands = yamllint -s .
[testenv:bashate]
skip_install = True
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
bashate
commands =
bashate devstack/plugin.sh -v --ignore E006 --error E005,E042,E043
[testenv:venv]
commands = {posargs}
[testenv:cover]
setenv =
VIRTUAL_ENV={envdir}
PYTHON=coverage run --source masakari --parallel-mode
commands =
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:docs]
# NOTE(elod.illes): requirements.txt is needed because otherwise
# dependencies are installed during 'develop-inst' tox phase without
# constraints which could cause failures in stable branches.
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/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:releasenotes]
skip_install = True
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:debug]
commands = oslo_debug_helper {posargs}
[testenv:api-ref]
# This environment is called from CI scripts to test and publish
# the API Ref to docs.openstack.org.
deps = {[testenv:docs]deps}
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
[flake8]
show-source = True
# E123, E125 skipped as they are invalid PEP-8.
# The below hacking rules by default are disabled should be enabled:
# [H106] Don't put vim configuration in source files.
# [H203] Use assertIs(Not)None to check for None.
# [E231] missing whitespace after ','
# [H904] Delay string interpolations at logging calls.
enable-extensions = H106,H203,H904
# [W504] line break after binary operator (use W503 instead)
ignore = E123,E125,E128,E231,E731,H405,W504
builtins = _
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build
[hacking]
import_exceptions = masakari.i18n
[flake8:local-plugins]
extension =
M301 = checks:no_db_session_in_public_api
M302 = checks:use_timeutils_utcnow
M303 = checks:capital_cfg_help
M305 = checks:assert_true_instance
M306 = checks:assert_equal_type
M308 = checks:no_translate_logs
M309 = checks:no_import_translation_in_tests
M310 = checks:no_setting_conf_directly_in_tests
M315 = checks:no_mutable_default_args
M316 = checks:check_explicit_underscore_import
M317 = checks:use_jsonutils
M318 = checks:assert_true_or_false_with_in
M319 = checks:assert_raises_regexp
M320 = checks:dict_constructor_with_list_copy
M321 = checks:assert_equal_in
M322 = checks:check_greenthread_spawns
M323 = checks:check_no_contextlib_nested
M324 = checks:check_config_option_in_central_place
M325 = checks:check_doubled_words
M326 = checks:check_python3_no_iteritems
M327 = checks:check_python3_no_iterkeys
M328 = checks:check_python3_no_itervalues
M329 = checks:no_os_popen
M331 = checks:no_log_warn
M332 = checks:yield_followed_by_space
M333 = checks:check_policy_registration_in_central_place
M334 = checks:check_policy_enforce
paths = ./masakari/hacking
[testenv:bindep]
skip_install = True
deps = bindep
commands = bindep test
[doc8]
# NOTE(yoctozepto): this is due to multiple violations - it is better to keep
# it limited sanely rather than disable the D001 "Line too long" rule altogether
max-line-length = 105