Files
python-swiftclient/tox.ini
Tim Burke 172aa90169 Fix up stable gate
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 commit 113eacf3b8)

---

Drag forward prettytable in lower-constraints

Apparently version 0.7 got unpublished recently.

(cherry picked from commit 5bd66947fc)

---

docs: Clean up formatting

(cherry-picked from commit 7563d9cb56)

---

Change-Id: I3c6bca460ee5ff99195495a29e8b8bbf4ed804ff
2019-08-06 14:14:49 -07:00

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]