metal/tox.ini
Al Bailey dd5a24037d Fix bashate failure in zuul
This review allows this repo to pass zuul.

When tox is run locally it pulls in an older
bashate 0.6.0 but the zuul jobs are pulling in
the higher version.

Bashate 2.1.1 was releated Oct 6, 2022

Changed the upper constraints to allow developers
to pull in dependencies that are more aligned with zuul.

Fixed the new bashate error.
Also cleaned up the yamllint syntax.

Closes-Bug: 1991971
Signed-off-by: Al Bailey <al.bailey@windriver.com>
Change-Id: I9cda349a20c63f9d222a3c3fc3645c5ceb4c2751
2022-10-06 17:22:12 +00:00

116 lines
3.2 KiB
INI

[tox]
envlist = linters,pep8,pylint
minversion = 2.3
skipsdist = True
[testenv]
install_command = pip install \
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \
{opts} {packages}
setenv = VIRTUAL_ENV={envdir}
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
deps = -r{toxinidir}/test-requirements.txt
whitelist_externals = reno
[testenv:linters]
basepython = python3
whitelist_externals = bash
#bashate ignore errors
#E010: do not on the same line as for
#E006 Line too long
commands =
bash -c "find {toxinidir} \
-not \( -type d -name .?\* -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
\( \
-name \*.sh \
-or -not -wholename \*/devstack/files/\* \
-wholename \*/devstack/\* \
\) \
-print0 | xargs -r -n 1 -0 bashate -v -i E010,E006"
bash -c "find {toxinidir} \
-name .tox -prune \
-o -type f -name '*.yaml' \
-print0 | xargs -0 yamllint -f parsable"
[testenv:pylint]
basepython = python3
usedevelop = False
description =
Pylint check
deps = {[testenv]deps}
redfish
pylint
commands =
pylint {posargs} --rcfile=./pylint.rc \
tools/rvmc/docker/rvmc.py \
mtce/src/hwmon/scripts/hwmond_notify.py
[testenv:pep8]
basepython = python3
usedevelop = False
deps =
flake8
description =
Run style checks
commands =
flake8
# hacking can be added for additional pep8 once this passes for all metal
[flake8]
show-source = True
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,release-tag-*
# W504 line break after binary operator
# H102 Apache License format
ignore = W504,H102
[testenv:venv]
commands = {posargs}
[testenv:docs]
basepython = python3
deps = -r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build
sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
whitelist_externals = rm
[testenv:releasenotes]
basepython = python3
deps = -r{toxinidir}/doc/requirements.txt
commands =
rm -rf releasenotes/build
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
whitelist_externals = rm
[testenv:newnote]
basepython = python3
# Re-use the releasenotes venv
envdir = {toxworkdir}/releasenotes
deps = -r{toxinidir}/doc/requirements.txt
commands = reno new {posargs}
[testenv:api-ref]
basepython = python3
deps =
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf api-ref/build
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
whitelist_externals = rm
[testenv:functional]
basepython = python3
whitelist_externals = cat
commands = cat /etc/mtc.ini
[testenv:bandit]
basepython = python3
description = Bandit code scan for *.py files under config folder
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r {toxinidir}/ -x '**/.tox/**,**/.eggs/**' -lll