
This adds a pip install command to tox.ini that is only used when the tox env is passed with the 'constraints' factor appended onto it. As such this will not effect developer workflows or current unit tests. The initial use of this will be in a non-voting job, to verify that the constrained checks with tox are stable. DevStack is already running constrained jobs, as such problems are no expected. To run a tox with pip using constraints on a developer system a developer should run the desired tox environment with -constraints. For example: $(tox -epy27-constraints) Pip will pull the current version of the upper-constraints.txt file down from the git.openstack.org, however this method can be overriden to use a local file setting the environment variable "UPPER_CONSTRAINTS_FILE" to the local path or a different URL, it is passed directly to pip. This is currently not enabled in the default tox run, however it is possible to enable it as a default by adding it to 'envlist' in tox.ini Closes-Bug: #1496424 Change-Id: I13579599dfdf846d06d8c39f33265e8b46db6e68 Depends-On: I17ac389f78af241917b6da7f049085f2b13d30f2 Implements Blueprint: Requirements-Management (cherry picked from commit c029954c8ae041e5f15b14ceef0e2aa060928e05)
124 lines
3.8 KiB
INI
124 lines
3.8 KiB
INI
[tox]
|
||
envlist = docs,py27,py34,pep8
|
||
minversion = 1.8
|
||
skipsdist = True
|
||
|
||
[testenv]
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
passenv = TRACE_FAILONLY
|
||
usedevelop = True
|
||
install_command =
|
||
constraints: pip install -U -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
||
pip install -U {opts} {packages}
|
||
deps = -r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/test-requirements.txt
|
||
whitelist_externals = sh
|
||
commands =
|
||
dsvm-functional: {toxinidir}/tools/deploy_rootwrap.sh {toxinidir} {envdir}/etc {envdir}/bin
|
||
ostestr --regex '{posargs}'
|
||
# there is also secret magic in ostestr which lets you run in a fail only
|
||
# mode. To do this define the TRACE_FAILONLY environmental variable.
|
||
|
||
[testenv:api]
|
||
basepython = python2.7
|
||
setenv = {[testenv]setenv}
|
||
OS_TEST_PATH=./neutron/tests/api
|
||
TEMPEST_CONFIG_DIR={env:TEMPEST_CONFIG_DIR:/opt/stack/tempest/etc}
|
||
OS_TEST_API_WITH_REST=1
|
||
|
||
[testenv:common]
|
||
# Fake job to define environment variables shared between dsvm/non-dsvm jobs
|
||
setenv = OS_TEST_TIMEOUT=180
|
||
commands = false
|
||
|
||
[testenv:dsvm]
|
||
# Fake job to define environment variables shared between dsvm jobs
|
||
setenv = OS_SUDO_TESTING=1
|
||
OS_ROOTWRAP_CMD=sudo {envdir}/bin/neutron-rootwrap {envdir}/etc/neutron/rootwrap.conf
|
||
OS_ROOTWRAP_DAEMON_CMD=sudo {envdir}/bin/neutron-rootwrap-daemon {envdir}/etc/neutron/rootwrap.conf
|
||
OS_FAIL_ON_MISSING_DEPS=1
|
||
commands = false
|
||
|
||
[testenv:functional]
|
||
basepython = python2.7
|
||
setenv = {[testenv]setenv}
|
||
{[testenv:common]setenv}
|
||
OS_TEST_PATH=./neutron/tests/functional
|
||
deps =
|
||
{[testenv]deps}
|
||
-r{toxinidir}/neutron/tests/functional/requirements.txt
|
||
|
||
[testenv:dsvm-functional]
|
||
basepython = python2.7
|
||
setenv = {[testenv:functional]setenv}
|
||
{[testenv:dsvm]setenv}
|
||
sitepackages=True
|
||
deps =
|
||
{[testenv:functional]deps}
|
||
|
||
[testenv:fullstack]
|
||
setenv = {[testenv]setenv}
|
||
{[testenv:common]setenv}
|
||
OS_TEST_PATH=./neutron/tests/fullstack
|
||
deps =
|
||
{[testenv]deps}
|
||
-r{toxinidir}/neutron/tests/functional/requirements.txt
|
||
|
||
[testenv:dsvm-fullstack]
|
||
setenv = {[testenv:fullstack]setenv}
|
||
{[testenv:dsvm]setenv}
|
||
sitepackages=True
|
||
deps =
|
||
{[testenv:functional]deps}
|
||
|
||
[tox:jenkins]
|
||
sitepackages = True
|
||
downloadcache = ~/cache/pip
|
||
|
||
[testenv:pep8]
|
||
basepython = python2.7
|
||
deps =
|
||
{[testenv]deps}
|
||
commands=
|
||
# If it is easier to add a check via a shell script, consider adding it in this file
|
||
sh ./tools/misc-sanity-checks.sh
|
||
{toxinidir}/tools/check_unit_test_structure.sh
|
||
# Checks for coding and style guidelines
|
||
flake8
|
||
sh ./tools/coding-checks.sh --pylint '{posargs}'
|
||
neutron-db-manage --config-file neutron/tests/etc/neutron.conf check_migration
|
||
whitelist_externals =
|
||
sh
|
||
bash
|
||
|
||
[testenv:cover]
|
||
basepython = python2.7
|
||
commands =
|
||
python setup.py testr --coverage --testr-args='{posargs}'
|
||
|
||
[testenv:venv]
|
||
commands = {posargs}
|
||
|
||
[testenv:docs]
|
||
commands = sphinx-build -W -b html doc/source doc/build/html
|
||
|
||
[flake8]
|
||
# E125 continuation line does not distinguish itself from next logical line
|
||
# E126 continuation line over-indented for hanging indent
|
||
# E128 continuation line under-indented for visual indent
|
||
# E129 visually indented line with same indent as next logical line
|
||
# E265 block comment should start with ‘# ‘
|
||
# H404 multi line docstring should start with a summary
|
||
# H405 multi line docstring summary not separated with an empty line
|
||
ignore = E125,E126,E128,E129,E265,H404,H405
|
||
show-source = true
|
||
builtins = _
|
||
# neutron/tests/tempest needs to be excluded so long as it continues
|
||
# to be copied directly from tempest, since tempest and neutron do not
|
||
# share a flake8 configuration.
|
||
exclude = ./.*,build,dist,neutron/openstack/common/*,neutron/tests/tempest
|
||
|
||
[hacking]
|
||
import_exceptions = neutron.i18n
|
||
local-check-factory = neutron.hacking.checks.factory
|