c42f15f94d
This lets you run something like $ tox -e py35 -- -s test.unit.common.test_swob and just run the swob tests. This is handy if you've got one or two test failures to debug or if you're trying to get another test file passing under Python 3. Also removed the old py34 environment. Nothing uses it. Change-Id: I244b8903ef0a445abd028004bf02d6c581a8afe2
133 lines
4.2 KiB
INI
133 lines
4.2 KiB
INI
[tox]
|
|
envlist = py35,py27,pep8
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -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:py35]
|
|
commands =
|
|
nosetests {posargs:\
|
|
test/unit/cli/test_dispersion_report.py \
|
|
test/unit/cli/test_form_signature.py \
|
|
test/unit/cli/test_info.py \
|
|
test/unit/cli/test_relinker.py \
|
|
test/unit/cli/test_ring_builder_analyzer.py \
|
|
test/unit/cli/test_ringbuilder.py \
|
|
test/unit/common/ring \
|
|
test/unit/common/test_daemon.py \
|
|
test/unit/common/test_exceptions.py \
|
|
test/unit/common/test_header_key_dict.py \
|
|
test/unit/common/test_linkat.py \
|
|
test/unit/common/test_memcached.py \
|
|
test/unit/common/test_manager.py \
|
|
test/unit/common/test_splice.py \
|
|
test/unit/common/test_storage_policy.py \
|
|
test/unit/common/test_utils.py \
|
|
test/unit/common/test_wsgi.py}
|
|
|
|
[testenv:pep8]
|
|
basepython = python2.7
|
|
commands =
|
|
flake8 {posargs:swift test doc setup.py}
|
|
flake8 --filename=swift* bin
|
|
bandit -c bandit.yaml -r swift -n 5
|
|
|
|
[testenv:py3pep8]
|
|
basepython = python3
|
|
install_command = echo {packages}
|
|
whitelist_externals = echo
|
|
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]
|
|
basepython = python2.7
|
|
commands = ./.functests {posargs}
|
|
|
|
[testenv:func-encryption]
|
|
commands = ./.functests {posargs}
|
|
setenv = SWIFT_TEST_IN_PROCESS=1
|
|
SWIFT_TEST_IN_PROCESS_CONF_LOADER=encryption
|
|
|
|
[testenv:func-domain-remap-staticweb]
|
|
commands = ./.functests {posargs}
|
|
setenv = SWIFT_TEST_IN_PROCESS=1
|
|
SWIFT_TEST_IN_PROCESS_CONF_LOADER=domain_remap_staticweb
|
|
|
|
[testenv:func-ec]
|
|
commands = ./.functests {posargs}
|
|
setenv = SWIFT_TEST_IN_PROCESS=1
|
|
SWIFT_TEST_IN_PROCESS_CONF_LOADER=ec
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
basepython = python2.7
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands = sphinx-build -W -b html doc/source doc/build/html
|
|
|
|
[testenv:api-ref]
|
|
# This environment is called from CI scripts to test and publish
|
|
# the API Ref to developer.openstack.org.
|
|
basepython = python2.7
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
rm -rf api-ref/build
|
|
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
|
|
|
[testenv:bandit]
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands = bandit -c bandit.yaml -r swift -n 5
|
|
|
|
[flake8]
|
|
# it's not a bug that we aren't using all of hacking, ignore:
|
|
# H101: Use TODO(NAME)
|
|
# H202: assertRaises Exception too broad
|
|
# H301: one import per line
|
|
# H306: imports not in alphabetical order (time, os)
|
|
# 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,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
|
|
|
|
[testenv:releasenotes]
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands = sphinx-build -a -W -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|