Be explicit about tox python version

We want to default all jobs to use python 3 except for
the ones that use explicit versions. Unfortunately, the
current tox behavior for setting basepython to python3
is not intuitive.

If the system default is python 3.5, then when basepython
is set to python3, both the py35 and py36 targets will
end up running with python 3.5.

To get around this we need to not set a default base
version and explicitly set each testenv to python3 that
we want to run using 3 instead of 2 but do not really
care which minor version is used.

Change-Id: I3971eeafbd1e732a584b0c52d2eb6c2175b709aa
This commit is contained in:
Sean McGinnis 2018-06-13 16:51:32 -05:00
parent b229a9aded
commit 5542de51bc

18
tox.ini
View File

@ -4,7 +4,6 @@ skipsdist = True
envlist = py35,py27,compliance,pep8 envlist = py35,py27,compliance,pep8
[testenv] [testenv]
basepython = python3
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
PYTHONWARNINGS=default::DeprecationWarning PYTHONWARNINGS=default::DeprecationWarning
OS_STDOUT_CAPTURE=1 OS_STDOUT_CAPTURE=1
@ -31,6 +30,7 @@ whitelist_externals =
passenv = *_proxy *_PROXY passenv = *_proxy *_PROXY
[testenv:api-ref] [testenv:api-ref]
basepython = python3
whitelist_externals = rm whitelist_externals = rm
deps = deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
@ -40,6 +40,7 @@ commands =
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html/ sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html/
[testenv:releasenotes] [testenv:releasenotes]
basepython = python3
deps = deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
@ -61,10 +62,12 @@ setenv =
{[testenv:functional]setenv} {[testenv:functional]setenv}
[testenv:compliance] [testenv:compliance]
basepython = python3
setenv = setenv =
OS_TEST_PATH = ./cinder/tests/compliance OS_TEST_PATH = ./cinder/tests/compliance
[testenv:pep8] [testenv:pep8]
basepython = python3
commands = commands =
python setup.py check --restructuredtext --strict python setup.py check --restructuredtext --strict
flake8 {posargs} . flake8 {posargs} .
@ -72,12 +75,14 @@ commands =
{toxinidir}/tools/check_exec.py {toxinidir}/cinder {toxinidir}/doc/source/ {toxinidir}/releasenotes/notes {toxinidir}/tools/check_exec.py {toxinidir}/cinder {toxinidir}/doc/source/ {toxinidir}/releasenotes/notes
[testenv:fast8] [testenv:fast8]
basepython = python3
# Use same environment directory as pep8 env to save space and install time # Use same environment directory as pep8 env to save space and install time
envdir = {toxworkdir}/pep8 envdir = {toxworkdir}/pep8
commands = commands =
{toxinidir}/tools/fast8.sh {toxinidir}/tools/fast8.sh
[testenv:pylint] [testenv:pylint]
basepython = python3
deps = -r{toxinidir}/requirements.txt deps = -r{toxinidir}/requirements.txt
pylint==1.9.1 pylint==1.9.1
commands = bash tools/lintstack.sh commands = bash tools/lintstack.sh
@ -85,6 +90,7 @@ commands = bash tools/lintstack.sh
[testenv:cover] [testenv:cover]
# Also do not run test_coverage_ext tests while gathering coverage as those # Also do not run test_coverage_ext tests while gathering coverage as those
# tests conflict with coverage. # tests conflict with coverage.
basepython = python3
setenv = setenv =
{[testenv]setenv} {[testenv]setenv}
PYTHON=coverage run --source cinder --parallel-mode PYTHON=coverage run --source cinder --parallel-mode
@ -95,23 +101,28 @@ commands =
coverage xml -o cover/coverage.xml coverage xml -o cover/coverage.xml
[testenv:genconfig] [testenv:genconfig]
basepython = python3
sitepackages = False sitepackages = False
envdir = {toxworkdir}/pep8 envdir = {toxworkdir}/pep8
commands = oslo-config-generator --config-file=tools/config/cinder-config-generator.conf commands = oslo-config-generator --config-file=tools/config/cinder-config-generator.conf
[testenv:genpolicy] [testenv:genpolicy]
basepython = python3
commands = oslopolicy-sample-generator --config-file=tools/config/cinder-policy-generator.conf commands = oslopolicy-sample-generator --config-file=tools/config/cinder-policy-generator.conf
[testenv:genopts] [testenv:genopts]
basepython = python3
sitepackages = False sitepackages = False
envdir = {toxworkdir}/pep8 envdir = {toxworkdir}/pep8
commands = python tools/config/generate_cinder_opts.py commands = python tools/config/generate_cinder_opts.py
[testenv:venv] [testenv:venv]
basepython = python3
commands = {posargs} commands = {posargs}
[testenv:docs] [testenv:docs]
basepython = python3
deps = deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
@ -125,15 +136,18 @@ commands =
whitelist_externals = rm whitelist_externals = rm
[testenv:gendriverlist] [testenv:gendriverlist]
basepython = python3
sitepackages = False sitepackages = False
envdir = {toxworkdir}/venv envdir = {toxworkdir}/venv
commands = python {toxinidir}/tools/generate_driver_list.py commands = python {toxinidir}/tools/generate_driver_list.py
[testenv:bandit] [testenv:bandit]
basepython = python3
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r cinder -n5 -x tests -ll commands = bandit -r cinder -n5 -x tests -ll
[testenv:bandit-baseline] [testenv:bandit-baseline]
basepython = python3
envdir = {toxworkdir}/bandit envdir = {toxworkdir}/bandit
commands = bandit-baseline -r cinder -n5 -x tests -ii -ll commands = bandit-baseline -r cinder -n5 -x tests -ii -ll
@ -144,6 +158,7 @@ commands = bandit-baseline -r cinder -n5 -x tests -ii -ll
# separately, outside of the requirements files, and develop mode disabled # separately, outside of the requirements files, and develop mode disabled
# explicitly to avoid unnecessarily installing the checked-out repo too (this # explicitly to avoid unnecessarily installing the checked-out repo too (this
# further relies on "tox.skipsdist = True" above). # further relies on "tox.skipsdist = True" above).
basepython = python3
deps = bindep deps = bindep
commands = bindep test commands = bindep test
usedevelop = False usedevelop = False
@ -164,6 +179,7 @@ local-check-factory = cinder.hacking.checks.factory
import_exceptions = cinder.i18n import_exceptions = cinder.i18n
[testenv:lower-constraints] [testenv:lower-constraints]
basepython = python3
deps = deps =
-c{toxinidir}/lower-constraints.txt -c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt