
It is done by disabling the eventlet patching and configuring oslo.service backend to threading. Once oslo.service backend is configured, it can't be reverted to eventlet. This needs to be done before including other modules, which may include oslo.service library. Adds a job that run a subset of tests with eventlet patching disabled. Change-Id: I9f8c2c5bbcf3192313cc3b309e8f2719a3bea18f Signed-off-by: Douglas Viroel <viroel@gmail.com>
161 lines
4.2 KiB
INI
161 lines
4.2 KiB
INI
[tox]
|
|
minversion = 3.18.0
|
|
envlist = py3,pep8
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
usedevelop = True
|
|
allowlist_externals = find
|
|
rm
|
|
install_command = pip install -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages}
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
OS_STDOUT_CAPTURE=1
|
|
OS_STDERR_CAPTURE=1
|
|
OS_TEST_TIMEOUT=30
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
python-libmaas>=0.6.8
|
|
commands =
|
|
rm -f .testrepository/times.dbm
|
|
find . -type f -name "*.py[c|o]" -delete
|
|
stestr run {posargs}
|
|
passenv =
|
|
http_proxy
|
|
HTTP_PROXY
|
|
https_proxy
|
|
HTTPS_PROXY
|
|
no_proxy
|
|
NO_PROXY
|
|
OS_DEBUG
|
|
# NOTE(sean-k-mooney) optimization is enabled by default and when enabled
|
|
# asserts are complied out. Disable optimization to allow asserts in
|
|
# nova to fire in unit and functional tests. This can be useful for
|
|
# debugging issue with fixtures and mocks.
|
|
PYTHONOPTIMIZE
|
|
|
|
[testenv:py3-threading]
|
|
setenv =
|
|
OS_WATCHER_DISABLE_EVENTLET_PATCHING=true
|
|
commands =
|
|
rm -f .testrepository/times.dbm
|
|
find . -type f -name "*.py[c|o]" -delete
|
|
# NOTE(dviroel): Applier still requires changes to support
|
|
# threading mode
|
|
stestr run {posargs} --exclude-regex 'applier'
|
|
|
|
[testenv:pep8]
|
|
description =
|
|
Run style checks.
|
|
skip_install = true
|
|
deps =
|
|
pre-commit
|
|
commands =
|
|
pre-commit run --all-files --show-diff-on-failure
|
|
|
|
|
|
[testenv:venv]
|
|
setenv = PYTHONHASHSEED=0
|
|
deps =
|
|
-r{toxinidir}/doc/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
commands = {posargs}
|
|
|
|
[testenv:cover]
|
|
setenv =
|
|
PYTHON=coverage run --source watcher --parallel-mode
|
|
commands =
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report
|
|
|
|
[testenv:docs]
|
|
setenv = PYTHONHASHSEED=0
|
|
deps =
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
rm -fr doc/build doc/source/api/ .autogenerated
|
|
sphinx-build -W --keep-going -b html doc/source doc/build/html
|
|
|
|
[testenv:api-ref]
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
allowlist_externals = bash
|
|
commands =
|
|
bash -c 'rm -rf api-ref/build'
|
|
sphinx-build -W --keep-going -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
|
|
|
[testenv:debug]
|
|
commands = oslo_debug_helper -t watcher/tests {posargs}
|
|
|
|
[testenv:genconfig]
|
|
sitepackages = False
|
|
commands =
|
|
oslo-config-generator --config-file etc/watcher/oslo-config-generator/watcher.conf
|
|
|
|
[testenv:genpolicy]
|
|
commands =
|
|
oslopolicy-sample-generator --config-file etc/watcher/oslo-policy-generator/watcher-policy-generator.conf
|
|
|
|
[testenv:wheel]
|
|
commands = python setup.py bdist_wheel
|
|
|
|
[testenv:pdf-docs]
|
|
deps = {[testenv:docs]deps}
|
|
allowlist_externals =
|
|
rm
|
|
make
|
|
commands =
|
|
rm -rf doc/build/pdf
|
|
sphinx-build -W --keep-going -b latex doc/source doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:releasenotes]
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
rm -rf releasenotes/build
|
|
sphinx-build -W --keep-going -b html -j auto releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:bandit]
|
|
skip_install = true
|
|
deps = {[testenv:pep8]deps}
|
|
commands =
|
|
pre-commit run --all-files --show-diff-on-failure bandit
|
|
|
|
[flake8]
|
|
filename = *.py,app.wsgi
|
|
show-source=True
|
|
# W504 line break after binary operator
|
|
ignore= H105,E123,E226,N320,H202,W504
|
|
builtins= _
|
|
enable-extensions = H106,H203,H904
|
|
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,*sqlalchemy/alembic/versions/*,demo/,releasenotes
|
|
|
|
[hacking]
|
|
import_exceptions = watcher._i18n
|
|
|
|
[flake8:local-plugins]
|
|
extension =
|
|
N319 = checks:no_translate_debug_logs
|
|
N321 = checks:use_jsonutils
|
|
N322 = checks:check_assert_called_once_with
|
|
N325 = checks:check_python3_xrange
|
|
N326 = checks:check_no_basestring
|
|
N327 = checks:check_python3_no_iteritems
|
|
N328 = checks:check_asserttrue
|
|
N329 = checks:check_assertfalse
|
|
N330 = checks:check_assertempty
|
|
N331 = checks:check_assertisinstance
|
|
N332 = checks:check_assertequal_for_httpcode
|
|
N333 = checks:check_log_warn_deprecated
|
|
N340 = checks:check_oslo_i18n_wrapper
|
|
N341 = checks:check_builtins_gettext
|
|
N342 = checks:no_redundant_import_alias
|
|
N366 = checks:import_stock_mock
|
|
paths = ./watcher/hacking
|