osc-placement/tox.ini
Ghanshyam Mann b6505e20ba Use pypi released version of placement in functional tests
osc-placement functional tests are using the master version
of placement which is failing due to the constraints mismatch
on stable branches testing.

- https://zuul.opendev.org/t/openstack/build/a2cc830f28f44ed5ae0e1c5f0a99ac75

During the discussion in Nova meeting, we did not find any reason why
we are using the latest placement on stable branch testing of osc-placement
- https://meetings.opendev.org/meetings/nova/2023/nova.2023-01-10-16.00.log.html#l-47

Below is the original patch which started using the placement from master
source.
- https://review.opendev.org/c/openstack/osc-placement/+/651939

To avoid the constraints mismatch on stable branch testing which can
happen in future also, let's use it from pypi version which will be the
same way as nova functional tests doing
- 26f24b7086/tox.ini (L64)

Also, remove basepython/ignore_basepython_conflict from tox.ini. Tox 4.2.6
still failing with the missing interpreter for [testenv:functional{,-py38,
-py39,-py310}]. It is due to a conflict between basepython = python3
and the version fragment in the generative target suppressed by
ignore_basepython_conflict = true.

This patch removes basepython = python3 assuming that developers already
switched for python3 in their environment as python2.7 is EOL.

Ref: https://review.opendev.org/c/openstack/nova/+/869545

Change-Id: I4e3e5732411639054baaa9211a29e2e2c8210ac0
2023-01-10 14:50:45 -06:00

131 lines
3.6 KiB
INI

[tox]
minversion = 3.18.0
envlist = py3,functional,pep8
[testenv]
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.
# As osc-placement functional tests import the PlacementFixture from the placement
# repository these tests are, by default, set up to run with openstack-placement
# from pypi. In the gate, Zuul will use the installed version of placement (stable
# branch version on stable gate run) OR the version of placement the Depends-On in
# the commit message suggests. If you want to run the tests with latest master from
# the placement repo, modify the dep line to point at master, example:
# deps =
# {[testenv]deps}
# git+https://opendev.org/openstack/placement#egg=openstack-placement
# If you want to run the test locally with an un-merged placement change,
# modify the dep line to point to your dependency or pip install placement
# into the appropriate tox virtualenv.
# NOTE: We express the requirement here instead of test-requirements
# because we do not want placement present during unit tests.
deps =
{[testenv]deps}
openstack-placement>=1.0.0
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