[tox] minversion = 3.18.0 skipsdist = True envlist = docs,linters,functional,molecule ignore_basepython_conflict = True [testenv] basepython = python3 usedevelop = True install_command = pip install -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages} commands = /usr/bin/find . -type f -name "*.pyc" -delete passenv = ANSIBLE_* COMMON_TESTS_PATH DOCKER_* HOME HTTPS_PROXY HTTP_PROXY MOLECULE_* NO_PROXY SSH_AUTH_SOCK TERM TESTING_BRANCH TESTING_HOME USER http_proxy https_proxy no_proxy allowlist_externals = bash setenv = ANSIBLE_FORCE_COLOR=1 ANSIBLE_NOCOWS=1 ANSIBLE_RETRY_FILES_ENABLED=0 ANSIBLE_STDOUT_CALLBACK=debug ANSIBLE_INVENTORY= ANSIBLE_CONFIG= MOLECULE_NO_LOG={env:MOLECULE_NO_LOG:0} PYTHONUNBUFFERED=1 PY_COLORS=1 ROLE_NAME=os_tempest TEST_IDEMPOTENCE=false VIRTUAL_ENV={envdir} WORKING_DIR={toxinidir} [testenv:docs] deps = -r{toxinidir}/doc/requirements.txt commands = bash -c "rm -rf doc/build" doc8 doc sphinx-build -W --keep-going -b html doc/source doc/build/html [testenv:pdf-docs] deps = {[testenv:docs]deps} allowlist_externals = make commands = sphinx-build -W --keep-going -b latex doc/source doc/build/pdf make -C doc/build/pdf [doc8] # Settings for doc8: extensions = .rst [testenv:releasenotes] deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -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/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/common/test-bashate.sh" [testenv:ansible-syntax] commands = bash -c "{toxinidir}/tests/common/test-ansible-syntax.sh" [testenv:ansible-lint] commands = bash -c "{toxinidir}/tests/common/test-ansible-lint.sh" [testenv:functional] commands = bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" [testenv:distro_install] setenv = {[testenv]setenv} ANSIBLE_PARAMETERS=-e @{toxinidir}/tests/common/test-distro_install-vars.yml commands = bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" [testenv:linters] commands = bash -c "{toxinidir}/tests/common/test-ansible-env-prep.sh" {[testenv:pep8]commands} {[testenv:bashate]commands} {[testenv:ansible-lint]commands} {[testenv:ansible-syntax]commands} [testenv:molecule] setenv = TOX_CONSTRAINTS_FILE=/dev/null deps = ansi2html # GPL (soft-dependency of pytest-html) docker>=3.7 # Apache molecule>=3.0.2 # MIT paramiko>=2.5.0 # LGPL (soft-dependency of docker that enables ssh protocol) pytest # MIT pytest-html # MPL 2.0 pytest-molecule # MIT pytest-plus # MIT selinux # MIT commands = python -m pytest -ra --html={envlogdir}/reports.html --self-contained-html {tty:-s} {posargs:-k molecule}