Files
osc-lib/tox.ini
Stephen Finucane 009a567f8f Run mypy from tox
This avoids the need to duplicate our dependency list in multiple places
and allows us to take advantage of tox's dependency management
infrastructure, to ensure we always get the latest and greatest version
of a package allowed by upper-constraints. It also removes the slowest
pre-commit hook (by some distance), making pre-commit faster

Change-Id: I3249b2f7dfa1bf35707d4953fb99b54bdfbaec1b
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-12-11 14:20:58 +00:00

87 lines
2.2 KiB
INI

[tox]
minversion = 3.1
envlist = py3,pep8
[testenv]
setenv =
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands =
stestr run {posargs}
[testenv:unit-tips]
commands =
python -m pip install -q -e "git+file://{toxinidir}/../cliff#egg=cliff"
python -m pip install -q -e "git+file://{toxinidir}/../keystoneauth#egg=keystoneauth"
python -m pip install -q -e "git+file://{toxinidir}/../openstacksdk#egg=openstacksdk"
python -m pip freeze
stestr run {posargs}
[testenv:pep8]
description =
Run style checks.
deps =
pre-commit
{[testenv:mypy]deps}
commands =
pre-commit run --all-files --show-diff-on-failure
{[testenv:mypy]commands}
[testenv:mypy]
description =
Run type checks.
deps =
{[testenv]deps}
mypy
types-requests
commands =
mypy --cache-dir="{envdir}/mypy_cache" {posargs:osc_lib}
[testenv:venv]
commands =
{posargs}
[testenv:cover]
commands =
python setup.py test --coverage --coverage-package-name=osc_lib --testr-args='{posargs}'
coverage report
[testenv:debug]
commands =
oslo_debug_helper -t osc_lib/tests {posargs}
[testenv:docs]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
extras =
test
commands =
sphinx-apidoc -o doc/api osc_lib osc_lib/tests
# Create ChangeLog file
python setup.py sdist
sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
[testenv:releasenotes]
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
[flake8]
show-source = True
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools
# We only enable the hacking (H) and openstacksdk (O) checks
select = H,O
# H404 Docstrings don't always start with a newline
# H405 Multiline docstrings are okay
ignore = H301,H403,H404,H405
import-order-style = pep8
application-import-names = osc_lib