tox tests should respect upper-constraints.txt

This will force pip install to use the upper-constraints.txt specified
version of pip modules. When you don't do this, you are out on the
bleeding edge and become unstable everytime some python library in the
wide world changes in a way that you don't expect.

The post jobs can not use constraints file, so override the install
command there.

Change-Id: I4776140ee20ccbddb219c87cb613d48460c3b98e
Closes-Bug: #1563038
This commit is contained in:
shu-mutou 2016-03-31 19:24:45 +09:00
parent b6f49e735b
commit 35725766f1
1 changed files with 31 additions and 1 deletions

32
tox.ini
View File

@ -5,7 +5,6 @@ skipsdist = True
[testenv]
usedevelop = True
install_command = pip install -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
NOSE_WITH_OPENSTACK=1
NOSE_OPENSTACK_COLOR=1
@ -15,6 +14,7 @@ setenv = VIRTUAL_ENV={envdir}
# Note the hash seed is set to 0 until horizon can be tested with a
# random hash seed successfully.
PYTHONHASHSEED=0
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = /bin/bash run_tests.sh -N --no-pep8 {posargs}
@ -25,17 +25,41 @@ commands =
/bin/bash run_tests.sh -N --makemessages --check-only
[testenv:venv]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands = {posargs}
[testenv:cover]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands = /bin/bash run_tests.sh -N --no-pep8 --coverage {posargs}
[testenv:py27dj18]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
basepython = python2.7
commands = pip install django>=1.8,<1.9
/bin/bash run_tests.sh -N --no-pep8 {posargs}
[testenv:py27integration]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
basepython = python2.7
commands = /bin/bash run_tests.sh -N --integration --selenium-headless {posargs}
@ -46,6 +70,12 @@ commands = nodeenv -p
/bin/bash run_tests.sh -N --eslint
[testenv:docs]
# NOTE(shu-mutou) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the post job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there is
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
setenv = DJANGO_SETTINGS_MODULE=openstack_dashboard.test.settings
commands = python setup.py build_sphinx