5db7c77def
The newer versions of tox by default enable a random PYTHONHASHSEED. However, this breaks many Neutron unit tests, so PYTHONHASHSEED=0 is currently hard- coded for Neutron's unit test environments. We want to clean up the unit test cases that break with a random hashseed (there are many). To be able to find the broken tests and then verify them, we need to have an easy way of enabling random hashseed testing. Partial-bug: #1348818 Change-Id: I51f05cdfa9f8728baabaf315b71e5defb26426b1
86 lines
3.0 KiB
INI
86 lines
3.0 KiB
INI
[tox]
|
||
envlist = py26,py27,py33,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
|
||
commands =
|
||
python -m neutron.openstack.common.lockutils python setup.py testr --slowest --testr-args='{posargs}'
|
||
|
||
[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
|
||
commands =
|
||
python setup.py testr --slowest --testr-args='{posargs}'
|
||
|
||
[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
|
||
commands =
|
||
python setup.py testr --slowest --testr-args='{posargs}'
|
||
|
||
[tox:jenkins]
|
||
sitepackages = True
|
||
downloadcache = ~/cache/pip
|
||
|
||
[testenv:pep8]
|
||
commands =
|
||
flake8
|
||
neutron-db-manage check_migration
|
||
bash -c "find neutron -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
|
||
whitelist_externals = bash
|
||
|
||
[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}
|
||
|
||
[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
|
||
# E251 unexpected spaces around keyword / parameter equals
|
||
# E265 block comment should start with ‘# ‘
|
||
# E713 test for membership should be ‘not in’
|
||
# F402 import module shadowed by loop variable
|
||
# F811 redefinition of unused variable
|
||
# F812 list comprehension redefines name from line
|
||
# H104 file contains nothing but comments
|
||
# H237 module is removed in Python 3
|
||
# H305 imports not grouped correctly
|
||
# H307 like imports should be grouped together
|
||
# H401 docstring should not start with a space
|
||
# H402 one line docstring needs punctuation
|
||
# H405 multi line docstring summary not separated with an empty line
|
||
# H904 Wrap long lines in parentheses instead of a backslash
|
||
# TODO(marun) H404 multi line docstring should start with a summary
|
||
ignore = E125,E126,E128,E129,E251,E265,E713,F402,F811,F812,H104,H237,H305,H307,H401,H402,H404,H405,H904
|
||
show-source = true
|
||
builtins = _
|
||
exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools,.ropeproject,rally-scenarios
|
||
|
||
[hacking]
|
||
import_exceptions = neutron.openstack.common.gettextutils
|
||
local-check-factory = neutron.hacking.checks.factory
|