
We want to start testing sdk and osc on real clouds. They are all different, have different settings, policies, etc. In order to cope with that it would be necessary to rework lot of tests and code to ensure all of those "feautres" are properly detected by sdk and osc. Block-storage test base class should not set operator cloud, only tests that require it explicitly should use it Change-Id: I09d118097bade8f0d8ff497957846a754ebc7c1e
148 lines
4.8 KiB
INI
148 lines
4.8 KiB
INI
[tox]
|
|
minversion = 3.18.0
|
|
envlist = pep8,py3
|
|
skipsdist = True
|
|
ignore_basepython_conflict = True
|
|
|
|
[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/master}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
commands =
|
|
stestr run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:functional{,-py36,-py37,-py38,-py39}]
|
|
# 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
|
|
|
|
# Acceptance tests are the ones running on real clouds
|
|
[testenv:acceptance-regular-user]
|
|
# This env intends to test functions of a regular user without admin privileges
|
|
# 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_DEMO_CLOUD and OS_CLOUD should point to the cloud to test
|
|
# Othee clouds are explicitly set empty to let tests detect absense
|
|
OPENSTACKSDK_DEMO_CLOUD_ALT=
|
|
OPENSTACKSDK_OPERATOR_CLOUD=
|
|
commands =
|
|
stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TESTS_SUBDIR:} run --serial {posargs} --include-list include-acceptance-regular-user.txt
|
|
stestr slowest
|
|
|
|
[testenv:pep8]
|
|
deps =
|
|
hacking>=3.1.0,<4.0.0 # Apache-2.0
|
|
flake8-import-order>=0.17.1 # LGPLv3
|
|
pycodestyle>=2.0.0,<2.7.0 # MIT
|
|
Pygments>=2.2.0 # BSD
|
|
doc8>=0.8.0 # Apache 2.0
|
|
commands =
|
|
flake8 {posargs}
|
|
doc8 doc/source README.rst
|
|
|
|
[testenv:venv]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-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
|
|
allowlist_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/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
sphinx-build -W --keep-going -b html -j auto doc/source/ doc/build/html
|
|
|
|
[testenv:pdf-docs]
|
|
deps = {[testenv:docs]deps}
|
|
allowlist_externals =
|
|
make
|
|
commands =
|
|
sphinx-build -W --keep-going -b latex -j auto doc/source/ doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:releasenotes]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
sphinx-build -W --keep-going -b html -j auto releasenotes/source releasenotes/build/html
|
|
|
|
[flake8]
|
|
application-import-names = openstack
|
|
# 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.
|
|
# E203 Black will put spaces after colons in list comprehensions
|
|
# H238 New Style Classes are the default in Python3
|
|
# 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 = E203, H238, H4, W503
|
|
import-order-style = pep8
|
|
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
|