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
This commit is contained in:
Jesse Pretorius 2016-07-08 13:33:56 +01:00 committed by Jesse Pretorius (odyssey4me)
parent 362bf84586
commit a36f0a1e4e
2 changed files with 36 additions and 12 deletions

View File

@ -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 bashate>=0.2 # Apache-2.0
flake8>=2.5.4,<2.6.0 # MIT flake8>=2.5.4,<2.6.0 # MIT

46
tox.ini
View File

@ -1,31 +1,59 @@
[tox] [tox]
minversion = 1.6 minversion = 2.0
skipsdist = True skipsdist = True
envlist = docs,linters envlist = docs,linters,functional
[testenv] [testenv]
usedevelop = True usedevelop = True
install_command = pip install -U {opts} {packages} install_command =
deps = -r{toxinidir}/test-requirements.txt pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
commands = /usr/bin/find . -type f -name "*.pyc" -delete deps =
-r{toxinidir}/test-requirements.txt
commands =
/usr/bin/find . -type f -name "*.pyc" -delete
passenv = passenv =
HOME HOME
http_proxy
HTTP_PROXY
https_proxy
HTTPS_PROXY
no_proxy
NO_PROXY
whitelist_externals = whitelist_externals =
bash bash
git
rm
wget
setenv = setenv =
VIRTUAL_ENV={envdir} VIRTUAL_ENV={envdir}
[testenv:docs] [testenv:docs]
commands= commands=
bash -c "rm -rf doc/build"
python setup.py build_sphinx 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 # environment used by the -infra templated docs job
[testenv:venv] [testenv:venv]
deps = -r{toxinidir}/test-requirements.txt # NOTE(jaegerandi): this target does not use constraints because
commands = {posargs} # 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] [testenv:pep8]
@ -40,6 +68,7 @@ commands =
--exclude-dir doc \ --exclude-dir doc \
{toxinidir} | xargs flake8 --verbose" {toxinidir} | xargs flake8 --verbose"
[flake8] [flake8]
# Ignores the following rules due to how ansible modules work in general # Ignores the following rules due to how ansible modules work in general
# F403 'from ansible.module_utils.basic import *' used; # F403 'from ansible.module_utils.basic import *' used;
@ -69,6 +98,3 @@ commands =
commands = commands =
{[testenv:pep8]commands} {[testenv:pep8]commands}
{[testenv:bashate]commands} {[testenv:bashate]commands}
[testenv:releasenotes]
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html