From c959929358e023321b20a4f4d1492c529454101c Mon Sep 17 00:00:00 2001 From: shu-mutou Date: Fri, 8 Apr 2016 13:09:56 +0900 Subject: [PATCH] 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: I2268d5d49d4d90332578cbf7ff757f7d144e046b Closes-Bug: #1563038 --- tox.ini | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 7a3ff46..ed72ed2 100644 --- a/tox.ini +++ b/tox.ini @@ -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