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
flake8>=2.5.4,<2.6.0 # MIT

46
tox.ini
View File

@ -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