c7e5e12500
Running functional tests in the in-process mode uses the default value for proxy-server object_post_as_copy, which is True. This patch adds support for an environment variable to change this value to False so that the fast-post mode is tested when running in-process functional tests. The patch also adds a new tox environment func-in-process-fast-post which forces in-process functional testing with object_post_as_copy=False. The motivation for this change, apart from enabling configurable local testing, is to put support in place for an upstream CI job that will actually functionally test the fast-post mode, which is otherwise only covered by unit tests. There are currently two gate jobs that run the functional tests: - gate-swift-dsvm-functional runs the tests *twice* against a devstack swift service, once using tempauth and once using keystoneauth. The devstack swift service uses the default object_post_as_copy=True. - gate-swift-tox-func runs the func tests in in-process mode which also uses tempauth and object_post_as_copy=True. This duplicates one of the config scenarios above. With this change either the gate-swift-tox-func job or a new job could run the functional tests using object_post_as_copy=False. Change-Id: Ia37f6df1dc38e44ef7404fbf0a52f6fc22fae0c2
79 lines
2.3 KiB
INI
79 lines
2.3 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 = 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
|
|
|
|
[testenv:py34]
|
|
commands =
|
|
nosetests test/unit/common/test_exceptions.py
|
|
|
|
[testenv:pep8]
|
|
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:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
commands = python setup.py build_sphinx
|
|
|
|
[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:
|
|
# F812: list comprehension redefines ...
|
|
# 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
|
|
# H703: Multiple positional placeholders
|
|
ignore = F812,H101,H202,H233,H301,H306,H401,H403,H404,H405,H501,H703
|
|
exclude = .venv,.tox,dist,doc,*egg
|
|
show-source = True
|