Files
sushy/tox.ini
Doug Goldstein d40564de3e switch to pre-commit
Switch to using pre-commit for linters. This consolodates our
codespell job into the general pep8 job. To ensure that CI matches what
users get and to not require users to do anything different, call
pre-commit from tox. Brought over some tox.ini differences from the
ironic repo.

Change-Id: Ic2af465a1f9446e9753cdd0d2d9d8c567df71dc1
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2024-11-11 11:13:13 -06:00

96 lines
3.0 KiB
INI

[tox]
minversion = 4.4.0
envlist = py3,pep8
[testenv]
constrain_package_deps = true
usedevelop = True
setenv =
VIRTUAL_ENV={envdir}
PYTHONDONTWRITEBYTECODE=1
PYTHONUNBUFFERED=1
PYTHONWARNINGS=default::DeprecationWarning
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 {posargs}
[testenv:pep8]
deps = pre-commit
allowlist_externals = pre-commit
commands = pre-commit run --all-files --show-diff-on-failure {posargs}
[testenv:codespell]
description =
Run codespell to check spelling
deps = pre-commit
commands = pre-commit run --all-files --show-diff-on-failure codespell
[testenv:venv]
setenv = PYTHONHASHSEED=0
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
commands = {posargs}
[testenv:cover]
setenv =
{[testenv]setenv}
PYTHON=coverage run --parallel-mode
# After running this target, visit sushy/cover/index.html
# in your browser, to see a nicer presentation report with annotated
# HTML listings detailing missed lines.
commands = coverage erase
stestr run {posargs}
coverage combine
coverage report
coverage html
coverage xml -o cover/coverage.xml
[testenv:docs]
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]
usedevelop = False
allowlist_externals = make
deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[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:debug]
commands = oslo_debug_helper -t sushy/tests {posargs}
[flake8]
show-source = True
# E123, E125 skipped as they are invalid PEP-8.
# E741 ambiguous variable name.
# W503 Line break occurred before a binary operator. Conflicts with W504.
ignore = E123,E125,E741,W503
# [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
builtins = _
exclude=.*,dist,doc,*lib/python*,*egg,build
import-order-style = pep8
application-import-names = sushy
filename = *.py