68d0b5bdb7
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>
(cherry picked from commit c6a1efa028
)
225 lines
6.2 KiB
INI
225 lines
6.2 KiB
INI
[tox]
|
|
minversion = 2.5
|
|
skipsdist = True
|
|
skip_missing_interpreters = true
|
|
envlist = py37,py27,compliance,pep8
|
|
|
|
[testenv]
|
|
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/train}
|
|
-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]
|
|
basepython = python3
|
|
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]
|
|
basepython = python3
|
|
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]
|
|
basepython = python3
|
|
setenv =
|
|
OS_TEST_PATH = ./cinder/tests/compliance
|
|
|
|
[testenv:pep8]
|
|
basepython = python3
|
|
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]
|
|
basepython = python3
|
|
# 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]
|
|
basepython = python3
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
pylint==2.1.1
|
|
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.
|
|
basepython = python3
|
|
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]
|
|
basepython = python3
|
|
sitepackages = False
|
|
envdir = {toxworkdir}/pep8
|
|
commands = oslo-config-generator --config-file=tools/config/cinder-config-generator.conf
|
|
|
|
|
|
[testenv:genpolicy]
|
|
basepython = python3
|
|
commands = oslopolicy-sample-generator --config-file=tools/config/cinder-policy-generator.conf
|
|
|
|
[testenv:genopts]
|
|
basepython = python3
|
|
sitepackages = False
|
|
envdir = {toxworkdir}/pep8
|
|
commands = python tools/config/generate_cinder_opts.py
|
|
|
|
[testenv:venv]
|
|
basepython = python3
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
basepython = python3
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train}
|
|
-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]
|
|
basepython = python3
|
|
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]
|
|
basepython = python3
|
|
sitepackages = False
|
|
envdir = {toxworkdir}/venv
|
|
commands = python {toxinidir}/tools/generate_driver_list.py
|
|
|
|
[testenv:bandit]
|
|
basepython = python3
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands = bandit -r cinder -n5 -x cinder/tests/* -ll
|
|
|
|
[testenv:bandit-baseline]
|
|
basepython = python3
|
|
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).
|
|
basepython = python3
|
|
deps = bindep
|
|
commands = bindep test
|
|
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
|
|
ignore = E251,E402,W503,W504,H101
|
|
# 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
|
|
|
|
[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]
|
|
basepython = python3
|
|
deps =
|
|
-c{toxinidir}/lower-constraints.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|