codegenerator/tox.ini
Artem Goncharov e084a3334e Rename publish job
To be able to reasonably guess in which project the job is defined
looking at its name rename it to something more reasonable at the same
time assuming there might be more of the publish jobs (well, we can
generate lot of different things).

Change-Id: I5c2779c9418c28bc4af4f31a80661b87b4d78848
2024-06-13 11:02:58 +02:00

89 lines
3.0 KiB
INI

[tox]
minversion = 4.3.0
envlist = pep8,py311
ignore_basepython_conflict=True
[testenv]
description =
Run unit tests.
package = editable
passenv =
setenv =
LANG=en_US.UTF-8
LANGUAGE=en_US:en
install_command = python -I -m pip install -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages}
deps =
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands =
# A very dirty hack to bypass dependency conflict of openapi-core/jsonchema/referencing
pip install -U openapi-core
stestr run {posargs}
stestr slowest
[testenv:functional{,-py310,-py311}]
description =
Run functional tests.
setenv =
{[testenv]setenv}
commands =
# Generators conflict with each other since every service is screwing
# OsloConfig to its own flavor and I have not found a working way to deal with
# that except of physically isolating them
stestr --test-path ./codegenerator/tests/functional/ run {posargs}
stestr slowest
[testenv:docs{,-py310,-py311}]
description =
Build documentation in HTML format.
# We do not want the package (because of heavy dependencies for docs)
skip_install = True
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -W --keep-going -b html -j auto doc/source/ doc/build/html
[testenv:releasenotes{,-py310,-py311}]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
skip_install = True
commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:pep8]
description =
Run style checks.
deps =
pre-commit
commands =
pre-commit run --all-files --show-diff-on-failure
[testenv:publish-openapi-specs]
description =
No-op env for publishing built Specs
deps =
# We need any dependency, since only that causes `tox -epublish --notest` to create log dir that is required by tox-siblings role
pbr
skip_install = True
commands =
[flake8]
application-import-names = codegenerator
# The following are ignored on purpose. It's not super worth it to fix them.
# However, if you feel strongly about it, patches will be accepted to fix them
# if they fix ALL of the occurances of one and only one of them.
# E203 Black will put spaces after colons in list comprehensions
# E501 Black takes care of line length for us
# H238 New Style Classes are the default in Python3
# H301 Black will put commas after imports that can't fit on one line
# H4 Are about docstrings and there's just a huge pile of pre-existing issues.
# W503 Is supposed to be off by default but in the latest pycodestyle isn't.
# Also, both openstacksdk and Donald Knuth disagree with the rule. Line
# breaks should occur before the binary operator for readability.
ignore = E203, E501, H301, H238, H4, W503
import-order-style = pep8
show-source = True
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,