This avoids the need to duplicate our dependency list in multiple places and allows us to take advantage of tox's dependency management infrastructure, to ensure we always get the latest and greatest version of a package allowed by upper-constraints. It also removes the slowest pre-commit hook (by some distance), making pre-commit faster Change-Id: I3249b2f7dfa1bf35707d4953fb99b54bdfbaec1b Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
87 lines
2.2 KiB
INI
87 lines
2.2 KiB
INI
[tox]
|
|
minversion = 3.1
|
|
envlist = py3,pep8
|
|
|
|
[testenv]
|
|
setenv =
|
|
OS_STDOUT_CAPTURE=1
|
|
OS_STDERR_CAPTURE=1
|
|
OS_TEST_TIMEOUT=60
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
commands =
|
|
stestr run {posargs}
|
|
|
|
[testenv:unit-tips]
|
|
commands =
|
|
python -m pip install -q -e "git+file://{toxinidir}/../cliff#egg=cliff"
|
|
python -m pip install -q -e "git+file://{toxinidir}/../keystoneauth#egg=keystoneauth"
|
|
python -m pip install -q -e "git+file://{toxinidir}/../openstacksdk#egg=openstacksdk"
|
|
python -m pip freeze
|
|
stestr run {posargs}
|
|
|
|
[testenv:pep8]
|
|
description =
|
|
Run style checks.
|
|
deps =
|
|
pre-commit
|
|
{[testenv:mypy]deps}
|
|
commands =
|
|
pre-commit run --all-files --show-diff-on-failure
|
|
{[testenv:mypy]commands}
|
|
|
|
[testenv:mypy]
|
|
description =
|
|
Run type checks.
|
|
deps =
|
|
{[testenv]deps}
|
|
mypy
|
|
types-requests
|
|
commands =
|
|
mypy --cache-dir="{envdir}/mypy_cache" {posargs:osc_lib}
|
|
|
|
[testenv:venv]
|
|
commands =
|
|
{posargs}
|
|
|
|
[testenv:cover]
|
|
commands =
|
|
python setup.py test --coverage --coverage-package-name=osc_lib --testr-args='{posargs}'
|
|
coverage report
|
|
|
|
[testenv:debug]
|
|
commands =
|
|
oslo_debug_helper -t osc_lib/tests {posargs}
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
extras =
|
|
test
|
|
commands =
|
|
sphinx-apidoc -o doc/api osc_lib osc_lib/tests
|
|
# Create ChangeLog file
|
|
python setup.py sdist
|
|
sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
|
|
|
|
[testenv:releasenotes]
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[flake8]
|
|
show-source = True
|
|
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools
|
|
# We only enable the hacking (H) and openstacksdk (O) checks
|
|
select = H,O
|
|
# H404 Docstrings don't always start with a newline
|
|
# H405 Multiline docstrings are okay
|
|
ignore = H301,H403,H404,H405
|
|
import-order-style = pep8
|
|
application-import-names = osc_lib
|