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

32
tox.ini
View File

@ -5,7 +5,6 @@ skipsdist = True
[testenv] [testenv]
usedevelop = True usedevelop = True
install_command = pip install -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
NOSE_WITH_OPENSTACK=1 NOSE_WITH_OPENSTACK=1
NOSE_OPENSTACK_COLOR=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 # Note the hash seed is set to 0 until horizon can be tested with a
# random hash seed successfully. # random hash seed successfully.
PYTHONHASHSEED=0 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 deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
commands = /bin/bash run_tests.sh -N --no-pep8 {posargs} commands = /bin/bash run_tests.sh -N --no-pep8 {posargs}
@ -25,17 +25,41 @@ commands =
/bin/bash run_tests.sh -N --makemessages --check-only /bin/bash run_tests.sh -N --makemessages --check-only
[testenv:venv] [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} commands = {posargs}
[testenv:cover] [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} commands = /bin/bash run_tests.sh -N --no-pep8 --coverage {posargs}
[testenv:py27dj18] [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 basepython = python2.7
commands = pip install django>=1.8,<1.9 commands = pip install django>=1.8,<1.9
/bin/bash run_tests.sh -N --no-pep8 {posargs} /bin/bash run_tests.sh -N --no-pep8 {posargs}
[testenv:py27integration] [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 basepython = python2.7
commands = /bin/bash run_tests.sh -N --integration --selenium-headless {posargs} 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 /bin/bash run_tests.sh -N --eslint
[testenv:docs] [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 setenv = DJANGO_SETTINGS_MODULE=openstack_dashboard.test.settings
commands = python setup.py build_sphinx commands = python setup.py build_sphinx