fc6c7285cd
Flake8 provides the ability to measure code complexity. There are a lot of modules in Cinder that are considered "too complex", the worst being "cinder/tests/test_huawei_hvs.py:110:1:" with a complexity ranking of 59. There's some outlyers at the higher end here, but the majority of the code checks in at under 30, so let's make that our threshold and ignore the two offenders that are above that for now. Granted this may or may not be valuable, but it doesn't hurt to try it and if we all hate it or find there's no value but it makes life difficult we can always turn it back off. See flake8.readthedocs for more info on flake8 and McCabe complexity checking. Change-Id: Icc1b5f2ccf0b630c1e655f5e6abf4e25ee30afc4
83 lines
2.3 KiB
INI
83 lines
2.3 KiB
INI
[tox]
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
envlist = py26,py27,pep8
|
|
|
|
[testenv]
|
|
# Note the hash seed is set to 0 until cinder can be tested with a
|
|
# random hash seed successfully.
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONHASHSEED=0
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
python setup.py testr --slowest --testr-args='--concurrency 1 {posargs}'
|
|
{toxinidir}/tools/config/check_uptodate.sh
|
|
whitelist_externals = bash
|
|
|
|
[tox:jenkins]
|
|
downloadcache = ~/cache/pip
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
flake8 {posargs} . cinder/common
|
|
flake8 --filename=cinder* bin
|
|
# Check that .po and .pot files are valid:
|
|
bash -c "find cinder -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
|
|
|
|
[testenv:pylint]
|
|
deps = -r{toxinidir}/requirements.txt
|
|
pylint==0.26.0
|
|
commands = bash tools/lintstack.sh
|
|
|
|
[testenv:cover]
|
|
# Also do not run test_coverage_ext tests while gathering coverage as those
|
|
# tests conflict with coverage.
|
|
commands =
|
|
python setup.py testr --coverage \
|
|
--testr-args='^(?!.*test.*coverage).*$'
|
|
|
|
[testenv:genconfig]
|
|
sitepackages = False
|
|
envdir = {toxworkdir}/venv
|
|
commands = {toxinidir}/tools/config/generate_sample.sh -b . -p cinder -o etc/cinder
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[flake8]
|
|
# Following checks are ignored on purpose.
|
|
#
|
|
# E251 unexpected spaces around keyword / parameter equals
|
|
# reason: no improvement in readability
|
|
#
|
|
# E265 block comment should start with '# '
|
|
# reason: no improvement in readability
|
|
#
|
|
# H402 one line docstring needs punctuation
|
|
# reason: removed in hacking (https://review.openstack.org/#/c/101497/)
|
|
#
|
|
# H803 git commit title should not end with period
|
|
# reason: removed in hacking (https://review.openstack.org/#/c/101498/)
|
|
#
|
|
# H904 wrap long lines in parentheses instead of a backslash
|
|
# reason: removed in hacking (https://review.openstack.org/#/c/101701/)
|
|
#
|
|
# Due to the upgrade to hacking 0.9.2 the following checking are
|
|
# ignored on purpose for the moment and should be re-enabled.
|
|
#
|
|
# F841,H302,H305,H307,H405
|
|
|
|
|
|
ignore = E251,E265,H302,H402,H405,H803,H904
|
|
builtins = _
|
|
exclude = .git,.venv,.tox,dist,tools,doc,common,*egg,build
|
|
max-complexity=30
|
|
|
|
[hacking]
|
|
local-check-factory = cinder.hacking.checks.factory
|
|
import_exceptions = cinder.i18n
|