python-monascaclient/tox.ini
Hervé Beraud 45df91ada8 Add doc/requirements
We need to specify doc requirements in doc/requirements.txt
to avoid problems with the pip resolver [1] for the release team [2][3].
Removing specific doc requirements from test-requirements.txt.

The problem here is that this repos haven't doc/requirements.txt file
and by default in this case zuul will use the test-requirements.txt file
to pull requirements [4].

This requirements file contains extra requirements like flake8 that
collided with those allowed in our job environment and so the new pip
resolver fails to install these requirements and the job exits in error.

This project meet the conditions leading to the bug.

[1] http://lists.openstack.org/pipermail/release-job-failures/2021-January/001500.html
[2] http://lists.openstack.org/pipermail/openstack-discuss/2021-January/019611.html
[3] http://lists.openstack.org/pipermail/openstack-discuss/2021-January/019612.html
[4] https://opendev.org/zuul/zuul-jobs/src/branch/master/roles/ensure-sphinx/tasks/main.yaml#L36

Change-Id: Iac7d5ec69724206453c5fc74cbd61efde9b9a1ee
2021-01-11 15:07:40 +01:00

106 lines
2.7 KiB
INI

[tox]
envlist = py38,pypy,cover,pep8
minversion = 3.1.1
skipsdist = True
ignore_basepython_conflict = True
[testenv]
basepython = python3
setenv =
VIRTUAL_ENV={envdir}
OS_TEST_PATH=monascaclient/tests
PYTHONWARNINGS=default::DeprecationWarning
passenv = *_proxy
*_PROXY
usedevelop = True
install_command = pip install {opts} {packages}
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
whitelist_externals = bash
find
rm
commands =
find {toxinidir} -type f -name "*.pyc" -delete
stestr run {posargs}
[testenv:cover]
setenv =
PYTHON=coverage run --source monascaclient --parallel-mode
commands =
coverage erase
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report
[testenv:debug]
commands = oslo_debug_helper -t {env:OS_TEST_PATH} {posargs}
[testenv:pep8]
skip_install = True
usedevelop = False
commands =
{[testenv:flake8]commands}
{[testenv:bandit]commands}
{[testenv:checkniceness]commands}
[testenv:flake8]
skip_install = True
usedevelop = False
commands = flake8 monascaclient
[testenv:bandit]
skip_install = True
usedevelop = False
commands = bandit -r monascaclient -n5 -x {env:OS_TEST_PATH}
[testenv:docs]
deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
description = Builds full monascaclient documentation
commands =
{[testenv:devdocs]commands}
{[testenv:releasenotes]commands}
[testenv:devdocs]
deps = {[testenv:docs]deps}
description = Builds developer documentation
commands =
rm -rf {toxinidir}/doc/build {toxinidir}/doc/source/contributor/api
sphinx-build -a -W -b html doc/source doc/build/html
[testenv:releasenotes]
deps = {[testenv:docs]deps}
description = Called from CI script to test and publish the Release Notes
commands =
rm -rf releasenotes/build
sphinx-build -a -W -E -d {toxinidir}/releasenotes/build/doctrees -b html \
{toxinidir}/releasenotes/source {toxinidir}/releasenotes/build/html
[testenv:checkniceness]
description = Validates (pep-like) documenation
commands =
doc8 --file-encoding utf-8 {toxinidir}/doc
doc8 --file-encoding utf-8 {toxinidir}/releasenotes
[testenv:venv]
commands = {posargs}
[hacking]
import_exceptions =
[flake8]
show-source = True
max-line-length = 100
builtins = _
exclude=.venv,.git,.tox,dist,client_api_example.py,*lib/python*,*egg,build
[testenv:lower-constraints]
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt