F812 list comprehension redefines <variable> from line ... While the current violations were benign, this sort of code can easily lead to subtle bugs. Seems worth checking, especially given how cheap it is to bring existing code in line with it. Change-Id: Ibdcf9f93b85a1f1411198001df6bdbfa8f92d114
123 lines
3.9 KiB
INI
123 lines
3.9 KiB
INI
[tox]
|
|
envlist = py34,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 = find . -type f -name "*.py[c|o]" -delete
|
|
find . -type d -name "__pycache__" -delete
|
|
nosetests {posargs:test/unit}
|
|
whitelist_externals = find
|
|
rm
|
|
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
|
|
|
|
[testenv:py34]
|
|
commands =
|
|
nosetests \
|
|
test/unit/common/test_exceptions.py \
|
|
test/unit/common/test_splice.py
|
|
|
|
[testenv:py35]
|
|
commands = {[testenv:py34]commands}
|
|
|
|
[testenv:pep8]
|
|
basepython = python2.7
|
|
commands =
|
|
flake8 {posargs: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 = ./.functests {posargs}
|
|
|
|
[testenv:func-in-process-fast-post]
|
|
commands = ./.functests {posargs}
|
|
setenv = SWIFT_TEST_IN_PROCESS=1
|
|
SWIFT_TEST_IN_PROCESS_OBJECT_POST_AS_COPY=False
|
|
|
|
[testenv:func-in-process-encryption]
|
|
commands = ./.functests {posargs}
|
|
setenv = SWIFT_TEST_IN_PROCESS=1
|
|
SWIFT_TEST_IN_PROCESS_CONF_LOADER=encryption
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
commands = python setup.py build_sphinx
|
|
|
|
[testenv:api-ref]
|
|
# This environment is called from CI scripts to test and publish
|
|
# the API Ref to developer.openstack.org.
|
|
# NOTE(sdague): this target does not use constraints because
|
|
# upstream infra does not yet support it. Once that's fixed, we can
|
|
# drop the install_command.
|
|
#
|
|
# we do not use -W here because we are doing some slightly tricky
|
|
# things to build a single page document, and as such, we are ok
|
|
# ignoring the duplicate stanzas warning.
|
|
install_command = pip install -U --force-reinstall {opts} {packages}
|
|
commands =
|
|
rm -rf api-ref/build
|
|
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
|
|
|
[testenv:install-guide]
|
|
# NOTE(jaegerandi): this target does not use constraints because
|
|
# upstream infra does not yet support it. Once that's fixed, we can
|
|
# drop the install_command.
|
|
install_command = pip install -U --force-reinstall {opts} {packages}
|
|
commands = sphinx-build -a -E -W -d install-guide/build/doctrees -b html install-guide/source install-guide/build/html
|
|
|
|
[testenv:bandit]
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands = bandit -c bandit.yaml -r swift bin -n 5 -p gate
|
|
|
|
[flake8]
|
|
# it's not a bug that we aren't using all of hacking, ignore:
|
|
# H101: Use TODO(NAME)
|
|
# H202: assertRaises Exception too broad
|
|
# H233: Python 3.x incompatible use of print operator
|
|
# 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
|
|
ignore = H101,H202,H301,H306,H401,H403,H404,H405,H501
|
|
exclude = .venv,.tox,dist,*egg
|
|
filename = *.py,bin/*
|
|
show-source = True
|
|
|
|
[testenv:bindep]
|
|
# Do not install any requirements. We want this to be fast and work even if
|
|
# system dependencies are missing, since it's used to tell you what system
|
|
# dependencies are missing! This also means that bindep must be installed
|
|
# separately, outside of the requirements files.
|
|
deps = bindep
|
|
commands = bindep test
|