barbican/tox.ini
Elod Illes b6fa683483 [CI] Use last supported version of tempest plugin
Use zed-last tagged version of barbican-tempest-plugin.
Moreover, a barbican-tempest-plugin patch removed zed version of some
jobs [1]. This patch adds their definitions to barbican in the current
branch.

Jobs barbican-tempest-plugin-simple-crypto-secure-rbac and
barbican-tempest-plugin-simple-crypto-secure-rbac are set as non-voting
to unblock the gate. As soon as they are fixed we can set them back as
voting.

This patsh also includes (Icba7968657ac476861a4fe4cbffd05a728ca54b0):
Fix functional tests

This adds find to the allow list in tox.

(cherry picked from commit 64eac2407155b86b68978479504dba653b7d51c0)
(cherry picked from commit b38b21392ab3bba8df5be16730dda2e13c92e55c)

Moreover, barbican-tox-functional needs another fix, because the upper
constraints are not used for installing the barbican package itself,
only for the installation for the dependencies. This patch adds
requirements.txt to deps, so that all direct dependencies will be
pre-installed with the correct, constrained version.

[1] https://review.opendev.org/c/openstack/barbican-tempest-plugin/+/930820

Change-Id: I05d768b7eaec6a1048ed676bbbaef6fa5c42e54d
2025-02-05 17:44:22 +01:00

191 lines
5.6 KiB
INI

[tox]
minversion = 3.18.0
envlist = py39,py38,py36,pep8,docs
skipsdist = True
ignore_basepython_conflict = True
[testenv]
basepython = python3
setenv =
PYTHON=coverage run --source barbican --parallel-mode
usedevelop = True
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/zed}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
oslo-config-generator --config-file etc/oslo-config-generator/barbican.conf --output-file etc/barbican/barbican.conf
/usr/bin/find . -type f -name "*.py[c|o]" -delete
rm -f .testrepository/times.dbm
coverage erase
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report -m
allowlist_externals = rm
[testenv:cover]
deps =
{[testenv]deps}
diff_cover
commands =
coverage erase
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
diff-cover --fail-under 100 --compare-branch master cover/coverage.xml
[testenv:releasenotes]
deps = {[testenv:docs]deps}
commands =
rm -rf releasenotes/build
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:pep8]
sitepackages = False
commands =
doc8 {posargs}
flake8 {posargs}
# Run security linter
bandit -r barbican -x tests -n5 -s B105
[testenv:genconfig]
allowlist_externals = bash
envdir = {toxworkdir}/pep8
commands =
oslo-config-generator --config-file etc/oslo-config-generator/barbican.conf
[testenv:venv]
commands = {posargs}
[testenv:debug]
commands = oslo_debug_helper -t barbican/tests {posargs}
[testenv:py3pep8]
# This hack is in place to allow us to run py3 based flake8
# without installing barbican.
install_command = /bin/echo {packages}
commands =
pip install "hacking>=3.0,<3.1.0"
flake8 barbican setup.py
[testenv:docs]
# This environment is called from CI scripts to test and publish
# the main docs to https://docs.openstack.org/barbican
description = Build main documentation
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/zed}
-r{toxinidir}/doc/requirements.txt
commands=
rm -rf doc/build doc/build/doctrees
sphinx-build -W -b html doc/source doc/build/html
allowlist_externals = rm
[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:api-guide]
# This environment is called from CI scripts to test and publish
# the API Guide to docs.openstack.org.
deps = {[testenv:docs]deps}
commands =
rm -rf api-guide/build
sphinx-build -W -b html -d api-guide/build/doctrees api-guide/source api-guide/build/html
[testenv:all-docs]
description = Build all documentation
deps = {[testenv:docs]deps}
commands=
{[testenv:docs]commands}
{[testenv:api-guide]commands}
{[testenv:releasenotes]commands}
allowlist_externals = rm
[testenv:functional]
# This tox env is purely to make local test development easier
# Note: This requires local running instances of Barbican and Keystone
# TODO(dmend): remove --serial and uncomment coverage commands
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/zed}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
setenv =
OS_TEST_PATH={toxinidir}/functionaltests
commands =
/usr/bin/find . -type f -name "*.py[c|o]" -delete
stestr run --serial --slowest {posargs}
# coverage combine
# coverage html -d cover
# coverage xml -o cover/coverage.xml
allowlist_externals =
/usr/bin/find
passenv = KMIP_PLUGIN_ENABLED
VAULT_PLUGIN_ENABLED
PKCS11_PLUGIN_ENABLED
[testenv:cmd]
# This tox env is purely to make local test development easier
# Note: This requires local running instances of Barbican and Keystone
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/zed}
-r{toxinidir}/test-requirements.txt
setenv =
OS_TEST_PATH={toxinidir}/barbican/cmd/functionaltests
commands =
/usr/bin/find . -type f -name "*.py[c|o]" -delete
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
allowlist_externals =
/usr/bin/find
[doc8]
ignore = D001
ignore-path = .venv,.git,.tox,.tmp,*barbican/locale*,*lib/python*,barbican.egg*,doc/build,releasenotes/*,doc/source/contributor/api
[flake8]
filename = *.py,app.wsgi
exclude = .git,.idea,.tox,bin,dist,debian,rpmbuild,tools,*.egg-info,*.eggs,contrib,
*docs/target,*.egg,build
# E402 module level import not at top of file
# W503 line break before binary operator
# W504 line break after binary operator
ignore = E402,W503,W504,
[testenv:bandit]
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r barbican -x tests -n5
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files.
deps = bindep
commands = bindep test
[testenv:genpolicy]
envdir = {toxworkdir}/pep8
commands = oslopolicy-sample-generator --config-file=etc/oslo-config-generator/policy.conf
[flake8:local-plugins]
extension =
B310 = checks:CheckLoggingFormatArgs
B311 = checks:validate_assertIsNone
B312 = checks:validate_assertTrue
B317 = checks:check_oslo_namespace_imports
B318 = checks:dict_constructor_with_list_copy
B319 = checks:no_xrange
B320 = checks:no_log_warn_check
B321 = checks:validate_assertIsNotNone
paths = ./barbican/hacking