f12fda8ffb
When runnign tests under tox the virtualenv is created in a number of phases (in brush strokes) 0. virtualenv -p $python .tox/$dir 1. pip install $deps 2. pip install . Step 2 is run without any deps as they're all supposed to be installed in phase 2 We have constraints in 'deps' we need to install all of cinders requirements during phase 2. If we don't then we get unconstrained versions being installed during phase 2. This shows up in a py27 run[1] as the absence of taskflow, and then in [2] with new dependancies being installed [1] http://logs.openstack.org/34/647934/3/check/openstack-tox-py27/93180f1/tox/py27-1.log [2] http://logs.openstack.org/34/647934/3/check/openstack-tox-py27/93180f1/tox/py27-2.log Change-Id: I5b1c285680f7c3256a707ea5973573f1176d4a26
201 lines
5.7 KiB
INI
201 lines
5.7 KiB
INI
[tox]
|
|
minversion = 2.5
|
|
skipsdist = True
|
|
skip_missing_interpreters = true
|
|
envlist = py36,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://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-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 =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
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 =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
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: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} .
|
|
{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://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
doc8
|
|
rm -fr doc/build doc/source/contributor/api/ .autogenerated
|
|
sphinx-build -W -b html doc/source doc/build/html
|
|
rm -rf api-ref/build
|
|
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html/
|
|
whitelist_externals = 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 tests -ll
|
|
|
|
[testenv:bandit-baseline]
|
|
basepython = python3
|
|
envdir = {toxworkdir}/bandit
|
|
commands = bandit-baseline -r cinder -n5 -x 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
|
|
ignore = E251
|
|
# 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.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
|