From a36f0a1e4edaaf9705e8eb74fd60f991149710bb Mon Sep 17 00:00:00 2001 From: Jesse Pretorius <jesse.pretorius@rackspace.co.uk> Date: Fri, 8 Jul 2016 13:33:56 +0100 Subject: [PATCH] Update tox configuration In order to prepare for implementing requirements management by the OpenStack requirements management process, and to improve the reliability and effectiveness of test execution, this patch implements some changes to the tox configuration: - The minimum tox version is increased in order to be able to use constraints for the python packages. - The OpenStack upper-constraints are used when preparing the test venv for the linters checks. - Any proxy environment variables set on the test host are passed into the venv to enable testing from behind a proxy. - The docs test will clean-up an existing build directory before executing the docs build. - The releasenotes build cannot use upper-constraints at this point, so it doesn't. - The ansible test requirements are removed as they are not used for this repository at this time. Change-Id: I338eb58dfebe2ac03f7a81dd9e93b057f7e64f73 --- test-requirements.txt | 2 -- tox.ini | 46 +++++++++++++++++++++++++++++++++---------- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/test-requirements.txt b/test-requirements.txt index af4d44a5..c1b238ac 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,5 +1,3 @@ -ansible-lint<=2.3.9 -ansible>=1.9.1,<2.0.0,!=1.9.6 bashate>=0.2 # Apache-2.0 flake8>=2.5.4,<2.6.0 # MIT diff --git a/tox.ini b/tox.ini index 17294936..ad81608e 100644 --- a/tox.ini +++ b/tox.ini @@ -1,31 +1,59 @@ [tox] -minversion = 1.6 +minversion = 2.0 skipsdist = True -envlist = docs,linters +envlist = docs,linters,functional [testenv] usedevelop = True -install_command = pip install -U {opts} {packages} -deps = -r{toxinidir}/test-requirements.txt -commands = /usr/bin/find . -type f -name "*.pyc" -delete +install_command = + pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages} +deps = + -r{toxinidir}/test-requirements.txt +commands = + /usr/bin/find . -type f -name "*.pyc" -delete passenv = HOME + http_proxy + HTTP_PROXY + https_proxy + HTTPS_PROXY + no_proxy + NO_PROXY whitelist_externals = bash + git + rm + wget setenv = VIRTUAL_ENV={envdir} [testenv:docs] commands= + bash -c "rm -rf doc/build" python setup.py build_sphinx +[testenv:releasenotes] +# NOTE(sdague): this target does not use constraints because +# upstream infra does not yet support it. Once that's fixed, we can +# drop the install_command. +install_command = + pip install -U --force-reinstall {opts} {packages} +commands = + sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html + + # environment used by the -infra templated docs job [testenv:venv] -deps = -r{toxinidir}/test-requirements.txt -commands = {posargs} +# NOTE(jaegerandi): this target does not use constraints because +# upstream infra does not yet support it. Once that's fixed, we can +# drop the install_command. +install_command = + pip install -U --force-reinstall {opts} {packages} +commands = + {posargs} [testenv:pep8] @@ -40,6 +68,7 @@ commands = --exclude-dir doc \ {toxinidir} | xargs flake8 --verbose" + [flake8] # Ignores the following rules due to how ansible modules work in general # F403 'from ansible.module_utils.basic import *' used; @@ -69,6 +98,3 @@ commands = commands = {[testenv:pep8]commands} {[testenv:bashate]commands} - -[testenv:releasenotes] -commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html