
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>
74 lines
1.9 KiB
INI
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
|
|
|