[tox] minversion = 2.0 skipsdist = True envlist = docs,linters,functional [testenv] usedevelop = True 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 setenv = ANSIBLE_INVENTORY={toxinidir}/tests/lxb_inventory PYTHONUNBUFFERED=1 ROLE_NAME=os_neutron TEST_IDEMPOTENCE=false VIRTUAL_ENV={envdir} WORKING_DIR={toxinidir} [testenv:docs] commands= bash -c "rm -rf doc/build" doc8 doc python setup.py build_sphinx [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:tests_clone] commands = bash -c "if [ ! -d "{toxinidir}/tests/common" ]; then \ git clone https://git.openstack.org/openstack/openstack-ansible-tests {toxinidir}/tests/common; \ fi" [testenv:pep8] commands = {[testenv:tests_clone]commands} 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 # H303 No wildcard (*) import. ignore=F403,H303 [testenv:bashate] commands = {[testenv:tests_clone]commands} bash -c "{toxinidir}/tests/common/test-bashate.sh" [testenv:ansible] deps = {[testenv]deps} -rhttp://git.openstack.org/cgit/openstack/openstack-ansible-tests/plain/test-ansible-deps.txt [testenv:ansible-syntax] deps = {[testenv:ansible]deps} commands = {[testenv:tests_clone]commands} bash -c "{toxinidir}/tests/common/test-ansible-syntax.sh" [testenv:ansible-lint] deps = {[testenv:ansible]deps} commands = {[testenv:tests_clone]commands} bash -c "{toxinidir}/tests/common/test-ansible-lint.sh" [testenv:func_base] # NOTE(odyssey4me): this target does not use constraints because # it doesn't work in OpenStack-CI yet. Once that's fixed, we can # drop the install_command. install_command = pip install -U --force-reinstall {opts} {packages} [testenv:functional] # NOTE(odyssey4me): this target does not use constraints because # it doesn't work in OpenStack-CI yet. Once that's fixed, we can # drop the install_command. install_command = {[testenv:func_base]install_command} deps = {[testenv:ansible]deps} commands = {[testenv:tests_clone]commands} bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" [testenv:func_ovs] # NOTE(odyssey4me): this target does not use constraints because # it doesn't work in OpenStack-CI yet. Once that's fixed, we can # drop the install_command. install_command = {[testenv:func_base]install_command} deps = {[testenv:ansible]deps} setenv = {[testenv]setenv} ANSIBLE_INVENTORY={toxinidir}/tests/ovs_inventory ANSIBLE_OVERRIDES={toxinidir}/tests/neutron-overrides-ovs.yml commands = {[testenv:tests_clone]commands} bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" [testenv:calico] # NOTE(odyssey4me): this target does not use constraints because # it doesn't work in OpenStack-CI yet. Once that's fixed, we can # drop the install_command. install_command = {[testenv:func_base]install_command} deps = {[testenv:ansible]deps} setenv = {[testenv]setenv} ANSIBLE_INVENTORY={toxinidir}/tests/calico_inventory ANSIBLE_OVERRIDES={toxinidir}/tests/neutron-overrides-calico.yml commands = {[testenv:tests_clone]commands} bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" [testenv:linters] deps = {[testenv:ansible]deps} commands = {[testenv:pep8]commands} {[testenv:bashate]commands} {[testenv:ansible-lint]commands} {[testenv:ansible-syntax]commands} {[testenv:docs]commands}