
The lower-constraints test was removed because of an issue where pip could not correctly determine the required packages versions to install, ending in an almost infinite loop that would end up in timeout, failure, and general mayhem. Recently the issue has been fixed and, if properly configured, the lower-constraints test can provide good indication of which minimum versions are required to support the current code. This patch adds the test back to the current development branch, and it runs only on master. The lower-constraints file will stay in the future stable branches. Change-Id: Ic9cef3e56266c6e9de0936b5f113e8b38d705a9b
146 lines
4.5 KiB
INI
146 lines
4.5 KiB
INI
[tox]
|
|
minversion = 3.18.0
|
|
skipsdist = True
|
|
envlist = py3,functional,pep8
|
|
ignore_basepython_conflict=true
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
basepython = python3
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
PYTHONDONTWRITEBYTECODE = 1
|
|
OS_TEST_PATH=./ironic_python_agent/tests/unit
|
|
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
|
|
LANGUAGE=en_US
|
|
LC_ALL=en_US.utf-8
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands = stestr run {posargs}
|
|
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
|
|
|
|
[testenv:functional]
|
|
# Define virtualenv directory, port to use for functional testing, and number
|
|
# of seconds to wait for the agent to come alive during functional testing.
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
PYTHONDONTWRITEBYTECODE = 1
|
|
OS_TEST_PATH=./ironic_python_agent/tests/functional
|
|
TEST_PORT=9999
|
|
IPA_WAIT_TRIES=100
|
|
commands = stestr run {posargs}
|
|
|
|
[testenv:pep8]
|
|
usedevelop = False
|
|
deps=
|
|
hacking>=3.1.0,<4.0.0 # Apache-2.0
|
|
bashate>=0.5.1 # Apache-2.0
|
|
flake8-import-order>=0.17.1 # LGPLv3
|
|
pycodestyle>=2.0.0,<2.7.0 # MIT
|
|
doc8>=0.8.1 # Apache-2.0
|
|
allowlist_externals = bash
|
|
commands =
|
|
flake8 {posargs:ironic_python_agent examples}
|
|
# Run bashate during pep8 runs to ensure violations are caught by
|
|
# the check and gate queues.
|
|
{toxinidir}/tools/run_bashate.sh {toxinidir}
|
|
doc8 doc/source README.rst examples/README.rst
|
|
|
|
[testenv:cover]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHON=coverage run --source ironic_python_agent --omit='*tests*' --parallel-mode
|
|
commands =
|
|
coverage erase
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage report --omit='*tests*'
|
|
coverage html -d ./cover --omit='*tests*'
|
|
|
|
[testenv:venv]
|
|
setenv = PYTHONHASHSEED=0
|
|
commands = {posargs:}
|
|
|
|
[testenv:debug]
|
|
envdir = {toxworkdir}/venv
|
|
commands = oslo_debug_helper -t ironic_python_agent/tests/unit {posargs}
|
|
|
|
[testenv:docs]
|
|
setenv = PYTHONHASHSEED=0
|
|
sitepackages = False
|
|
# NOTE(dtantsur): documentation building process requires importing IPA
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
sphinx-build -b html doc/source doc/build/html
|
|
|
|
[testenv:pdf-docs]
|
|
allowlist_externals = make
|
|
setenv = PYTHONHASHSEED=0
|
|
sitepackages = False
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
sphinx-build -b latex doc/source doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:releasenotes]
|
|
usedevelop = False
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[flake8]
|
|
# [E129] visually indented line with same indent as next logical line.
|
|
# [W503] Line break before binary operator.
|
|
ignore = E129,W503
|
|
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,imagebuild/tinyipa/tinyipafinal,imagebuild/tinyipa/tinyipabuild
|
|
import-order-style = pep8
|
|
application-import-names = ironic_python_agent
|
|
# [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.
|
|
# [H210] Require 'autospec', 'spec', or 'spec_set' in mock.patch/mock.patch.object calls
|
|
# [H904] Delay string interpolations at logging calls.
|
|
enable-extensions=H106,H203,H204,H205,H210,H904
|
|
|
|
[hacking]
|
|
import_exceptions = ironic.openstack.common.gettextutils._,testtools.matchers
|
|
|
|
[testenv:checkconfig]
|
|
sitepackages = False
|
|
envdir = {toxworkdir}/venv
|
|
commands =
|
|
{toxinidir}/tools/config/check_uptodate.sh
|
|
|
|
[testenv:genconfig]
|
|
sitepackages = False
|
|
envdir = {toxworkdir}/venv
|
|
allowlist_externals = mkdir
|
|
commands =
|
|
mkdir -p etc/ironic_python_agent
|
|
oslo-config-generator --config-file=tools/config/ipa-config-generator.conf
|
|
|
|
[testenv:bandit]
|
|
usedevelop = False
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands = bandit -r ironic_python_agent -x tests -n5 -ll -c tools/bandit.yml
|
|
|
|
[testenv:examples]
|
|
commands =
|
|
pip install -e {toxinidir}/examples/business-logic
|
|
pip install -e {toxinidir}/examples/vendor-device
|
|
python -c 'import example_business_logic; import example_device'
|
|
|
|
[testenv:lower-constraints]
|
|
deps =
|
|
-c{toxinidir}/lower-constraints.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|