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
install_cmd="pip install"
if [ "$1" = "constrained" ]; then
install_cmd="$install_cmd $2"
shift
fi
shift
if [ $neutron_installed -eq 0 ]; then
echo "ALREADY INSTALLED" > /tmp/tox_install.txt
echo "Neutron already installed; using existing package"
@ -31,12 +38,12 @@ elif [ -x "$ZUUL_CLONER" ]; then
git://git.openstack.org \
openstack/neutron
cd openstack/neutron
pip install -e .
$install_cmd -e .
cd "$cwd"
else
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
pip install -U $*
$install_cmd -U $*
exit $?

31
tox.ini
View File

@ -6,7 +6,9 @@ skipsdist = True
[testenv]
setenv = VIRTUAL_ENV={envdir}
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
-r{toxinidir}/test-requirements.txt
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
# 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]
setenv = OS_TEST_PATH=./neutron_fwaas/tests/functional
commands =
@ -40,6 +45,11 @@ commands =
neutron-db-manage --subproject neutron-fwaas --database-connection sqlite:// check_migration
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]
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 =
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]
commands = {posargs}
[testenv:venv-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {posargs}
[testenv:docs]
commands = python setup.py build_sphinx
[testenv:docs-constraints]
install_command = {[testenv:common-constraints]install_command}
commands = {[testenv:docs]commands}
[flake8]
# E125 continuation line does not distinguish itself from next logical line
# E126 continuation line over-indented for hanging indent
@ -74,6 +97,12 @@ deps =
commands =
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]
import_exceptions = neutron.i18n
local-check-factory = neutron.hacking.checks.factory