We are running pycodestyle and pyflakes checks via ruff so we can disable to double run via hacking using flake8. Remove ignores that were not used or covered files that did not exist. Change-Id: I342ef72e0ad007fa6f5b72f634ee90ef30137446 Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
186 lines
5.7 KiB
INI
186 lines
5.7 KiB
INI
[tox]
|
|
minversion = 4.4.0
|
|
envlist = py3,pep8
|
|
|
|
[testenv]
|
|
constrain_package_deps = true
|
|
usedevelop = True
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
LANGUAGE=en_US
|
|
LC_ALL=en_US.UTF-8
|
|
BASE_TEST_TIMEOUT={env:BASE_TEST_TIMEOUT:60}
|
|
MIGRATIONS_TIMEOUT={env:MIGRATIONS_TIMEOUT:180}
|
|
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
|
|
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
|
|
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
|
|
PYTHONUNBUFFERED=1
|
|
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 --slowest --parallel-class --exclude-regex TestMigrationsMySQL {posargs}
|
|
passenv = http_proxy
|
|
HTTP_PROXY
|
|
https_proxy
|
|
HTTPS_PROXY
|
|
no_proxy
|
|
NO_PROXY
|
|
|
|
[testenv:unit-with-driver-libs]
|
|
deps = {[testenv]deps}
|
|
-r{toxinidir}/driver-requirements.txt
|
|
|
|
[testenv:genstates]
|
|
allowlist_externals = {toxinidir}/tools/states_to_dot.py
|
|
deps = {[testenv]deps}
|
|
pydot
|
|
commands = {toxinidir}/tools/states_to_dot.py -f {toxinidir}/doc/source/images/states.svg --format svg
|
|
|
|
[testenv:pep8]
|
|
deps = pre-commit
|
|
allowlist_externals = pre-commit
|
|
commands = pre-commit run --all-files --show-diff-on-failure {posargs}
|
|
|
|
[testenv:bandit]
|
|
deps = pre-commit
|
|
commands = pre-commit run --all-files --show-diff-on-failure bandit
|
|
|
|
[testenv:codespell]
|
|
description =
|
|
Run codespell to check spelling
|
|
deps = pre-commit
|
|
commands = pre-commit run --all-files --show-diff-on-failure codespell
|
|
|
|
[testenv:cover]
|
|
setenv = {[testenv]setenv}
|
|
PYTHON=coverage run --source ironic --parallel-mode
|
|
commands =
|
|
coverage erase
|
|
stestr run --parallel-class {posargs}
|
|
coverage combine
|
|
coverage report
|
|
coverage html -d ./cover
|
|
|
|
[testenv:genconfig]
|
|
sitepackages = False
|
|
commands =
|
|
oslo-config-generator --config-file=tools/config/ironic-config-generator.conf
|
|
|
|
[testenv:genpolicy]
|
|
sitepackages = False
|
|
commands =
|
|
oslopolicy-sample-generator --config-file=tools/policy/ironic-policy-generator.conf
|
|
|
|
[testenv:mysql-migrations]
|
|
sitepackages = False
|
|
commands =
|
|
stestr run --slowest --parallel-class TestMigrationsMySQL {posargs}
|
|
|
|
[testenv:debug]
|
|
commands = oslo_debug_helper -t ironic/tests/unit {posargs}
|
|
|
|
[testenv:docs]
|
|
allowlist_externals = dot
|
|
# NOTE(dtantsur): documentation building process requires importing ironic
|
|
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 -E -b html doc/source doc/build/html
|
|
|
|
[testenv:pdf-docs]
|
|
allowlist_externals =
|
|
make
|
|
dot
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
sphinx-build -E -b latex doc/source doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:api-ref]
|
|
# NOTE(Mahnoor): documentation building process requires importing ironic API modules
|
|
usedevelop = False
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
allowlist_externals = bash
|
|
commands =
|
|
bash -c 'rm -rf api-ref/build'
|
|
sphinx-build -E -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
|
|
|
[testenv:releasenotes]
|
|
usedevelop = False
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:venv]
|
|
setenv = PYTHONHASHSEED=0
|
|
# NOTE(JayF) The generic venv target exists to allow people to run arbitrary
|
|
# things, e.g. `reno`. For this reason, allow all externals in this
|
|
# environment.
|
|
allowlist_externals = *
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands = {posargs}
|
|
|
|
[testenv:local-ironic-dev]
|
|
constrain_package_deps = true
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
LANGUAGE=en_US
|
|
LC_ALL=en_US.UTF-8
|
|
PYTHONUNBUFFERED=1
|
|
SQLALCHEMY_WARN_20=true
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/driver-requirements.txt
|
|
python-ironicclient
|
|
python-openstackclient
|
|
allowlist_externals = bash
|
|
commands =
|
|
bash -c 'ironic-dbsync --config-file={toxinidir}/tools/ironic.conf.localdev create_schema || echo "===== DB already exists; continuing ====="'
|
|
ironic --config-file={toxinidir}/tools/ironic.conf.localdev {posargs}
|
|
passenv = http_proxy
|
|
HTTP_PROXY
|
|
https_proxy
|
|
HTTPS_PROXY
|
|
no_proxy
|
|
NO_PROXY
|
|
|
|
[flake8]
|
|
# [W503] Line break before binary operator.
|
|
# Ignore all E and F rules - handled by ruff instead
|
|
ignore = E,F,W503
|
|
filename = *.py,app.wsgi
|
|
exclude=.*,dist,doc,*lib/python*,*egg,build
|
|
import-order-style = pep8
|
|
application-import-names = ironic
|
|
max-complexity=20
|
|
# [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.
|
|
# [H210] Require 'autospec', 'spec', or 'spec_set' in mock.patch/mock.patch.object calls
|
|
# [H904] Delay string interpolations at logging calls.
|
|
enable-extensions=H106,H203,H204,H205,H210,H904
|
|
|
|
[flake8:local-plugins]
|
|
# [N323] Found use of _() without explicit import of _!
|
|
# [I319] eventlet import not allowed
|
|
extension =
|
|
N323 = checks:check_explicit_underscore_import
|
|
I319 = checks:no_eventlet_imports
|
|
paths = ./ironic/hacking/
|
|
|
|
[hacking]
|
|
import_exceptions = testtools.matchers, ironic.common.i18n
|