openstacksdk-functional-devstack job is failing, because it overrides openstacksdk's branch to master branch, in which the dependency constraints contradicts with the constraints on wallaby branch, thus we need to remove the branch override. NOTE(elod.illes): meanwhile the gate got another blocker, so I've squashed that workaround to this patch, too (which is a victoria only patch to cap virtualenv/setuptools and tox): With latest virtualenv release (20.24.0) and its bundled setuptools version, stable/victoria gates started to fail [1], because setuptools is not compatible with the pbr version (5.5.0) which is in victoria branch's upper constraint [2]. pbr's next release (5.5.1) removed the failing code, this is why the change is only needed in stable/victoria. This patch caps virtualenv to <20.24.0 to fix stable/victoria's gate, and also caps tox for the 'inner' virtualenv, otherwise tox>4 would be installed, that would introduce failures (those failures are fixed in newer stable branches, but it would need several backports and 'outer' tox is capped <4 anyway, so no worth dealing with it here). [1] AttributeError: module 'setuptools.command.easy_install' has no attribute 'get_script_header' [2]636b6b3bde/upper-constraints.txt (L44)Change-Id: Ic1c9cb2e04259aaf78342b4bb2161235666abb49 (cherry picked from commitf48f90bee4)
134 lines
4.3 KiB
INI
134 lines
4.3 KiB
INI
[tox]
|
|
minversion = 3.1
|
|
envlist = pep8,py38
|
|
skipsdist = True
|
|
ignore_basepython_conflict = True
|
|
# Cap setuptools via virtualenv to prevent compatibility issue with victoria
|
|
# branch's upper constraint of pbr package (5.5.0). Tox is also needed to be
|
|
# constrained for the 'inner' tox to be installed with the constrained venv.
|
|
requires =
|
|
virtualenv<20.24.0
|
|
tox<4
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
passenv = OS_* OPENSTACKSDK_*
|
|
basepython = python3
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
LANG=en_US.UTF-8
|
|
LANGUAGE=en_US:en
|
|
LC_ALL=C
|
|
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:false}
|
|
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
|
|
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/victoria}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
commands = stestr run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:examples]
|
|
commands = stestr --test-path ./openstack/tests/examples run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:functional]
|
|
# Some jobs (especially heat) takes longer, therefore increase default timeout
|
|
# This timeout should not be smaller, than the longest individual timeout
|
|
setenv =
|
|
{[testenv]setenv}
|
|
OS_TEST_TIMEOUT=600
|
|
OPENSTACKSDK_FUNC_TEST_TIMEOUT_LOAD_BALANCER=600
|
|
OPENSTACKSDK_EXAMPLE_CONFIG_KEY=functional
|
|
OPENSTACKSDK_FUNC_TEST_TIMEOUT_PROJECT_CLEANUP=1200
|
|
commands = stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TESTS_SUBDIR:} run --serial {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
flake8
|
|
doc8 doc/source README.rst
|
|
|
|
[testenv:venv]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/victoria}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands = {posargs}
|
|
|
|
[testenv:debug]
|
|
# allow 1 year, or 31536000 seconds, to debug a test before it times out
|
|
setenv = OS_TEST_TIMEOUT=31536000
|
|
whitelist_externals = find
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
oslo_debug_helper -t openstack/tests {posargs}
|
|
|
|
[testenv:cover]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run --source openstack --parallel-mode
|
|
commands =
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
|
|
[testenv:ansible]
|
|
# Need to pass some env vars for the Ansible playbooks
|
|
passenv = HOME USER ANSIBLE_VAR_*
|
|
deps =
|
|
{[testenv]deps}
|
|
ansible
|
|
commands = {toxinidir}/extras/run-ansible-tests.sh -e {envdir} {posargs}
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/victoria}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
sphinx-build -W -d doc/build/doctrees --keep-going -b html doc/source/ doc/build/html
|
|
|
|
[testenv:pdf-docs]
|
|
deps = {[testenv:docs]deps}
|
|
whitelist_externals =
|
|
make
|
|
commands =
|
|
sphinx-build -W -d doc/build/doctrees --keep-going -b latex doc/source/ doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:releasenotes]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/victoria}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html
|
|
|
|
[flake8]
|
|
# The following are ignored on purpose. It's not super worth it to fix them.
|
|
# However, if you feel strongly about it, patches will be accepted to fix them
|
|
# if they fix ALL of the occurances of one and only one of them.
|
|
# H238 New Style Classes are the default in Python3
|
|
# H306 Is about alphabetical imports - there's a lot to fix.
|
|
# H4 Are about docstrings and there's just a huge pile of pre-existing issues.
|
|
# W503 Is supposed to be off by default but in the latest pycodestyle isn't.
|
|
# Also, both openstacksdk and Donald Knuth disagree with the rule. Line
|
|
# breaks should occur before the binary operator for readability.
|
|
ignore = H238,H306,H4,W503
|
|
show-source = True
|
|
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,openstack/_services_mixin.py
|
|
|
|
[flake8:local-plugins]
|
|
extension =
|
|
O300 = _hacking:assert_no_setupclass
|
|
paths = ./openstack
|
|
|
|
[doc8]
|
|
extensions = .rst, .yaml
|
|
|