[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: Don’t 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