This is a combination of three commits from master: --- Isolate docs requirements ...since modern sphinx won't install on py27. While we're at it, clean up some warnings and treat warnings as errors. Also, fix up how we parse test configs so we can run func tests. Related-Change: Id3c2ed87230c5918c18e2c01d086df8157f036b1 (cherry picked from commit113eacf3b8) --- Drag forward prettytable in lower-constraints Apparently version 0.7 got unpublished recently. (cherry picked from commit5bd66947fc) --- docs: Clean up formatting (cherry-picked from commit7563d9cb56) --- Change-Id: I3c6bca460ee5ff99195495a29e8b8bbf4ed804ff
108 lines
2.9 KiB
INI
108 lines
2.9 KiB
INI
[tox]
|
|
envlist = py37,py36,py35,py27,pypy,pep8
|
|
minversion = 2.0
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command = python -m pip install -U {opts} {packages}
|
|
list_dependencies_command = python -m pip freeze
|
|
setenv =
|
|
LANG=en_US.utf-8
|
|
VIRTUAL_ENV={envdir}
|
|
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
.[keystone]
|
|
commands = sh -c '(find . -not \( -type d -name .?\* -prune \) \
|
|
\( -type d -name "__pycache__" -or -type f -name "*.py[co]" \) \
|
|
-print0) | xargs -0 rm -rf'
|
|
stestr run {posargs}
|
|
whitelist_externals = sh
|
|
passenv = SWIFT_* *_proxy
|
|
|
|
[testenv:pep8]
|
|
basepython = python3
|
|
commands =
|
|
python -m flake8 swiftclient tests
|
|
|
|
[testenv:venv]
|
|
basepython = python3
|
|
commands = {posargs}
|
|
|
|
[testenv:cover]
|
|
basepython = python3
|
|
setenv =
|
|
PYTHON=coverage run --source swiftclient --parallel-mode
|
|
commands =
|
|
stestr run
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report
|
|
|
|
[testenv:func]
|
|
basepython = python3
|
|
setenv =
|
|
OS_TEST_PATH=tests.functional
|
|
PYTHON=coverage run --source swiftclient --parallel-mode
|
|
whitelist_externals =
|
|
coverage
|
|
rm
|
|
commands =
|
|
stestr run --concurrency=1
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report -m
|
|
rm -f .coverage
|
|
|
|
[testenv:py2func]
|
|
basepython=python2
|
|
setenv = {[testenv:func]setenv}
|
|
whitelist_externals = {[testenv:func]whitelist_externals}
|
|
commands = {[testenv:func]commands}
|
|
|
|
[testenv:docs]
|
|
basepython = python3
|
|
usedevelop = False
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands=
|
|
python setup.py build_sphinx -W
|
|
|
|
[flake8]
|
|
# it's not a bug that we aren't using all of hacking, ignore:
|
|
# H101: Use TODO(NAME)
|
|
# 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
|
|
ignore = E731,H101,H301,H306,H401,H403,H404,H405
|
|
show-source = True
|
|
exclude = .venv,.tox,dist,doc,*egg
|
|
|
|
[testenv:bindep]
|
|
basepython = python3
|
|
# 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.
|
|
usedevelop = False
|
|
deps = bindep
|
|
commands = bindep test
|
|
|
|
[testenv:releasenotes]
|
|
basepython = python3
|
|
usedevelop = False
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands = sphinx-build -a -W -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:lower-constraints]
|
|
basepython = python3
|
|
deps =
|
|
-c{toxinidir}/lower-constraints.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
.[keystone]
|