utilities/tox.ini
Leonardo Fagundes Luz Serrano a04fa768cd Add python-ldap deps for zuul test
Zuul tests are failing to build python-ldap due
to some missing binary pkg dependencies [1].
Added them using bindep following the solution
on the gui repo [2, 3]

[1] https://zuul.opendev.org/t/openstack/build/8356394372e24999b27e1a0251e1d919
[2] https://review.opendev.org/c/starlingx/gui/+/894397
[3] https://review.opendev.org/c/starlingx/gui/+/885834

Test Plan:
pass: tox --notest -epylint -vv --skip-missing-interpreters=false

Closes-Bug: 2036280

Change-Id: Ic1f38573d3ea344b3724bfd92a167bd209ebcea0
Signed-off-by: Leonardo Fagundes Luz Serrano <Leonardo.FagundesLuzSerrano@windriver.com>
2023-09-15 18:41:49 +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=./pylint.rc
[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