From 386b5daa15906676338bb27ce269f2578e6add00 Mon Sep 17 00:00:00 2001 From: Bernardo Decco Date: Sat, 4 Sep 2021 14:15:03 -0300 Subject: [PATCH] Add pylint py3 portability checks for the k8sapp_snmp A lot of work has gone into making sure that StarlingX is python3 compatible. To ensure future compatibility, enable the python3 portability checks. Disable the checks that are raising errors. Another set of commits will address the offending code. Story: 2006796 Task: 43208 Signed-off-by: Bernardo Decco Change-Id: I6505bb489049f8666bfb97788353ecc77e74ddf5 --- .zuul.yaml | 18 +++++ python-k8sapp-snmp/k8sapp_snmp/pylint.rc | 95 +++++++++++++++++++++++- python-k8sapp-snmp/k8sapp_snmp/tox.ini | 6 +- tox.ini | 4 + 4 files changed, 118 insertions(+), 5 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 0eda3c9..a8999dc 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -4,10 +4,12 @@ jobs: - openstack-tox-linters - k8app-snmp-armada-tox-py39 + - k8sapp-snmp-tox-pylint gate: jobs: - openstack-tox-linters - k8app-snmp-armada-tox-py39 + - k8sapp-snmp-tox-pylint post: jobs: - stx-snmp-armada-app-upload-git-mirror @@ -42,6 +44,22 @@ secret: stx-snmp-armada-app-github-secret pass-to-parent: true +- job: + name: k8sapp-snmp-tox-pylint + parent: tox + description: | + Run pylint test for k8sapp_snmp + required-projects: + - starlingx/config + - starlingx/fault + - starlingx/update + - starlingx/utilities + files: + - python-k8sapp-snmp/* + vars: + tox_envlist: pylint + tox_extra_args: -c python-k8sapp-snmp/k8sapp_snmp/tox.ini + - secret: name: stx-snmp-armada-app-github-secret data: diff --git a/python-k8sapp-snmp/k8sapp_snmp/pylint.rc b/python-k8sapp-snmp/k8sapp_snmp/pylint.rc index 6e869c3..9cfbc64 100644 --- a/python-k8sapp-snmp/k8sapp_snmp/pylint.rc +++ b/python-k8sapp-snmp/k8sapp_snmp/pylint.rc @@ -34,7 +34,88 @@ extension-pkg-whitelist=lxml.etree,greenlet # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option # multiple time. -#enable= +# +# Python3 checker: +# +# E1601: print-statement +# E1602: parameter-unpacking +# E1603: unpacking-in-except +# E1604: old-raise-syntax +# E1605: backtick +# E1606: long-suffix +# E1607: old-ne-operator +# E1608: old-octal-literal +# E1609: import-star-module-level +# E1610: non-ascii-bytes-literal +# E1611: invalid-unicode-literal +# W1601: apply-builtin +# W1602: basestring-builtin +# W1603: buffer-builtin +# W1604: cmp-builtin +# W1605: coerce-builtin +# W1606: execfile-builtin +# W1607: file-builtin +# W1608: long-builtin +# W1609: raw_input-builtin +# W1610: reduce-builtin +# W1611: standarderror-builtin +# W1612: unicode-builtin +# W1613: xrange-builtin +# W1614: coerce-method +# W1615: delslice-method +# W1616: getslice-method +# W1617: setslice-method +# W1618: no-absolute-import +# W1619: old-division +# W1620: dict-iter-method +# W1621: dict-view-method +# W1622: next-method-called +# W1623: metaclass-assignment +# W1624: indexing-exception +# W1625: raising-string +# W1626: reload-builtin +# W1627: oct-method +# W1628: hex-method +# W1629: nonzero-method +# W1630: cmp-method +# W1632: input-builtin +# W1633: round-builtin +# W1634: intern-builtin +# W1635: unichr-builtin +# W1636: map-builtin-not-iterating +# W1637: zip-builtin-not-iterating +# W1638: range-builtin-not-iterating +# W1639: filter-builtin-not-iterating +# W1640: using-cmp-argument +# W1641: eq-without-hash +# W1642: div-method +# W1643: idiv-method +# W1644: rdiv-method +# W1645: exception-message-attribute +# W1646: invalid-str-codec +# W1647: sys-max-int +# W1648: bad-python3-import +# W1649: deprecated-string-function +# W1650: deprecated-str-translate-call +# W1651: deprecated-itertools-function +# W1652: deprecated-types-field +# W1653: next-method-defined +# W1654: dict-items-not-iterating +# W1655: dict-keys-not-iterating +# W1656: dict-values-not-iterating +# W1657: deprecated-operator-function +# W1658: deprecated-urllib-function +# W1659: xreadlines-attribute +# W1660: deprecated-sys-function +# W1661: exception-escape +# W1662: comprehension-escape +enable=E1603,E1609,E1610,E1602,E1606,E1608,E1607,E1605,E1604,E1601,E1611,W1652, + W1651,W1649,W1657,W1660,W1658,W1659,W1623,W1622,W1620,W1621,W1645,W1641, + W1624,W1648,W1625,W1611,W1662,W1661,W1650,W1640,W1630,W1614,W1615,W1642, + W1616,W1628,W1643,W1629,W1627,W1644,W1617,W1601,W1602,W1603,W1604,W1605, + W1654,W1655,W1656,W1619,W1606,W1607,W1639,W1632,W1634,W1608,W1636, + W1653,W1646,W1638,W1609,W1610,W1626,W1633,W1647,W1635,W1612,W1613,W1637 + # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifier separated by comma (,) or put this option @@ -44,7 +125,17 @@ extension-pkg-whitelist=lxml.etree,greenlet # https://pylint.readthedocs.io/en/latest/user_guide # We are disabling (C)onvention # We are disabling (R)efactor -disable=C, R +# E1101: no-member +# W0107: unnecessary-pass +# W0212: protected-access +# W0311: bad-indentation +# W0511: fixme +# W0612: unused-variable +# W0613: unused-argument +# W0703: broad-except +# W1406: redundant-u-string-prefix +# W1618: no-absolute-import +disable=C, R, E1101, W0107, W0212, W0311, W0511, W0612, W0613, W0703, W1406, W1618 [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs diff --git a/python-k8sapp-snmp/k8sapp_snmp/tox.ini b/python-k8sapp-snmp/k8sapp_snmp/tox.ini index 3b70e0e..29a7b62 100644 --- a/python-k8sapp-snmp/k8sapp_snmp/tox.ini +++ b/python-k8sapp-snmp/k8sapp_snmp/tox.ini @@ -21,8 +21,8 @@ sitepackages = False whitelist_externals = bash find -install_command = pip install \ - -v -v -v --use-deprecated legacy-resolver \ +install_command = pip install --use-deprecated legacy-resolver \ + -v -v -v \ -c{toxinidir}/upper-constraints.txt \ -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/stable/stein/upper-constraints.txt} \ {opts} {packages} @@ -110,7 +110,7 @@ deps = -r{toxinidir}/test-requirements.txt commands = bandit --ini tox.ini -n 5 -r k8sapp_snmp [testenv:pylint] -basepython = python2.7 +basepython = python3 sitepackages = False deps = {[testenv]deps} diff --git a/tox.ini b/tox.ini index cede375..8a5ffa9 100644 --- a/tox.ini +++ b/tox.ini @@ -33,3 +33,7 @@ commands = [testenv:linters] commands = {[testenv:bashate]commands} + +[testenv:pylint] +basepython = python3 +description = Dummy environment to allow pylint to be run in subdir tox