4cfaadec59
These are not needed for unit tests and we want to avoid conflicts when running with older python versions that we still test against. We intentionally duplicate ansible and reno as requirements in order to avoid having to install more items than necessary. Signed-off-by: Dr. Jens Harbott <harbott@osism.tech> Change-Id: I0ec83c3e4ae38f911b922a3bade65429d91169eb
155 lines
4.7 KiB
INI
155 lines
4.7 KiB
INI
[tox]
|
|
minversion = 3.18
|
|
skipsdist = True
|
|
envlist = py38,linters
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
usedevelop = True
|
|
allowlist_externals = find
|
|
rm
|
|
deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
|
|
OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE OS_TEST_TIMEOUT
|
|
PYTHON OS_TEST_PATH LISTOPT IDOPTION
|
|
commands =
|
|
find . -type f -name "*.py[c|o]" -delete -o -type l -name "*.py[c|o]" -delete
|
|
find . -type d -name "__pycache__" -delete
|
|
{toxinidir}/tests/link-module-utils.sh {toxinidir} {envsitepackagesdir}
|
|
stestr run --slowest {posargs}
|
|
|
|
[testenv:debug]
|
|
commands = oslo_debug_helper -t tests {posargs}
|
|
|
|
[testenv:cover]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
NOSE_WITH_COVERAGE=1
|
|
NOSE_COVER_BRANCHES=1
|
|
NOSE_COVER_HTML=1
|
|
NOSE_COVER_HTML_DIR={toxinidir}/cover
|
|
PYTHON=coverage run --source kolla_ansible,ansible/action_plugins,ansible/library,ansible/roles/keystone/files/ --parallel-mode
|
|
commands =
|
|
{toxinidir}/tests/link-module-utils.sh {toxinidir} {envsitepackagesdir}
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
|
|
[testenv:venv]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
skip_install = true
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
rm -rf doc/build/html
|
|
{[testenv:docs-iterative]commands}
|
|
|
|
[testenv:docs-iterative]
|
|
envdir = {toxworkdir}/docs
|
|
skip_install = {[testenv:docs]skip_install}
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
sphinx-build -n -W --keep-going -b html doc/source doc/build/html
|
|
whereto doc/source/_extra/.htaccess doc/test/redirect-tests.txt
|
|
|
|
[testenv:deploy-guide]
|
|
skip_install = {[testenv:docs]skip_install}
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
rm -rf deploy-guide/build/html
|
|
sphinx-build -n -W --keep-going -b html deploy-guide/source deploy-guide/build/html
|
|
|
|
[testenv:pdf-docs]
|
|
allowlist_externals = make
|
|
skip_install = {[testenv:docs]skip_install}
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
rm -rf doc/build/pdf
|
|
sphinx-build -n -W --keep-going -b latex doc/source doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:releasenotes]
|
|
skip_install = {[testenv:docs]skip_install}
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
rm -rf releasenotes/build/html
|
|
sphinx-build -n -W --keep-going -b html releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:linters]
|
|
# Env vars and deps need to be defined in top level tox env
|
|
setenv =
|
|
ANSIBLE_LIBRARY = {toxinidir}/ansible/library
|
|
ANSIBLE_ACTION_PLUGINS = {toxinidir}/ansible/action_plugins
|
|
ANSIBLE_FILTER_PLUGINS = {toxinidir}/ansible/filter_plugins
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/lint-requirements.txt
|
|
allowlist_externals = bash
|
|
find
|
|
commands =
|
|
{[testenv:pep8]commands}
|
|
{[testenv:doc8]commands}
|
|
{[testenv:bandit]commands}
|
|
{[testenv:bashate]commands}
|
|
{[testenv:j2lint]commands}
|
|
{[testenv:yamllint]commands}
|
|
{[testenv:ansible-lint]commands}
|
|
|
|
[testenv:pep8]
|
|
deps = {[testenv:linters]deps}
|
|
commands =
|
|
flake8 {posargs}
|
|
|
|
[flake8]
|
|
show-source = True
|
|
# NOTE: Default ignore list is *not* empty!
|
|
# W504 line break after binary operator
|
|
# (W503 and W504 are incompatible and we need to choose one of them.
|
|
# Existing codes follows W503, so we disable W504.):
|
|
ignore = W504
|
|
exclude = .eggs,.git,.tox,doc
|
|
|
|
[testenv:doc8]
|
|
deps = {[testenv:linters]deps}
|
|
commands =
|
|
doc8 doc/source
|
|
reno lint
|
|
doc8 -e '.yaml' releasenotes/notes/
|
|
|
|
[testenv:bashate]
|
|
deps = {[testenv:linters]deps}
|
|
commands =
|
|
bash -c "{toxinidir}/tools/run-bashate.sh"
|
|
|
|
[testenv:bandit]
|
|
# B303: Use of insecure MD2, MD4, MD5, or SHA1 hash function.
|
|
deps = {[testenv:linters]deps}
|
|
commands = bandit --skip B303 -r ansible kolla_ansible tests tools
|
|
|
|
[testenv:j2lint]
|
|
deps = {[testenv:linters]deps}
|
|
commands =
|
|
find {toxinidir} -type f -name "*.j2" -not -path "*/.tox/*" -exec {toxinidir}/tests/j2lint.py \{\} +
|
|
|
|
[testenv:ansible-lint]
|
|
# Lint only code in ansible/* - ignore tests/ and roles/ used by CI
|
|
setenv = {[testenv:linters]setenv}
|
|
deps = {[testenv:linters]deps}
|
|
commands =
|
|
python {toxinidir}/tools/validate-all-file.py
|
|
ansible-lint -p --exclude {toxinidir}/tests --exclude {toxinidir}/roles --exclude {toxinidir}/etc
|
|
|
|
[testenv:yamllint]
|
|
deps = {[testenv:linters]deps}
|
|
commands = yamllint -s .
|