From 88fae590c6ff5d6e39695a5805823a595ef2c82f Mon Sep 17 00:00:00 2001 From: rabi Date: Thu, 2 Mar 2017 11:48:44 +0530 Subject: [PATCH] Use upper-constraints for all jobs Change-Id: I17aae5f4b5c72425d72a3d9ba0a44110e2e6a65c --- tools/tox_install.sh | 28 ++++++++++++++++++++++++++++ tox.ini | 9 +++------ 2 files changed, 31 insertions(+), 6 deletions(-) create mode 100755 tools/tox_install.sh diff --git a/tools/tox_install.sh b/tools/tox_install.sh new file mode 100755 index 00000000..e93c73b4 --- /dev/null +++ b/tools/tox_install.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# Client constraint file contains this client version pin that is in conflict +# with installing the client from source. We should remove the version pin in +# the constraints file before applying it for from-source installation. + +CONSTRAINTS_FILE=$1 +shift 1 + +set -e + +localfile="$VIRTUAL_ENV/log/upper-constraints.txt" + +if [[ $CONSTRAINTS_FILE != http* ]]; then + CONSTRAINTS_FILE=file://$CONSTRAINTS_FILE +fi + +curl $CONSTRAINTS_FILE --insecure --progress-bar --output $localfile + +pip install -c$localfile openstack-requirements + +# This is the main purpose of the script: Allow local installation of +# the current repo. It is listed in constraints file and thus any +# install will be constrained and we need to unconstrain it. +edit-constraints $localfile -- $CLIENT_NAME + +pip install -c$localfile -U $* +exit $? diff --git a/tox.ini b/tox.ini index 7e1eb4d8..c300addd 100644 --- a/tox.ini +++ b/tox.ini @@ -5,19 +5,15 @@ skipsdist = True [testenv] setenv = VIRTUAL_ENV={envdir} + CLIENT_NAME=python-heatclient usedevelop = True -install_command = pip install -U {opts} {packages} +install_command = {toxinidir}/tools/tox_install.sh {env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages} deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = find . -type f -name "*.py[c|o]" -delete python setup.py testr --slowest --testr-args='{posargs}' whitelist_externals = find -[testenv:pypy] -deps = setuptools<3.2 - -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt - [testenv:debug] commands = oslo_debug_helper -t heatclient/tests {posargs} @@ -39,6 +35,7 @@ commands = {posargs} [testenv:functional] setenv = OS_TEST_PATH = ./heatclient/tests/functional + CLIENT_NAME=python-heatclient passenv = OS_* [testenv:cover]