3e0745827f
The tests to check that DB migrations and models are in sync depends on the mysql and postgresql backends being available with a specific DB user and database created. This violates the principles for unit tests and therefore these tests should be moved to functional tests. For these tests to work in the functional job in the gate, the backends must be installed and the DB user and database created. We do this via the functional gate hook. Closes-bug: #1372981 Change-Id: I7b89feef3f19ca07dbfb05acfaa30529a5bf683d
97 lines
3.1 KiB
INI
97 lines
3.1 KiB
INI
[tox]
|
||
envlist = py27,py33,py34,pep8
|
||
minversion = 1.6
|
||
skipsdist = True
|
||
|
||
[testenv]
|
||
# Note the hash seed is set to 0 until neutron can be tested with a
|
||
# random hash seed successfully.
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
PYTHONHASHSEED=0
|
||
usedevelop = True
|
||
install_command = pip install -U {opts} {packages}
|
||
deps = -r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/test-requirements.txt
|
||
whitelist_externals = sh
|
||
commands =
|
||
sh tools/pretty_tox.sh '{posargs}'
|
||
# 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:hashtest]
|
||
# This is the same as default environment, but with a random PYTHONHASHSEED.
|
||
# You can also specify a specific hashseed (for test repeatability) as follows:
|
||
# tox --hashseed 1235130571 -e hashtest
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
|
||
[testenv:functional]
|
||
setenv = OS_TEST_PATH=./neutron/tests/functional
|
||
OS_TEST_TIMEOUT=90
|
||
deps =
|
||
{[testenv]deps}
|
||
-r{toxinidir}/neutron/tests/functional/requirements.txt
|
||
|
||
[testenv:dsvm-functional]
|
||
setenv = OS_TEST_PATH=./neutron/tests/functional
|
||
OS_SUDO_TESTING=1
|
||
OS_ROOTWRAP_CMD=sudo /usr/local/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
|
||
OS_FAIL_ON_MISSING_DEPS=1
|
||
OS_TEST_TIMEOUT=90
|
||
sitepackages=True
|
||
deps =
|
||
{[testenv:functional]deps}
|
||
|
||
[tox:jenkins]
|
||
sitepackages = True
|
||
downloadcache = ~/cache/pip
|
||
|
||
[testenv:pep8]
|
||
commands =
|
||
sh ./tools/check_bash.sh
|
||
flake8
|
||
neutron-db-manage check_migration
|
||
sh -c "find neutron -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
|
||
whitelist_externals = sh
|
||
|
||
[testenv:i18n]
|
||
commands = python ./tools/check_i18n.py ./neutron ./tools/i18n_cfg.py
|
||
|
||
[testenv:cover]
|
||
commands =
|
||
python -m neutron.openstack.common.lockutils python setup.py testr --coverage --testr-args='{posargs}'
|
||
|
||
[testenv:venv]
|
||
commands = {posargs}
|
||
|
||
[testenv:docs]
|
||
commands = python setup.py build_sphinx
|
||
|
||
[flake8]
|
||
# E125 continuation line does not distinguish itself from next logical line
|
||
# E126 continuation line over-indented for hanging indent
|
||
# E128 continuation line under-indented for visual indent
|
||
# E129 visually indented line with same indent as next logical line
|
||
# E265 block comment should start with ‘# ‘
|
||
# H305 imports not grouped correctly
|
||
# H307 like imports should be grouped together
|
||
# H402 one line docstring needs punctuation
|
||
# H404 multi line docstring should start with a summary
|
||
# H405 multi line docstring summary not separated with an empty line
|
||
# H904 Wrap long lines in parentheses instead of a backslash
|
||
ignore = E125,E126,E128,E129,E265,H305,H307,H402,H404,H405,H904
|
||
show-source = true
|
||
builtins = _
|
||
# TODO(dougw) neutron/tests/unit/vmware exclusion is a temporary services split hack
|
||
exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools,.ropeproject,rally-scenarios,neutron/tests/unit/vmware*
|
||
|
||
[testenv:pylint]
|
||
deps =
|
||
{[testenv]deps}
|
||
pylint
|
||
commands =
|
||
pylint --rcfile=.pylintrc --output-format=colorized {posargs:neutron}
|
||
|
||
[hacking]
|
||
import_exceptions = neutron.i18n
|
||
local-check-factory = neutron.hacking.checks.factory
|