osc-placement/tox.ini

123 lines
3.1 KiB
INI

[tox]
minversion = 3.18.0
envlist = py3,functional,pep8
skipsdist = true
# Automatic envs (pyXX) will use the python version appropriate to that
# env and ignore basepython inherited from [testenv]. That's what we
# want, and we don't need to be warned about it.
ignore_basepython_conflict = true
[testenv]
basepython = python3
usedevelop = true
allowlist_externals =
rm
setenv =
PYTHONDONTWRITEBYTECODE=1
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}
# NOTE(cdent): Do not set envdir here as it confuses tox-siblings.
# gate functional jobs, which use the 'functional' path when
# copying files.
[testenv:functional]
description =
Run functional tests using python3.
deps =
{[testenv]deps}
git+https://opendev.org/openstack/placement.git#egg=openstack-placement
commands = stestr --test-path=./osc_placement/tests/functional run {posargs}
[testenv:functional-py38]
description =
Run functional tests using python3.8.
deps = {[testenv:functional]deps}
commands =
{[testenv:functional]commands}
[testenv:functional-py39]
description =
Run functional tests using python3.9.
deps = {[testenv:functional]deps}
commands =
{[testenv:functional]commands}
[testenv:functional-py310]
description =
Run functional tests using python3.10.
deps = {[testenv:functional]deps}
commands =
{[testenv:functional]commands}
[testenv:pep8]
description =
Run style checks.
envdir = {toxworkdir}/shared
commands = flake8 {posargs}
[testenv:cover]
description =
Run unit tests with coverage enabled.
envdir = {toxworkdir}/shared
setenv =
{[testenv]setenv}
PYTHON=coverage run --source osc_placement --parallel-mode
commands =
coverage erase
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report
[testenv:docs]
description =
Build main documentation.
deps =
-r{toxinidir}/doc/requirements.txt
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
commands =
rm -rf doc/build
sphinx-build -W -b html -d doc/build/doctrees doc/source doc/build/html
[testenv:pdf-docs]
description =
Build PDF documentation.
deps = {[testenv:docs]deps}
allowlist_externals =
make
commands =
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[testenv:releasenotes]
description =
Build release notes.
deps = {[testenv:docs]deps}
commands =
rm -rf releasenotes/build
sphinx-build -W -b html -d releasenotes/build/doctrees releasenotes/source releasenotes/build/html
[testenv:venv]
commands = {posargs}
# The docs requirements are included here for creating release notes, e.g.:
# tox -e venv -- reno new <slug>
deps =
{[testenv]deps}
-r{toxinidir}/doc/requirements.txt
[testenv:debug]
commands = oslo_debug_helper {posargs}
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
# W503 line break before binary operator
show-source = true
ignore = E123,E125,W503
builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build