f3dccff4ea
The lint tests are inconsistent and often timing out due to the implementation not using the cached repositories in the same way as the tests repo's lint tests. It'll be simpler to maintain if all lint tests worked the same way. Depends-On: I8bea90082dbde7de49c5e2e86d298c017b16591d Change-Id: I4a5f6fe69e2d421846999c7cbd949504be77f23d
160 lines
3.9 KiB
INI
160 lines
3.9 KiB
INI
[tox]
|
|
minversion = 2.0
|
|
skipsdist = True
|
|
envlist = linters,docs,releasenotes,inventory,py3-inventory
|
|
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
basepython = python2.7
|
|
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}/global-requirement-pins.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
passenv =
|
|
HOME
|
|
http_proxy
|
|
HTTP_PROXY
|
|
https_proxy
|
|
HTTPS_PROXY
|
|
no_proxy
|
|
NO_PROXY
|
|
whitelist_externals =
|
|
bash
|
|
setenv =
|
|
PYTHONUNBUFFERED=1
|
|
PYTHONWARNINGS=default::DeprecationWarning
|
|
VIRTUAL_ENV={envdir}
|
|
WORKING_DIR={toxinidir}
|
|
ANSIBLE_EXTRA_ROLE_DIRS={toxinidir}/playbooks/roles
|
|
ANSIBLE_ROLE_REQUIREMENTS_PATH={toxinidir}/ansible-role-requirements.yml
|
|
TEST_PLAYBOOK={toxinidir}/tests/bootstrap-aio.yml {toxinidir}/playbooks/setup-everything.yml
|
|
|
|
|
|
|
|
[testenv:docs]
|
|
commands=
|
|
bash -c "rm -rf doc/build"
|
|
doc8 doc
|
|
python setup.py build_sphinx
|
|
|
|
|
|
|
|
[testenv:deploy-guide]
|
|
commands = sphinx-build -a -E -W -d deploy-guide/build/doctrees -b html deploy-guide/source deploy-guide/build/html
|
|
|
|
|
|
|
|
[doc8]
|
|
# Settings for doc8:
|
|
extensions = .rst
|
|
|
|
|
|
|
|
[testenv:releasenotes]
|
|
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]
|
|
commands =
|
|
{posargs}
|
|
|
|
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
|
bash -c "{toxinidir}/tests/common/test-pep8.sh"
|
|
|
|
|
|
|
|
[flake8]
|
|
# Ignores the following rules due to how ansible modules work in general
|
|
# F403 'from ansible.module_utils.basic import *' used;
|
|
# unable to detect undefined names
|
|
ignore=F403
|
|
|
|
|
|
|
|
[testenv:bashate]
|
|
commands =
|
|
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
|
bash -c "{toxinidir}/tests/common/test-bashate.sh"
|
|
|
|
|
|
|
|
# The deps URL should be set to the appropriate git URL.
|
|
# In the tests repo itself, the variable is uniquely set to
|
|
# the toxinidir so that the role is able to test itself, but
|
|
# the tox config is exactly the same as other repositories.
|
|
#
|
|
# The value for other repositories must be:
|
|
# http://git.openstack.org/cgit/openstack/openstack-ansible-tests/plain/test-ansible-deps.txt
|
|
# or for a stable branch:
|
|
# http://git.openstack.org/cgit/openstack/openstack-ansible-tests/plain/test-ansible-deps.txt?h=stable/newton
|
|
[testenv:ansible]
|
|
deps =
|
|
{[testenv]deps}
|
|
-r{toxinidir}/global-requirement-pins.txt
|
|
-rhttps://git.openstack.org/cgit/openstack/openstack-ansible-tests/plain/test-ansible-deps.txt
|
|
|
|
|
|
|
|
[testenv:ansible-syntax]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
commands =
|
|
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
|
bash -c "{toxinidir}/tests/common/test-ansible-syntax.sh"
|
|
|
|
|
|
|
|
[testenv:ansible-lint]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
commands =
|
|
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
|
bash -c "{toxinidir}/tests/common/test-ansible-lint.sh"
|
|
|
|
|
|
|
|
[testenv:inventory]
|
|
# Use a fixed seed since some inventory tests rely on specific ordering
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHONHASHSEED = 100
|
|
commands =
|
|
coverage erase
|
|
coverage run -a {toxinidir}/tests/test_inventory.py
|
|
coverage run -a {toxinidir}/tests/test_manage.py
|
|
coverage run -a {toxinidir}/tests/test_dictutils.py
|
|
coverage run -a {toxinidir}/tests/test_ip.py
|
|
coverage run -a {toxinidir}/tests/test_filesystem.py
|
|
coverage report --show-missing --include={toxinidir}/playbooks/inventory/*,{toxinidir}/osa_toolkit/*
|
|
|
|
|
|
|
|
[testenv:py3-inventory]
|
|
basepython = python3.5
|
|
setenv =
|
|
{[testenv:inventory]setenv}
|
|
commands =
|
|
{[testenv:inventory]commands}
|
|
|
|
|
|
|
|
[testenv:linters]
|
|
deps =
|
|
{[testenv:ansible]deps}
|
|
commands =
|
|
{[testenv:pep8]commands}
|
|
{[testenv:bashate]commands}
|
|
{[testenv:ansible-lint]commands}
|
|
{[testenv:ansible-syntax]commands}
|
|
{[testenv:inventory]commands}
|
|
{[testenv:docs]commands}
|