From 5af71341cb6a2701505b390ea12cd60a8b2f825c Mon Sep 17 00:00:00 2001 From: Bernardo Decco Date: Sat, 4 Sep 2021 13:43:16 -0300 Subject: [PATCH] Add pylint py3 portability checks for the k8sapp-portieris 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: 43207 Signed-off-by: Bernardo Decco Change-Id: I24509f6f392b070c307c3b05ab2cc802714503c8 --- .zuul.yaml | 18 ++++ .../k8sapp_portieris/pylint.rc | 85 ++++++++++++++++++- .../k8sapp_portieris/tox.ini | 2 +- tox.ini | 5 ++ 4 files changed, 107 insertions(+), 3 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 9104655..6b32df4 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -3,9 +3,11 @@ check: jobs: - openstack-tox-linters + - k8sapp-portieris-tox-pylint gate: jobs: - openstack-tox-linters + - k8sapp-portieris-tox-pylint post: jobs: - stx-portieris-armada-app-upload-git-mirror @@ -23,6 +25,22 @@ secret: stx-portieris-armada-app-github-secret pass-to-parent: true +- job: + name: k8sapp-portieris-tox-pylint + parent: tox + description: | + Run pylint test for k8sapp_portieris + required-projects: + - starlingx/config + - starlingx/fault + - starlingx/update + - starlingx/utilities + files: + - python-k8sapp-portieris/* + vars: + tox_envlist: pylint + tox_extra_args: -c python-k8sapp-portieris/k8sapp_portieris/tox.ini + - secret: name: stx-portieris-armada-app-github-secret data: diff --git a/python-k8sapp-portieris/k8sapp_portieris/pylint.rc b/python-k8sapp-portieris/k8sapp_portieris/pylint.rc index 6e869c3..8f115c1 100644 --- a/python-k8sapp-portieris/k8sapp_portieris/pylint.rc +++ b/python-k8sapp-portieris/k8sapp_portieris/pylint.rc @@ -34,7 +34,87 @@ 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,W1618,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 +124,8 @@ 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 +# W1618: no-absolute-import +disable=C, R, W1618 [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs diff --git a/python-k8sapp-portieris/k8sapp_portieris/tox.ini b/python-k8sapp-portieris/k8sapp_portieris/tox.ini index 7a39c99..268bdcf 100644 --- a/python-k8sapp-portieris/k8sapp_portieris/tox.ini +++ b/python-k8sapp-portieris/k8sapp_portieris/tox.ini @@ -98,7 +98,7 @@ deps = -r{toxinidir}/test-requirements.txt commands = bandit --ini tox.ini -n 5 -r k8sapp_portieris [testenv:pylint] -basepython = python2.7 +basepython = python3 sitepackages = False deps = {[testenv]deps} diff --git a/tox.ini b/tox.ini index cede375..bfce7fb 100644 --- a/tox.ini +++ b/tox.ini @@ -33,3 +33,8 @@ commands = [testenv:linters] commands = {[testenv:bashate]commands} + +[testenv:pylint] +basepython = python3 +description = Dummy environment to allow pylint to be run in subdir tox +