horizon/tox.ini
lin-hua-cheng 5304e14559 Add max-complexity to pep8 for Horizon
Picked this up from Keystone. It sounds like a good defense to have from
further making our code more complex.

The current highest complexity is 32, set the maximum complexity
for flake8 to 33. This should help to keep code simple and
maintainable. It should be possible to reduce the maximum
complexity to something closer to 20 with relatively small efforts.

openstack_dashboard.dashboards.identity.projects.workflows:
    'UpdateProject.handle' is complexity of 32
openstack_dashboard.dashboards.project.access_and_security.security_groups.forms:
    'AddRule.clean' is complexity of 20
openstack_dashboard.dashboards.project.instances.workflows.create_instance:
    'SetInstanceDetailsAction.clean' is complexity of 26
horizon.exceptions:
    'handle' is complexity of 24

Change-Id: I58cc20972aac221012f248e8135151b1243dae35
2014-10-18 18:57:43 -07:00

94 lines
3.3 KiB
INI

[tox]
envlist = py26,py27,py27dj14,py27dj15,pep8,py33,py34
minversion = 1.6
skipsdist = True
[testenv]
usedevelop = True
install_command = pip install --allow-external netaddr --allow-insecure netaddr -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
NOSE_WITH_OPENSTACK=1
NOSE_OPENSTACK_COLOR=1
NOSE_OPENSTACK_RED=0.05
NOSE_OPENSTACK_YELLOW=0.025
NOSE_OPENSTACK_SHOW_ELAPSED=1
# Note the hash seed is set to 0 until horizon can be tested with a
# random hash seed successfully.
PYTHONHASHSEED=0
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = /bin/bash run_tests.sh -N --no-pep8 {posargs}
[testenv:pep8]
commands =
/bin/bash run_tests.sh -N --pep8
/bin/bash run_tests.sh -N --makemessages --check-only
[testenv:venv]
commands = {posargs}
[testenv:cover]
commands = /bin/bash run_tests.sh -N --no-pep8 --coverage {posargs}
[testenv:py27dj14]
basepython = python2.7
commands = pip install django>=1.4,<1.5
/bin/bash run_tests.sh -N --no-pep8 {posargs}
[testenv:py27dj15]
basepython = python2.7
commands = pip install django>=1.5,<1.6
/bin/bash run_tests.sh -N --no-pep8 {posargs}
[testenv:py27integration]
basepython = python2.7
commands = /bin/bash run_tests.sh -N --integration --selenium-headless {posargs}
[testenv:py26integration]
basepython = python2.6
commands = /bin/bash run_tests.sh -N --integration --selenium-headless {posargs}
[testenv:jshint]
commands = nodeenv -p
npm install jshint -g
/bin/bash run_tests.sh -N --jshint
[testenv:docs]
setenv = DJANGO_SETTINGS_MODULE=openstack_dashboard.test.settings
commands = python setup.py build_sphinx
[tox:jenkins]
downloadcache = ~/cache/pip
[flake8]
exclude = .venv,.git,.tox,dist,*openstack/common*,*lib/python*,*egg,build,panel_template,dash_template,local_settings.py,*/local/*,*/test/test_plugins/*,.ropeproject
# H307 like imports should be grouped together
# H405 multi line docstring summary not separated with an empty line
# H803 git commit title should not end with period (disabled on purpose, see bug #1236621)
# H904 Wrap long lines in parentheses instead of a backslash
ignore = H307,H405,H803,H904
max-complexity=33
[hacking]
import_exceptions = collections.defaultdict,
django.conf.settings,
django.conf.urls.include,
django.conf.urls.patterns,
django.conf.urls.url,
django.core.urlresolvers.reverse,
django.core.urlresolvers.reverse_lazy,
django.template.loader.render_to_string,
django.test.utils.override_settings,
django.utils.datastructures.SortedDict,
django.utils.encoding.force_text,
django.utils.html.conditional_escape,
django.utils.html.escape,
django.utils.http.urlencode,
django.utils.safestring.mark_safe,
django.utils.translation.npgettext_lazy,
django.utils.translation.pgettext_lazy,
django.utils.translation.ugettext_lazy,
django.utils.translation.ungettext_lazy,
operator.attrgetter,
StringIO.StringIO