Files
utilities/tox.ini
Leonardo Fagundes Luz Serrano b033533e3b Tox/Zuul: Fix import-error pylint messages
The stx-utilities-tox-pylint zuul job is failing due to not
being able to import certain modules which are only available
during runtime.

To fix this, adjusted .pylintrc to ignore import errors for
these specific runtime modules.

In addition, renamed the pylint config file from "pylint.rc"
to the standard ".pylintrc"

Test Plan:
pass - Zuul test passing

Partial-Bug: 2110076

Change-Id: I03e384ee713d403f82f0a5dc2a120c29ac808fc4
Signed-off-by: Leonardo Fagundes Luz Serrano <Leonardo.FagundesLuzSerrano@windriver.com>
2025-05-07 21:04:02 +00:00

118 lines
4.2 KiB
INI

[tox]
envlist = linters,pylint,pep8
minversion = 4
skipsdist = True
toxworkdir = /tmp/{env:USER}_python_utilities_tox
stxdir = {toxinidir}/..
[testenv]
sitepackages = False
basepython = python3.9
install_command = pip install \
-v -v -v \
-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_DEBUG=1
OS_LOG_CAPTURE=1
deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
allowlist_externals =
bash
sort
[testenv:bashate]
# Treat all E* codes as Errors rather than warnings using: -e 'E*'
# The following codes are being suppressed:
# E006 line too long
# E010 The "do" should be on same line as for
# E041 Arithmetic expansion using $[ is deprecated for $((
# E042 local declaration hides errors
# E043 Arithmetic compound has inconsistent return semantics
# E044 Use [[ for non-POSIX comparisions
commands =
bash -c "find {toxinidir} \
-not \( -type d -name .?\* -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
-not -name before_bootstrap_workarounds.sh \
-not -name after_bootstrap_workarounds.sh \
-name \*.sh \
-print0 | xargs -n 1 -0 bashate -v \
-i E006,E010,E041,E042,E043,E044 \
-e 'E*'"
[flake8]
# Note: hacking pulls in flake8 2.5.5 which can not parse an ignore list spanning multiple lines
# F errors are high priority to fix. W are warnings. E series are pep8, H series are hacking
# F401 'FOO' imported but unused
# F841 local variable 'FOO' is assigned to but never used
# W291 trailing whitespace
# W391 blank line at end of file
# W503 line break before binary operator
# W504 line break after binary operator
# W605 invalid escape sequence '\s'
# E128 continuation line under-indented for visual indent
# E221 multiple spaces before operator
# E226 missing whitespace around arithmetic operator
# E227 missing whitespace around bitwise or shift operator
# E241 multiple spaces after ','
# E265 block comment should start with '# '
# E302 expected 2 blank lines, found 1
# E305 expected 2 blank lines after class or function definition, found 1
# E501 line too long
# E502 the backslash is redundant between brackets
# E702 multiple statements on one line (semicolon)
# E722 do not use bare 'except'
# H101 is TODO
# H104 File contains nothing but comments
# H201 no 'except:' at least use 'except Exception:'
# H238 old style class declaration, use new style (inherit from `object`)
# H306 imports not in alphabetical order (sys, re)
# H401 docstring should not start with a space
# H405 multi line docstring summary not separated with an empty line
ignore = F401,F841,W291,W391,W503,W504,W605,E128,E221,E226,E227,E241,E265,E302,E305,E501,E502,E702,E722,H101,H104,H201,H238,H306,H401,H405
# max-line-length is not referenced if E501 is suppressed
max-line-length=80
import-order-style = google
application-import-names = cephclient,ceph_manager,logmgmt,pci_irq_affinity,platform_util
[testenv:pep8]
commands =
flake8
[testenv:pylint]
deps =
{[testenv]deps}
-e{[tox]stxdir}/config/sysinv/sysinv/sysinv
-e{[tox]stxdir}/config/tsconfig/tsconfig
-e{[tox]stxdir}/fault/fm-api/source
commands = pylint {posargs} \
ceph/ceph-manager/ceph-manager/ceph_manager \
ceph/python-cephclient/python-cephclient/cephclient \
utilities/logmgmt/logmgmt/logmgmt/ \
utilities/pci-irq-affinity-agent/pci_irq_affinity/pci_irq_affinity \
utilities/platform-util/platform-util/platform_util \
--rcfile=./.pylintrc
[testenv:sorted]
# sort acts differently on Ubuntu and Debian
# LC_ALL=c ensures they sort the same way
setenv =
LC_ALL=c
commands = sort -c tools/collector/debian-scripts/run.exclude
[testenv:linters]
commands =
{[testenv:bashate]commands}
{[testenv:sorted]commands}
[testenv:bandit]
description = Dummy environment to allow bandit to be run in subdir tox