oslo.context/tox.ini
Stephen Finucane 3400cc2871 Integrate mypy
oslo.context is pretty small and therefore easy to introduce mypy for.
Minimal type hints are added, along with tox targets to validate things.
We can build on these in the future if we'd like to.

Change-Id: Ie5ab9eedfc89654ac3aa635f4a3ad24409ad23b6
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-01-25 15:00:32 +01:00

74 lines
1.9 KiB
INI

[tox]
minversion = 3.2.0
envlist = py3,pep8
ignore_basepython_conflict = true
[testenv]
basepython = python3
# TODO(damani): Drop distutils override once logging improves in setuptools
# https://github.com/pypa/setuptools/issues/3038
setenv =
SETUPTOOLS_USE_DISTUTILS=stdlib
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[testenv:mypy]
description =
Run type checks.
envdir = {toxworkdir}/shared
commands =
python -m mypy {posargs:.}
[testenv:pep8]
envdir = {toxworkdir}/shared
commands =
pre-commit run -a
# Run security linter
bandit -r oslo_context -x tests -n5
[testenv:venv]
envdir = {toxworkdir}/shared
commands = {posargs}
[testenv:docs]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
whitelist_externals = rm
commands =
rm -fr doc/build
sphinx-build -W --keep-going -b html doc/source doc/build/html
[testenv:cover]
# TODO(damani): Drop distutils override once logging improves in setuptools
# https://github.com/pypa/setuptools/issues/3038
envdir = {toxworkdir}/shared
setenv =
SETUPTOOLS_USE_DISTUTILS=stdlib
PYTHON=coverage run --source oslo_context --parallel-mode
commands =
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
show-source = true
ignore = E123,E125
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
[hacking]
import_exceptions =
[testenv:releasenotes]
envdir = {toxworkdir}/docs
whitelist_externals = rm
deps = {[testenv:docs]deps}
commands =
rm -rf releasenotes/build
sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html