Python 3.8 is now our highest level supported python runtime. This updates the default tox target environments to swap out py37 for py38 to make sure local development testing is covering this version. This does not impact zuul jobs in any way, nor prevent local tests against py37. It just changes the default if none is explicitly provided. Change-Id: If9931b519f7bba4faa0529f0a5403c935e36dacb
187 lines
5.5 KiB
INI
187 lines
5.5 KiB
INI
[tox]
|
|
minversion = 3.1.1
|
|
envlist = py38,functional-py38,pep8
|
|
skipsdist = True
|
|
# Automatic envs (pyXX) will use the python version appropriate to that
|
|
# env and ignore basepython inherited from [testenv]. That's what we
|
|
# want, and we don't need to be warned about it.
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
usedevelop = True
|
|
whitelist_externals =
|
|
bash
|
|
rm
|
|
env
|
|
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages}
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
LANGUAGE=en_US
|
|
LC_ALL=en_US.utf-8
|
|
OS_STDOUT_CAPTURE=1
|
|
OS_STDERR_CAPTURE=1
|
|
OS_TEST_TIMEOUT=160
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
# TODO(stephenfin): Remove psycopg2 when minimum constraints is bumped to 2.8
|
|
PYTHONWARNINGS = ignore::UserWarning:psycopg2
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
# For a venv that doesn't use stestr commands must be overridden.
|
|
commands =
|
|
stestr run {posargs}
|
|
passenv =
|
|
OS_DEBUG GENERATE_HASHES
|
|
# there is also secret magic in subunit-trace which lets you run in a fail only
|
|
# mode. To do this define the TRACE_FAILONLY environmental variable.
|
|
|
|
# The functional environment is the base env for functional tests.
|
|
[testenv:functional]
|
|
commands =
|
|
stestr --test-path=./placement/tests/functional run {posargs}
|
|
|
|
[testenv:functional-py36]
|
|
envdir = {toxworkdir}/py36
|
|
commands =
|
|
{[testenv:functional]commands}
|
|
|
|
[testenv:functional-py37]
|
|
envdir = {toxworkdir}/py37
|
|
commands =
|
|
{[testenv:functional]commands}
|
|
|
|
[testenv:pep8]
|
|
description =
|
|
Run style checks.
|
|
envdir = {toxworkdir}/shared
|
|
commands =
|
|
bash tools/flake8wrap.sh {posargs}
|
|
|
|
[testenv:fast8]
|
|
description =
|
|
Run style checks on the changes made since HEAD~. For a full run including docs, use 'pep8'
|
|
envdir = {toxworkdir}/shared
|
|
commands =
|
|
bash tools/flake8wrap.sh -HEAD
|
|
|
|
[testenv:genconfig]
|
|
envdir = {toxworkdir}/shared
|
|
commands =
|
|
oslo-config-generator --config-file=etc/placement/config-generator.conf
|
|
|
|
[testenv:genpolicy]
|
|
envdir = {toxworkdir}/shared
|
|
commands =
|
|
oslopolicy-sample-generator --config-file=etc/placement/policy-generator.conf
|
|
|
|
[testenv:cover]
|
|
# TODO(stephenfin): Remove the PYTHON hack below in favour of a [coverage]
|
|
# section once we rely on coverage 4.3+
|
|
#
|
|
# https://bitbucket.org/ned/coveragepy/issues/519/
|
|
envdir = {toxworkdir}/shared
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run --source placement --parallel-mode
|
|
commands =
|
|
coverage erase
|
|
stestr --test-path=./placement/tests run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report
|
|
|
|
[testenv:debug]
|
|
envdir = {toxworkdir}/shared
|
|
commands =
|
|
oslo_debug_helper {posargs}
|
|
|
|
[testenv:venv]
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
{posargs}
|
|
|
|
[testenv:docs]
|
|
description =
|
|
Build all documentation including API guides and refs.
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
rm -rf doc/build
|
|
sphinx-build -W -b html -d doc/build/doctrees doc/source doc/build/html
|
|
# Test the redirects
|
|
whereto doc/build/html/.htaccess doc/test/redirect-tests.txt
|
|
|
|
[testenv:pdf-docs]
|
|
basepython = python3
|
|
deps = {[testenv:docs]deps}
|
|
whitelist_externals =
|
|
make
|
|
commands =
|
|
sphinx-build -W -b latex doc/source doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:api-ref]
|
|
description =
|
|
Generate the API ref. Called from CI scripts to test and publish to docs.openstack.org.
|
|
envdir = {toxworkdir}/docs
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
rm -rf api-ref/build
|
|
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
|
|
|
[testenv:releasenotes]
|
|
description =
|
|
Generate release notes.
|
|
envdir = {toxworkdir}/docs
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
rm -rf releasenotes/build
|
|
sphinx-build -W -b html -d releasenotes/build/doctrees releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:bandit]
|
|
# NOTE(browne): This is required for the integration test job of the bandit
|
|
# project. Please do not remove.
|
|
envdir = {toxworkdir}/shared
|
|
commands = bandit -r placement -x tests -n 5 -ll
|
|
|
|
[flake8]
|
|
enable-extensions = H106,H203,H904
|
|
# H405 is a good guideline, but sometimes multiline doc strings just don't have
|
|
# a natural summary line. Rejecting code for this reason is wrong.
|
|
ignore = H405
|
|
exclude = .venv,.git,.tox,dist,*lib/python*,*egg,build,releasenotes
|
|
# To get a list of functions that have a complexity of 17 or more, set
|
|
# max-complexity to 17 and run 'tox -epep8'.
|
|
# 16 is currently the most complex thing we have
|
|
max-complexity=17
|
|
|
|
[testenv:bindep]
|
|
# Do not install any requirements. We want this to be fast and work even if
|
|
# system dependencies are missing, since it's used to tell you what system
|
|
# dependencies are missing! This also means that bindep must be installed
|
|
# separately, outside of the requirements files, and develop mode disabled
|
|
# explicitly to avoid unnecessarily installing the checked-out repo too (this
|
|
# further relies on "tox.skipsdist = True" above).
|
|
usedevelop = False
|
|
deps = bindep
|
|
commands =
|
|
bindep test
|
|
|
|
[testenv:lower-constraints]
|
|
# When using pbr and in a git repo, 'setup.py install' does not install
|
|
# packages. 'setup.py develop', used when usedevelop is True, does.
|
|
usedevelop = False
|
|
# Use our own install_command to turn off upper constraints, which conflicts
|
|
# with lower constraints.
|
|
install_command = pip install {opts} {packages}
|
|
deps =
|
|
-c{toxinidir}/lower-constraints.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
# Test with both functional and unit tests.
|
|
commands =
|
|
{[testenv]commands}
|
|
stestr --test-path=./placement/tests run {posargs}
|