Files
python-swiftclient/tox.ini
Tim Burke acd7091f60 Fix multiple CI failures
1. Clean up some requirements

* Drop the py26 marker for futures; we don't support 2.6 anymore.
* Split hacking version used based on python version.
* Clean up sphinx split -- 2.0+ aren't available to install on py2,
  anyway.

Depends-On: https://review.opendev.org/#/c/752340/
Depends-On: https://review.opendev.org/#/c/752736/
(cherry picked from commit 5cb9061487)

2. Drop lower-constraints testing

The OpenStack community consensus seems to be that it's not worth the
hassle of fixing. *Maybe* we can revisit this if we ever drop py2
support?

Reasonable spot to start on ML threads:
http://lists.openstack.org/pipermail/openstack-discuss/2021-January/019672.html

(cherry picked from commit 06b36ae0e2)

3. [goal] Migrate testing to ubuntu focal

As per victoria cycle testing runtime and community goal[1]
we need to migrate upstream CI/CD to Ubuntu Focal(20.04).

- Keep py2 functional job run on Bionic node

Story: #2007865
Task: #40221

(cherry picked from commit 9f69908f75)

tests: Make test_delete_container_versions less flakey

Hammering that test in a tight loop, I'd often see failures due to
ordering issues. Make the delete single-threaded to avoid that.

(cherry picked from commit c73792c2e5)

Change-Id: I5a6ba8e65c23ada7297f6684dcbdd886591d0af5
2021-03-01 11:44:46 +01:00

113 lines
3.0 KiB
INI
Raw Permalink 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 = py27,py38,pep8
minversion = 2.0
skipsdist = True
[testenv]
usedevelop = True
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 test
[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=test.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=
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
ignore = H101,H301,H306,H401,H403,H404,H405,W504
# 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]
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:pdf-docs]
basepython = python3
deps = {[testenv:docs]deps}
whitelist_externals =
make
commands =
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf