c6a1efa028
Change If86dd619402495d9d4470b14cb270fcf53db6794 removed installing requirements from requirements.txt for doc jobs. These are actually needed since the local project gets installed into the venv in order to generate docs from the included docstrings. That installation works, but since the requirements were not installed explicitly via the deps, those requirements end up being installed without the upper-constraints enforcement. This is especially problematic on stable branches, where cinder install ends up pulling in requirements newer than what was used for that branch. Change-Id: Icdf80000287a43e1ff355d976f5a607543fd6d20 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
215 lines
6.2 KiB
INI
215 lines
6.2 KiB
INI
[tox]
|
|
minversion = 3.1.0
|
|
skipsdist = True
|
|
skip_missing_interpreters = true
|
|
# python runtimes: https://governance.openstack.org/tc/reference/runtimes/ussuri.html
|
|
envlist = py37,py36,compliance,pep8
|
|
# this allows tox to infer the base python from the environment name
|
|
# and override any basepython configured in this file
|
|
ignore_basepython_conflict=true
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONWARNINGS=default::DeprecationWarning
|
|
OS_STDOUT_CAPTURE=1
|
|
OS_STDERR_CAPTURE=1
|
|
OS_TEST_TIMEOUT=60
|
|
OS_TEST_PATH=./cinder/tests/unit
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
|
|
deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
|
|
# By default stestr will set concurrency
|
|
# to ncpu, to specify something else use
|
|
# the concurrency=<n> option.
|
|
# call ie: 'tox -epy27 -- --concurrency=4'
|
|
commands =
|
|
find . -ignore_readdir_race -type f -name "*.pyc" -delete
|
|
stestr run {posargs}
|
|
stestr slowest
|
|
|
|
whitelist_externals =
|
|
bash
|
|
find
|
|
passenv = *_proxy *_PROXY
|
|
|
|
[testenv:api-ref]
|
|
whitelist_externals = rm
|
|
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]
|
|
deps = {[testenv:docs]deps}
|
|
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:functional]
|
|
setenv =
|
|
OS_TEST_PATH = ./cinder/tests/functional
|
|
|
|
[testenv:functional-py36]
|
|
setenv =
|
|
{[testenv:functional]setenv}
|
|
|
|
[testenv:functional-py37]
|
|
setenv =
|
|
{[testenv:functional]setenv}
|
|
|
|
[testenv:api-samples]
|
|
envdir = {toxworkdir}/shared
|
|
setenv =
|
|
GENERATE_SAMPLES=True
|
|
PYTHONHASHSEED=0
|
|
commands =
|
|
find . -ignore_readdir_race -type f -name "*.pyc" -delete
|
|
stestr --test-path=./cinder/tests/functional/api_sample_tests run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:compliance]
|
|
setenv =
|
|
OS_TEST_PATH = ./cinder/tests/compliance
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
flake8 {posargs} .
|
|
doc8
|
|
{toxinidir}/tools/config/check_uptodate.sh
|
|
{toxinidir}/tools/check_exec.py {toxinidir}/cinder {toxinidir}/doc/source/ {toxinidir}/releasenotes/notes
|
|
|
|
[testenv:fast8]
|
|
# Use same environment directory as pep8 env to save space and install time
|
|
envdir = {toxworkdir}/pep8
|
|
commands =
|
|
{toxinidir}/tools/fast8.sh
|
|
passenv = FAST8_NUM_COMMITS
|
|
|
|
[testenv:pylint]
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
pylint==2.3.0
|
|
commands =
|
|
bash ./tools/coding-checks.sh --pylint {posargs}
|
|
|
|
[testenv:cover]
|
|
# Also do not run test_coverage_ext tests while gathering coverage as those
|
|
# tests conflict with coverage.
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run --source cinder --parallel-mode
|
|
commands =
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
|
|
[testenv:genconfig]
|
|
sitepackages = False
|
|
envdir = {toxworkdir}/pep8
|
|
commands = oslo-config-generator --config-file=tools/config/cinder-config-generator.conf
|
|
|
|
|
|
[testenv:genpolicy]
|
|
commands = oslopolicy-sample-generator --config-file=tools/config/cinder-policy-generator.conf
|
|
|
|
[testenv:genopts]
|
|
sitepackages = False
|
|
envdir = {toxworkdir}/pep8
|
|
commands = python tools/config/generate_cinder_opts.py
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
rm -fr doc/source/contributor/api/
|
|
rm -fr doc/build/html doc/build/doctrees
|
|
sphinx-build -W -b html -d doc/build/doctrees doc/source doc/build/html
|
|
whitelist_externals = rm
|
|
|
|
[testenv:pdf-docs]
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
rm -fr doc/source/contributor/api/
|
|
rm -fr doc/build/pdf
|
|
sphinx-build -W -b latex doc/source doc/build/pdf
|
|
make -C doc/build/pdf
|
|
whitelist_externals =
|
|
make
|
|
rm
|
|
|
|
[testenv:gendriverlist]
|
|
sitepackages = False
|
|
envdir = {toxworkdir}/venv
|
|
commands = python {toxinidir}/tools/generate_driver_list.py
|
|
|
|
[testenv:bandit]
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands = bandit -r cinder -n5 -x cinder/tests/* -ll
|
|
|
|
[testenv:bandit-baseline]
|
|
envdir = {toxworkdir}/bandit
|
|
commands = bandit-baseline -r cinder -n5 -x cinder/tests/* -ii -ll
|
|
|
|
[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).
|
|
deps = bindep
|
|
commands = bindep {posargs}
|
|
usedevelop = False
|
|
|
|
[flake8]
|
|
# Following checks are ignored on purpose.
|
|
#
|
|
# E251 unexpected spaces around keyword / parameter equals
|
|
# reason: no improvement in readability
|
|
#
|
|
# E402 module level import not at top of file
|
|
# reason: there are numerous places where we import modules
|
|
# later for legitimate reasons
|
|
#
|
|
# W503 line break before binary operator
|
|
# reason: pep8 itself is not sure about this one and
|
|
# reversed this rule in 2016
|
|
# W504 line break after binary operator
|
|
# reason: no agreement on this being universally
|
|
# preferable for our code. Disabled to keep checking
|
|
# tools from getting in our way with regards to this.
|
|
# H101 include name with TODO
|
|
# reason: no real benefit
|
|
# G200 Logging statements should not include the exception
|
|
# reason: Many existing cases of this that may be legitimate
|
|
ignore = E251,E402,W503,W504,H101,G200
|
|
# H904 Delay string interpolations at logging calls.
|
|
enable-extensions = H106,H203,H904
|
|
exclude = .git,.venv,.tox,dist,tools,doc/ext,*egg,build
|
|
max-complexity = 30
|
|
application-import-names = cinder
|
|
import-order-style = pep8
|
|
|
|
[hacking]
|
|
local-check-factory = cinder.tests.hacking.checks.factory
|
|
import_exceptions = cinder.i18n
|
|
|
|
[doc8]
|
|
ignore-path=.tox,*.egg-info,doc/src/api,doc/source/drivers.rst,doc/build,.eggs/*/EGG-INFO/*.txt,doc/source/configuration/tables,./*.txt
|
|
extension=.txt,.rst,.inc
|
|
|
|
[testenv:lower-constraints]
|
|
deps =
|
|
-c{toxinidir}/lower-constraints.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|