9cb7eb4a4b
Replace the whitelist of flake8 checks (select) with a blacklist
(ignore). It makes possible to disable a single check, which was not
possible before. This new approach permits to enable new tests more
easily and see which checks are currently disabled.
Only new checks are disabled, this change doesn't run less checks than
before. Currently, many checks are disabled, but following changes will
fix these new warnings.
When the "select" option of flake8 is used in tox.ini, the "ignore"
option is ignored. It is not possible to use "select" and "ignore"
options at the same time. See the code in pep8 (flake8 is based on
pep8):
d48eef0710/pep8.py (L1808)
The purpose of flake8 is to enhance the coding style, but also to help
to detect common bugs. Blacklisting checks permits to detect new bugs
when upgrading the tools. For example, new checks were recently added to
help porting code to Python 3.
This change permits to use pbr 1.0 and newer which is required to
support Python 3. Previously, hacking 0.8.1 was used, but hacking 0.8 is
incompatible with pbr 1.0 and newer (hacking 0.8 requires pbr<1.0).
pbr 1.0 is required to use environment markers on requirements to
install dnspython on Python 2 and dnspython3 on Python 3.
Change-Id: I41d63b9467083d7606ad18aaa398ca7738b27fae
74 lines
2.3 KiB
INI
74 lines
2.3 KiB
INI
[tox]
|
|
envlist = py27,pep8
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command = pip install --allow-external netifaces --allow-insecure netifaces -U {opts} {packages}
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
NOSE_WITH_COVERAGE=1
|
|
NOSE_COVER_BRANCHES=1
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands = nosetests {posargs:test/unit}
|
|
passenv = SWIFT_* *_proxy
|
|
|
|
[testenv:cover]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
NOSE_WITH_COVERAGE=1
|
|
NOSE_COVER_BRANCHES=1
|
|
NOSE_COVER_HTML=1
|
|
NOSE_COVER_HTML_DIR={toxinidir}/cover
|
|
|
|
[tox:jenkins]
|
|
downloadcache = ~/cache/pip
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
flake8 swift test doc setup.py
|
|
flake8 --filename=swift* bin
|
|
|
|
[testenv:py3pep8]
|
|
basepython = python3
|
|
install_command = echo {packages}
|
|
commands =
|
|
# Gross hack. There's no other way to get it to /not/ install swift itself
|
|
# (which triggers installing eventlet) but also get flake8 installed.
|
|
pip install flake8
|
|
flake8 swift test doc setup.py
|
|
flake8 --filename=swift* bin
|
|
|
|
[testenv:func]
|
|
commands = nosetests {posargs:test/functional}
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
commands = python setup.py build_sphinx
|
|
|
|
[flake8]
|
|
# it's not a bug that we aren't using all of hacking, ignore:
|
|
# F402: import '_' from line 51 shadowed by loop variable
|
|
# F812: list comprehension redefines ...
|
|
# H101: Use TODO(NAME)
|
|
# H202: assertRaises Exception too broad
|
|
# H232: Python 3.x incompatible octal 000001234 should be written as 0o1234
|
|
# H233: Python 3.x incompatible use of print operator
|
|
# H234: assertEquals is deprecated, use assertEqual
|
|
# H235: assert_ is deprecated, use assertTrue
|
|
# H301: one import per line
|
|
# H306: imports not in alphabetical order (time, os)
|
|
# H401: docstring should not start with a space
|
|
# H403: multi line docstrings should end on a new line
|
|
# H404: multi line docstring should start without a leading new line
|
|
# H405: multi line docstring summary not separated with an empty line
|
|
# H501: Do not use self.__dict__ for string formatting
|
|
# H702: Formatting operation should be outside of localization method call
|
|
# H703: Multiple positional placeholders
|
|
ignore = F402,F812,H101,H202,H232,H233,H234,H235,H301,H306,H401,H403,H404,H405,H501,H702,H703
|
|
exclude = .venv,.tox,dist,doc,*egg
|
|
show-source = True
|