Files
python-swiftclient/tox.ini
Tim Burke 153f4cd277 CI: Fix py36 and py37 jobs
The openstack/requirements repo has dropped support for these versions
of python; as a result, some constraints have moved forward to versions
requiring py38+.

Fortunately, the Python ecosystem has gotten much better about specifying
Python version requirements, so we should be clear to just trust the
package metadata to get us a useful version.

Change-Id: I44941d9f7cb145631a0daae2d12cfe85be854f6f
2024-02-27 08:50:27 -08:00

107 lines
3.1 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[tox]
envlist = py3,pep8
minversion = 3.18.0
[testenv]
skipsdist = True
usedevelop = True
list_dependencies_command = python -m pip freeze
setenv =
LANG=en_US.utf-8
VIRTUAL_ENV={envdir}
deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
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}
allowlist_externals = sh
passenv = SWIFT_*
[testenv:pep8]
commands =
python -m flake8 swiftclient test
[testenv:{py36,py37}]
# Drop the use of constraints; most dependencies have dropped support for
# these versions already, and have updated their metadata to reflect that
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
[testenv:venv]
commands = {posargs}
[testenv:cover]
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]
setenv =
OS_TEST_PATH=test.functional
PYTHON=coverage run --source swiftclient --parallel-mode
allowlist_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:docs]
usedevelop = False
deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands=
sphinx-build -W -b html doc/source doc/build/html -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
# W504: line break after binary operator
# F811: Redefinition of unused name from line n
ignore = H101,H301,H306,H401,H403,H404,H405,W504,F811
# H106: Dont put vim configuration in source files
# H203: Use assertIs(Not)None to check for None
enable-extensions=H106,H203
show-source = True
exclude = .venv,.tox,dist,doc,*egg
[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.
usedevelop = False
deps = bindep
commands = bindep test
[testenv:releasenotes]
usedevelop = False
deps = {[testenv:docs]deps}
commands = sphinx-build -a -W -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:pdf-docs]
deps = {[testenv:docs]deps}
allowlist_externals =
make
commands =
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf