Added constraints tox targets

These are eventually going to be used in gate instead of unconstrained
jobs. There is some code duplication in commands definitions, but tox
does not allow to inherit definitions with {posargs} substitution.

Made tox_install.sh use constraints file to install both the project
and neutron dependency, if the first argument is 'constrained'.

Change-Id: I699022b285594edf3c5db10fbdac2f904dc42928
Partial-Bug: #1522503
Depends-On: I7d43cf950ec9c337da991b1e765b13743c4e18c2
This commit is contained in:
Ihar Hrachyshka 2015-11-26 15:12:13 +01:00 committed by Paul Michali
parent ada8022878
commit f8e9f8bf84
2 changed files with 40 additions and 4 deletions

View File

@ -18,6 +18,13 @@ neutron_installed=$(echo "import neutron" | python 2>/dev/null ; echo $?)
set -e set -e
install_cmd="pip install"
if [ "$1" = "constrained" ]; then
install_cmd="$install_cmd $2"
shift
fi
shift
if [ $neutron_installed -eq 0 ]; then if [ $neutron_installed -eq 0 ]; then
echo "ALREADY INSTALLED" > /tmp/tox_install.txt echo "ALREADY INSTALLED" > /tmp/tox_install.txt
echo "Neutron already installed; using existing package" echo "Neutron already installed; using existing package"
@ -31,12 +38,12 @@ elif [ -x "$ZUUL_CLONER" ]; then
git://git.openstack.org \ git://git.openstack.org \
openstack/neutron openstack/neutron
cd openstack/neutron cd openstack/neutron
pip install -e . $install_cmd -e .
cd "$cwd" cd "$cwd"
else else
echo "PIP HARDCODE" > /tmp/tox_install.txt echo "PIP HARDCODE" > /tmp/tox_install.txt
pip install -U -egit+https://git.openstack.org/openstack/neutron#egg=neutron $install_cmd -U -egit+https://git.openstack.org/openstack/neutron#egg=neutron
fi fi
pip install -U $* $install_cmd -U $*
exit $? exit $?

31
tox.ini
View File

@ -6,7 +6,9 @@ skipsdist = True
[testenv] [testenv]
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
usedevelop = True usedevelop = True
install_command = {toxinidir}/tools/tox_install.sh {opts} {packages} install_command =
constraints: {[testenv:common-constraints]install_command}
{toxinidir}/tools/tox_install.sh unconstrained {opts} {packages}
deps = -r{toxinidir}/requirements.txt deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
whitelist_externals = sh whitelist_externals = sh
@ -15,6 +17,9 @@ commands =
# there is also secret magic in pretty_tox.sh which lets you run in a fail only # there is also secret magic in pretty_tox.sh which lets you run in a fail only
# mode. To do this define the TRACE_FAILONLY environmental variable. # mode. To do this define the TRACE_FAILONLY environmental variable.
[testenv:common-constraints]
install_command = {toxinidir}/tools/tox_install.sh constrained -c{env:UPPER_CONTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
[testenv:functional] [testenv:functional]
setenv = OS_TEST_PATH=./neutron_fwaas/tests/functional setenv = OS_TEST_PATH=./neutron_fwaas/tests/functional
commands = commands =
@ -40,6 +45,11 @@ commands =
neutron-db-manage --subproject neutron-fwaas --database-connection sqlite:// check_migration neutron-db-manage --subproject neutron-fwaas --database-connection sqlite:// check_migration
whitelist_externals = sh whitelist_externals = sh
[testenv:pep8-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {[testenv:pep8]commands}
whitelist_externals = {[testenv:pep8]whitelist_externals}
[testenv:i18n] [testenv:i18n]
commands = python ./tools/check_i18n.py ./neutron_fwaas ./tools/i18n_cfg.py commands = python ./tools/check_i18n.py ./neutron_fwaas ./tools/i18n_cfg.py
@ -47,12 +57,25 @@ commands = python ./tools/check_i18n.py ./neutron_fwaas ./tools/i18n_cfg.py
commands = commands =
python setup.py testr --coverage --coverage-package-name=neutron_fwaas --testr-args='{posargs}' python setup.py testr --coverage --coverage-package-name=neutron_fwaas --testr-args='{posargs}'
[testenv:cover-constraints]
commands =
install_command = {[testenv:common-constraints]install_command}
python setup.py testr --coverage --coverage-package-name=neutron_fwaas --testr-args='{posargs}'
[testenv:venv] [testenv:venv]
commands = {posargs} commands = {posargs}
[testenv:venv-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {posargs}
[testenv:docs] [testenv:docs]
commands = python setup.py build_sphinx commands = python setup.py build_sphinx
[testenv:docs-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {[testenv:docs]commands}
[flake8] [flake8]
# E125 continuation line does not distinguish itself from next logical line # E125 continuation line does not distinguish itself from next logical line
# E126 continuation line over-indented for hanging indent # E126 continuation line over-indented for hanging indent
@ -74,6 +97,12 @@ deps =
commands = commands =
pylint --rcfile=.pylintrc --output-format=colorized {posargs:neutron_fwaas} pylint --rcfile=.pylintrc --output-format=colorized {posargs:neutron_fwaas}
[testenv:pylint-constraints]
install_command = {[testenv:common-constraints]install_command}
deps = {[testenv:pylint]deps}
commands =
pylint --rcfile=.pylintrc --output-format=colorized {posargs:neutron_fwaas}
[hacking] [hacking]
import_exceptions = neutron.i18n import_exceptions = neutron.i18n
local-check-factory = neutron.hacking.checks.factory local-check-factory = neutron.hacking.checks.factory