
Docs configuration file doc/source/conf.py shouldn't install dependencies, like tobiko project itself as it seems that this causes failures of the docs builds on the readthedocs. So this patch removes it from that file and adds sphinx_rtd_theme to the docs requirements file. It also moves installation of tobiko project to the tox.ini file to make Zuul docs job happy. Change-Id: I0b227f87ade2d9561dd8aee988a565cbef31c7ae
357 lines
9.2 KiB
INI
357 lines
9.2 KiB
INI
[tox]
|
|
|
|
envlist = bindep,linters,py3,lower-constraints,functional
|
|
minversion = 3.8.0
|
|
|
|
|
|
# --- unit test environments -------------------------------------------------
|
|
|
|
[testenv]
|
|
|
|
usedevelop = True
|
|
deps =
|
|
{env:TOX_CONSTRAINTS}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
{env:TOX_EXTRA_REQUIREMENTS}
|
|
passenv =
|
|
JENKINS_*
|
|
OS_*
|
|
TOBIKO_*
|
|
TOX_*
|
|
PYTEST_*
|
|
setenv =
|
|
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_PATH = {toxinidir}/tobiko/tests/unit
|
|
PS1 = [tobiko@{envname}] {env:PS1:}
|
|
PYTEST_TIMEOUT = {env:PYTEST_TIMEOUT:300}
|
|
PYTHONWARNINGS = ignore::Warning,{env:PYTHONWARNINGS:}
|
|
RUN_TESTS_EXTRA_ARGS = {env:OS_TEST_PATH}
|
|
TOBIKO_PREVENT_CREATE = {env:TOBIKO_PREVENT_CREATE:false}
|
|
TOX_COVER = {env:TOX_COVER:false}
|
|
TOX_COVER_DIR = {env:TOX_COVER_DIR:{toxinidir}/cover}
|
|
TOX_NUM_PROCESSES = {env:TOX_NUM_PROCESSES:auto}
|
|
TOX_REPORT_NAME = {env:TOX_REPORT_NAME:tobiko_results_{envname}}
|
|
TOX_REPORT_DIR = {env:TOX_REPORT_DIR:{envlogdir}}
|
|
TOX_CONSTRAINTS = {env:TOX_CONSTRAINTS:-c{env:TOX_CONSTRAINTS_FILE}}
|
|
TOX_CONSTRAINTS_FILE = {env:TOX_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
|
|
TOX_EXTRA_REQUIREMENTS = {env:TOX_EXTRA_REQUIREMENTS:-r{toxinidir}/extra-requirements.txt}
|
|
VIRTUAL_ENV = {envdir}
|
|
commands =
|
|
{envpython} {toxinidir}/tools/run_tests.py {posargs:{env:RUN_TESTS_EXTRA_ARGS}}
|
|
|
|
|
|
[testenv:py3]
|
|
|
|
basepython = {env:TOX_PYTHON:python3}
|
|
envdir = {toxworkdir}/py3
|
|
|
|
|
|
[testenv:cover]
|
|
|
|
basepython = {[testenv:py3]basepython}
|
|
envdir = {[testenv:py3]envdir}
|
|
setenv =
|
|
{[testenv]setenv}
|
|
TOX_COVER = true
|
|
TOX_COVER_DIR={env:TOX_COVER_DIR:{toxinidir}/cover}
|
|
|
|
commands =
|
|
{[testenv]commands}
|
|
coverage html -d "{env:TOX_COVER_DIR}"
|
|
coverage xml -o "{env:TOX_COVER_DIR}/coverage.xml"
|
|
whitelist_externals =
|
|
find
|
|
|
|
|
|
# --- static analisys environments -------------------------------------------
|
|
|
|
[testenv:pep8]
|
|
|
|
basepython = python3
|
|
deps =
|
|
{[testenv]deps}
|
|
-r{toxinidir}/linters-requirements.txt
|
|
commands =
|
|
pre-commit run -a flake8
|
|
|
|
|
|
[testenv:mypy]
|
|
|
|
basepython = {[testenv:pep8]basepython}
|
|
deps = {[testenv:pep8]deps}
|
|
envdir = {toxworkdir}/pep8
|
|
commands =
|
|
pre-commit run -a mypy
|
|
|
|
|
|
[testenv:pylint]
|
|
basepython = {[testenv:pep8]basepython}
|
|
deps = {[testenv:pep8]deps}
|
|
envdir = {toxworkdir}/pep8
|
|
commands =
|
|
pre-commit run -a pylint
|
|
|
|
|
|
[testenv:ansible-lint]
|
|
basepython = {[testenv:pep8]basepython}
|
|
deps = {[testenv:pep8]deps}
|
|
envdir = {toxworkdir}/pep8
|
|
commands =
|
|
pre-commit run -a ansible-lint
|
|
|
|
|
|
[testenv:linters]
|
|
|
|
basepython = {[testenv:pep8]basepython}
|
|
whitelist_externals = bash
|
|
deps = {[testenv:pep8]deps}
|
|
envdir = {toxworkdir}/pep8
|
|
commands =
|
|
pre-commit --version
|
|
pre-commit run -a
|
|
pre-commit install --allow-missing-config
|
|
|
|
|
|
[flake8]
|
|
# H106: Don't put vim configuration in source files
|
|
# H203: Use assertIs(Not)None to check for None
|
|
# H204: Use assert(Not)Equal to check for equality
|
|
# H205: Use assert(Greater|Less)(Equal) for comparison
|
|
# H904: Delay string interpolations at logging calls.
|
|
enable-extensions = H106,H203,H204,H205,H904
|
|
|
|
show-source = true
|
|
exclude = ./.*,*lib/python*,build,dist,doc,*egg*,releasenotes,.venv,.tox
|
|
application-import-names = tobiko
|
|
max-complexity = 10
|
|
import-order-style = pep8
|
|
|
|
|
|
# --- integration test environments ------------------------------------------
|
|
|
|
[integration]
|
|
|
|
basepython = {[testenv:py3]basepython}
|
|
envdir = {[testenv:py3]envdir}
|
|
passenv =
|
|
{[testenv]passenv}
|
|
*_proxy
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTEST_TIMEOUT = 1800
|
|
|
|
|
|
[testenv:venv]
|
|
|
|
basepython = {[integration]basepython}
|
|
envdir = {[integration]envdir}
|
|
passenv = {[integration]passenv}
|
|
whitelist_externals = *
|
|
commands = {posargs:bash}
|
|
|
|
|
|
[testenv:functional]
|
|
|
|
basepython = {[integration]basepython}
|
|
envdir = {[integration]envdir}
|
|
passenv = {[integration]passenv}
|
|
setenv =
|
|
{[integration]setenv}
|
|
OS_TEST_PATH = {toxinidir}/tobiko/tests/functional
|
|
|
|
|
|
[testenv:scenario]
|
|
|
|
basepython = {[integration]basepython}
|
|
envdir = {[integration]envdir}
|
|
passenv = {[integration]passenv}
|
|
setenv =
|
|
{[integration]setenv}
|
|
OS_TEST_PATH = {toxinidir}/tobiko/tests/scenario
|
|
|
|
|
|
[testenv:neutron]
|
|
|
|
basepython = {[integration]basepython}
|
|
envdir = {[integration]envdir}
|
|
passenv = {[integration]passenv}
|
|
setenv =
|
|
{[integration]setenv}
|
|
OS_TEST_PATH = {toxinidir}/tobiko/tests/scenario/neutron
|
|
|
|
|
|
[testenv:octavia]
|
|
|
|
basepython = {[integration]basepython}
|
|
envdir = {[integration]envdir}
|
|
passenv = {[integration]passenv}
|
|
setenv =
|
|
{[integration]setenv}
|
|
OS_TEST_PATH = {toxinidir}/tobiko/tests/scenario/octavia
|
|
|
|
[testenv:nova]
|
|
|
|
basepython = {[integration]basepython}
|
|
envdir = {[integration]envdir}
|
|
passenv = {[integration]passenv}
|
|
setenv =
|
|
{[integration]setenv}
|
|
OS_TEST_PATH = {toxinidir}/tobiko/tests/scenario/nova
|
|
|
|
|
|
[testenv:faults]
|
|
|
|
basepython = {[integration]basepython}
|
|
envdir = {[integration]envdir}
|
|
passenv = {[integration]passenv}
|
|
setenv =
|
|
{[integration]setenv}
|
|
OS_TEST_PATH = {toxinidir}/tobiko/tests/faults
|
|
TOX_NUM_PROCESSES = 1
|
|
PYTEST_TIMEOUT = 3600
|
|
|
|
|
|
[testenv:instanceha]
|
|
|
|
basepython = {[integration]basepython}
|
|
envdir = {[integration]envdir}
|
|
passenv = {[integration]passenv}
|
|
setenv =
|
|
{[integration]setenv}
|
|
OS_TEST_PATH = {toxinidir}/tobiko/tests/faults/iha
|
|
TOX_NUM_PROCESSES = 1
|
|
PYTEST_TIMEOUT = 3600
|
|
|
|
|
|
# --- CI workflow test environments -------------------------------------------
|
|
|
|
[testenv:infrared]
|
|
|
|
# On RedHat Linux must use the default unversioned python because of dependency on native SELinux
|
|
# package available only for /usr/bin/python interpreter
|
|
basepython = {env:IR_PYTHON:python3}
|
|
usedevelop = false
|
|
skipdist = true
|
|
skip_install = true
|
|
sitepackages = true
|
|
whitelist_externals =
|
|
rm
|
|
|
|
deps = {env:IR_DEPS}
|
|
|
|
passenv =
|
|
{[testenv]passenv}
|
|
ANSIBLE_*
|
|
IR_*
|
|
TERM
|
|
|
|
setenv =
|
|
{[testenv]setenv}
|
|
ANSIBLE_CONFIG = {env:ANSIBLE_CONFIG:{toxinidir}/ansible.cfg}
|
|
ANSIBLE_INVENTORY = {env:ANSIBLE_INVENTORY:{toxinidir}/ansible_hosts}
|
|
IR_DEPS = {env:IR_DEPS:-r{toxinidir}/infrared_plugin/requirements.txt}
|
|
IR_HOME = {env:IR_HOME:{envdir}/home/infrared}
|
|
IR_TOBIKO_PLUGIN = {env:IR_TOBIKO_PLUGIN:{toxinidir}/infrared_plugin}
|
|
IR_WORKSPACE_FILE = {env:IR_WORKSPACE_FILE:{toxinidir}/workspace.tgz}
|
|
|
|
commands_pre =
|
|
{envpython} {toxinidir}/tools/setup_infrared.py
|
|
|
|
commands =
|
|
ir tobiko --tobiko-src-dir '{toxinidir}' \
|
|
--collect-dir '{env:TOX_REPORT_DIR}' \
|
|
--upper-constraints '{env:TOX_CONSTRAINTS_FILE}' \
|
|
{posargs}
|
|
|
|
|
|
# --- documentation environments ----------------------------------------------
|
|
|
|
[docs]
|
|
|
|
basepython = {[testenv:py3]basepython}
|
|
envdir = {toxworkdir}/docs
|
|
deps =
|
|
{env:TOX_CONSTRAINTS}
|
|
-r{toxinidir}/doc/readthedocs_requirements.txt
|
|
commands =
|
|
{envpython} -m pip install {env:TOX_CONSTRAINTS} {toxinidir}
|
|
|
|
[testenv:linkcheck]
|
|
|
|
allowlist_externals = sh
|
|
basepython = {[docs]basepython}
|
|
envdir = {[docs]envdir}
|
|
deps = {[docs]deps}
|
|
commands =
|
|
{[docs]commands}
|
|
sh -c 'cd {toxinidir}/doc/source && sphinx-build -W -b linkcheck . ../build/linkcheck'
|
|
# 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.
|
|
usedevelop = false
|
|
skipdist = true
|
|
skip_install = true
|
|
|
|
|
|
[testenv:docs]
|
|
|
|
allowlist_externals = sh
|
|
basepython = {[docs]basepython}
|
|
envdir = {[docs]envdir}
|
|
deps = {[docs]deps}
|
|
changedir = doc/source
|
|
commands =
|
|
{[testenv:linkcheck]commands}
|
|
sphinx-build -W -b html . ../build/html
|
|
# 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.
|
|
usedevelop = false
|
|
skipdist = true
|
|
skip_install = true
|
|
|
|
|
|
[testenv:releasenotes]
|
|
|
|
basepython = {[docs]basepython}
|
|
deps = {[docs]deps}
|
|
commands =
|
|
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
# 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.
|
|
usedevelop = false
|
|
skipdist = true
|
|
skip_install = true
|
|
|
|
|
|
# --- CI report environments --------------------------------------------------
|
|
|
|
|
|
[testenv:bindep]
|
|
basepython = {[testenv:py3]basepython}
|
|
# 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.
|
|
usedevelop = false
|
|
skipdist = true
|
|
skip_install = true
|
|
deps = bindep
|
|
commands = bindep {posargs:test}
|
|
|
|
|
|
# --- project requirements ----------------------------------------------------
|
|
|
|
[testenv:lower-constraints]
|
|
|
|
setenv =
|
|
{[testenv]setenv}
|
|
TOX_CONSTRAINTS = -c{toxinidir}/lower-constraints.txt
|