ef8335185a
b2acc9fa86
on stable/liberty introduced a
sphinx warning which was not treated as an error in stable/liberty nova
releasenotes tox runs so it slipped in, but it is treated as an error
in master branch nova releasenotes tox runs, and since reno scans the
branches, master is broken because of the error in stable/liberty.
Plus, reno scans the git history, so right now it's not obvious how to
travel back in time and fix the stable/liberty change.
This change reduces the level of control we have by not treating reno warnings
as errors. This is not fun but it's the only way we can still land
release notes until an appropriate fix is merged (in reno or nova).
Again, this is a temporary patch and we consider reverting it once bug 1534613
is fixed.
Change-Id: Iedb69c66632383e056840e3294a90cda651a8778
Related-Bug: #1534613
169 lines
5.9 KiB
INI
169 lines
5.9 KiB
INI
[tox]
|
|
minversion = 2.0
|
|
envlist = py34,py27,functional,pep8,pip-missing-reqs
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
# tox is silly... these need to be separated by a newline....
|
|
whitelist_externals = bash
|
|
find
|
|
rm
|
|
install_command =
|
|
constraints: {[testenv:common-constraints]install_command}
|
|
pip install -U --force-reinstall {opts} {packages}
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
OS_TEST_PATH=./nova/tests/unit
|
|
LANGUAGE=en_US
|
|
LC_ALL=en_US.utf-8
|
|
# TODO(mriedem): Move oslo.versionedobjects[fixtures] to test-requirements.txt
|
|
# after I937823ffeb95725f0b55e298ebee1857d6482883 lands.
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
oslo.versionedobjects[fixtures]
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
bash tools/pretty_tox.sh '{posargs}'
|
|
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
|
|
# there is also secret magic in pretty_tox.sh which lets you run in a fail only
|
|
# mode. To do this define the TRACE_FAILONLY environmental variable.
|
|
|
|
[testenv:common-constraints]
|
|
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
bash tools/flake8wrap.sh {posargs}
|
|
|
|
[testenv:pep8-constraints]
|
|
install_command = {[testenv:common-constraints]install_command}
|
|
commands =
|
|
bash tools/flake8wrap.sh {posargs}
|
|
|
|
[testenv:py34]
|
|
# NOTE(mriedem): If py34 fails with "db type could not be determined", delete
|
|
# .testrepository and try again. Running py34 before py27 is OK, but not the
|
|
# other way around. See: https://bugs.launchpad.net/testrepository/+bug/1212909
|
|
setenv = {[testenv]setenv}
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
ostestr --blacklist_file tests-py3.txt
|
|
|
|
[testenv:py34-constraints]
|
|
install_command = {[testenv:common-constraints]install_command}
|
|
setenv = {[testenv]setenv}
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands = {[testenv:py34]commands}
|
|
|
|
[testenv:functional]
|
|
usedevelop = True
|
|
install_command = pip install -U --force-reinstall {opts} {packages}
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
OS_TEST_PATH=./nova/tests/functional
|
|
LANGUAGE=en_US
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
bash tools/pretty_tox.sh '{posargs}'
|
|
|
|
[testenv:api-samples]
|
|
usedevelop = True
|
|
install_command = pip install -U --force-reinstall {opts} {packages}
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
GENERATE_SAMPLES=True
|
|
PYTHONHASHSEED=0
|
|
OS_TEST_PATH=./nova/tests/functional/api_sample_tests
|
|
LANGUAGE=en_US
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
bash tools/pretty_tox.sh '{posargs}'
|
|
|
|
[testenv:functional-constraints]
|
|
usedevelop = {[testenv:functional]usedevelop}
|
|
install_command = {[testenv:common-constraints]install_command}
|
|
setenv = {[testenv:functional]setenv}
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
bash tools/pretty_tox.sh '{posargs}'
|
|
|
|
[testenv:genconfig]
|
|
commands = oslo-config-generator --config-file=etc/nova/nova-config-generator.conf
|
|
|
|
[testenv:cover]
|
|
# Also do not run test_coverage_ext tests while gathering coverage as those
|
|
# tests conflict with coverage.
|
|
commands =
|
|
coverage erase
|
|
python setup.py testr --coverage \
|
|
--testr-args='{posargs}'
|
|
coverage combine
|
|
coverage html --include='nova/*' --omit='nova/openstack/common/*' -d covhtml -i
|
|
|
|
[testenv:cover-constraints]
|
|
install_command = {[testenv:common-constraints]install_command}
|
|
# Also do not run test_coverage_ext tests while gathering coverage as those
|
|
# tests conflict with coverage.
|
|
commands =
|
|
coverage erase
|
|
python setup.py testr --coverage \
|
|
--testr-args='{posargs}'
|
|
coverage combine
|
|
coverage html --include='nova/*' --omit='nova/openstack/common/*' -d covhtml -i
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:venv-constraints]
|
|
install_command = {[testenv:common-constraints]install_command}
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
commands =
|
|
rm -rf doc/source/api doc/build api-guide/build
|
|
python setup.py build_sphinx
|
|
bash -c '! find doc/ -type f -name *.json | xargs -t -n1 python -m json.tool 2>&1 > /dev/null | grep -B1 -v ^python'
|
|
oslo-config-generator --config-file=etc/nova/nova-config-generator.conf
|
|
sphinx-build -b html api-guide/source api-guide/build/html
|
|
|
|
[testenv:api-guide]
|
|
# This environment is called from CI scripts to test and publish
|
|
# the API Guide to developer.openstack.org.
|
|
commands =
|
|
sphinx-build -b html -d api-guide/build/doctrees api-guide/source api-guide/build/html
|
|
|
|
[testenv:docs-constraints]
|
|
install_command = {[testenv:common-constraints]install_command}
|
|
commands = {[testenv:docs]commands}
|
|
|
|
[testenv:bandit]
|
|
commands = bandit -c bandit.yaml -r nova -n 5 -ll
|
|
|
|
[testenv:releasenotes]
|
|
# FIXME(sbauza): warnings are temporarily treated as okay because of bug 1534613
|
|
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[flake8]
|
|
# E125 is deliberately excluded. See https://github.com/jcrocholl/pep8/issues/126
|
|
# The rest of the ignores are TODOs
|
|
# New from hacking 0.9: E129, E131, H407, H405
|
|
# E251 Skipped due to https://github.com/jcrocholl/pep8/issues/301
|
|
|
|
ignore = E121,E122,E123,E124,E125,E126,E127,E128,E129,E131,E251,H405
|
|
exclude = .venv,.git,.tox,dist,doc,*openstack/common/*,*lib/python*,*egg,build,tools/xenserver*,releasenotes
|
|
# To get a list of functions that are more complex than 25, set max-complexity
|
|
# to 25 and run 'tox -epep8'.
|
|
# 34 is currently the most complex thing we have
|
|
# TODO(jogo): get this number down to 25 or so
|
|
max-complexity=35
|
|
|
|
[hacking]
|
|
local-check-factory = nova.hacking.checks.factory
|
|
import_exceptions = nova.i18n
|
|
|
|
[testenv:pip-missing-reqs]
|
|
# do not install test-requirements as that will pollute the virtualenv for
|
|
# determining missing packages
|
|
# this also means that pip-missing-reqs must be installed separately, outside
|
|
# of the requirements.txt files
|
|
deps = pip_missing_reqs
|
|
commands=pip-missing-reqs -d --ignore-file=nova/tests/* --ignore-file=nova/test.py nova
|