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)
193 lines
6.1 KiB
INI
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
|