Files
designate/tox.ini
Michael Johnson 08d56f8713 Fix tox docs env to have the correct dependencies
Pip is pulling in unstrained dependencies during the "sibblings" package
install step. Normally this is fine as the dependencies have already been
installed and it's just installing the package under test. However, with
designate there are a lot of overlapping dependencies and pip will end up
reinstalling an unconstrained version. In this case it was Jinja2.

Change-Id: Ie49f99ba8e86913471ee6cd078f5afd28282c0f5
(cherry picked from commit 5b40d3d908)
2022-04-06 18:10:51 +00:00

193 lines
6.1 KiB
INI

[tox]
minversion = 3.18.0
envlist = py37,flake8
ignore_basepython_conflict = True
skipsdist = True
[testenv]
basepython = python3
setenv =
VIRTUAL_ENV={envdir}
LANGUAGE=C.UTF-8
LC_ALL=C.UTF-8
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:180}
PYTHONDONTWRITEBYTECODE=1
PYTHONWARNINGS=default::DeprecationWarning,ignore::DeprecationWarning:distutils,ignore::DeprecationWarning:site
passenv =
http_proxy
HTTP_PROXY
https_proxy
HTTPS_PROXY
no_proxy
NO_PROXY
OS_DEBUG
usedevelop = True
install_command =
pip install {opts} {packages}
commands =
find . -type f -name "*.py[c|o]" -delete
rm -f .testrepository/times.dbm
stestr run {posargs}
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/xena}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
allowlist_externals =
sh
find
rm
[testenv:docs]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/xena}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build
sphinx-build -W -b html doc/source doc/build/html
[testenv:pdf-docs]
deps = {[testenv:docs]deps}
allowlist_externals =
make
commands =
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[testenv:cover]
setenv =
{[testenv]setenv}
PYTHON=coverage run --source designate --parallel-mode
commands =
coverage erase
find . -type f -name "*.pyc" -delete
stestr run --no-subunit-trace {posargs}
coverage combine
coverage report --skip-covered
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:bandit]
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r designate -n5 -x 'designate/tests/*' -t \
B505,B504,B503,B502,B501,B604,B605,B001,B601,B602,B701,B609,B702,\
B608,B506,B312,B310,B411,B108,B103,B102,B309,B308,B302,B307,B306
[testenv:debug]
commands = oslo_debug_helper -t designate/tests {posargs}
[testenv:flake8]
deps = -r{toxinidir}/test-requirements.txt
commands = sh tools/pretty_flake8.sh
{[testenv:bandit]commands}
[testenv:pep8]
deps = -r{toxinidir}/test-requirements.txt
commands = sh tools/pretty_flake8.sh
{[testenv:bandit]commands}
doc8 {posargs}
[testenv:genconfig]
commands = oslo-config-generator --config-file=etc/designate/designate-config-generator.conf
[testenv:genpolicy]
commands = oslopolicy-sample-generator --config-file etc/designate/designate-policy-generator.conf
[testenv:bashate]
deps = bashate
allowlist_externals = bash
commands = bash -c "find {toxinidir}/devstack \
-not \( -type d -name .?\* -prune \) \
-not \( -type d -name doc -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
\( \
-name \*.sh -or \
-name \*rc -or \
-name functions\* -or \
-wholename \*/lib/\* \
\) \
-print0 | xargs -0 bashate -v"
[testenv:pip-check-reqs]
# do not install test-requirements as that will pollute the virtualenv for
# determining missing packages
# this also means that pip-missing-reqs must be installed separately, outside
# of the requirements.txt files
deps = pip-check-reqs
-r{toxinidir}/requirements.txt
commands=pip-missing-reqs -d --ignore-file=designate/tests/* designate
[testenv:api-ref]
# This environment is called from CI scripts to test and publish
# the API Ref to docs.openstack.org.
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/xena}
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf api-ref/build
sphinx-build -E -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
[testenv:releasenotes]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/xena}
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf releasenotes/build
sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:venv]
commands = {posargs}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
[doc8]
ignore-path = .venv,.git,.tox,*designate/locale*,*lib/python*,*designate.egg*,api-ref/build,doc/build,doc/source/contributor/api
[flake8]
# ignored flake8 codes:
# H105 don't use author tags. We use version control instead
# H302 import only modules
# H306 imports not in alphabetical order
# H238 old style class declaration, use new style (inherit from `object`)
# H402 one line docstring needs punctuation
# H404 multi line docstring should start with a summary
# H405 multi line docstring summary not separated with an empty line
# H501 Do not use locals() or self.__dict__ for string formatting.
# H904 Wrap long lines in parentheses instead of a backslash
# E126 continuation line over-indented for hanging indent
# E128 continuation line under-indented for visual indent
# W504 line break after binary operator
ignore = H105,H302,H306,H238,H402,H404,H405,H501,H904,E126,E128,W504
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,.ropeproject
[hacking]
import_exceptions = designate.i18n
[flake8:local-plugins]
extension =
D701 = checks:mutable_default_arguments
D703 = checks:check_explicit_underscore_import
D704 = checks:no_import_graduated_oslo_libraries
D705 = checks:use_timeutils_utcnow
D706 = checks:no_translate_debug_logs
D707 = checks:check_no_basestring
D708 = checks:check_python3_xrange
D709 = checks:check_no_log_audit
paths = ./designate/hacking
[testenv:lower-constraints]
skip_install = True
commands =
python -m pip install --no-deps -U .
stestr run {posargs}
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt