[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 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