From a7f3a058fef80dd147fdb850167336fb89b5725a Mon Sep 17 00:00:00 2001 From: Bernardo Decco Date: Thu, 2 Sep 2021 15:56:56 -0300 Subject: [PATCH] Add pylint py3 portability checks for the openstack-armada-app repo 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. Add following suppress warnings in pylint.rc: - W1618: no-absolute-import - W1646: invalid-str-codec Depends-On: https://review.opendev.org/c/starlingx/openstack-armada-app/+/808768 Story: 2006796 Task: 43190 Signed-off-by: Bernardo Decco Change-Id: Ib46f8a67042c40823ef870773cf7159763738e06 --- .zuul.yaml | 18 ++++ .../k8sapp_openstack/pylint.rc | 87 ++++++++++++++++++- tox.ini | 4 + 3 files changed, 107 insertions(+), 2 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index bbd29abb..0fb9bf0f 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -4,10 +4,12 @@ jobs: - openstack-tox-linters - k8sapp-openstack-tox-py39 + - k8sapp-openstack-tox-pylint gate: jobs: - openstack-tox-linters - k8sapp-openstack-tox-py39 + - k8sapp-openstack-tox-pylint post: jobs: - stx-openstack-armada-app-upload-git-mirror @@ -41,6 +43,22 @@ - name: git_mirror_credentials secret: stx-openstack-armada-app-github-secret pass-to-parent: true +- job: + name: k8sapp-openstack-tox-pylint + parent: tox + description: | + Run pylint tests for k8sapp_oidc + nodeset: ubuntu-bionic + required-projects: + - starlingx/config + - starlingx/fault + - starlingx/update + - starlingx/utilities + files: + - python-k8sapp-openstack/* + vars: + tox_envlist: pylint + tox_extra_args: -c python-k8sapp-openstack/k8sapp_openstack/tox.ini - secret: name: stx-openstack-armada-app-github-secret diff --git a/python-k8sapp-openstack/k8sapp_openstack/pylint.rc b/python-k8sapp-openstack/k8sapp_openstack/pylint.rc index 8293408e..86c6a837 100755 --- a/python-k8sapp-openstack/k8sapp_openstack/pylint.rc +++ b/python-k8sapp-openstack/k8sapp_openstack/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 checkers: +# +# 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 @@ -89,10 +169,13 @@ extension-pkg-whitelist=lxml.etree,greenlet # E1102: not-callable # E1120: no-value-for-parameter # E1121: too-many-function-args +# Disable Python3 checkers: +# W1618: no-absolute-import +# W1646: invalid-str-codec disable=C, R, fixme, W0101, W0105, W0106, W0107, W0108, W0110, W0123, W0150, W0201, W0211, W0212, W0221, W0223, W0231, W0235, W0311, W0402, W0403, W0404, W0603, W0612, W0613, W0621, W0622, W0631, W0632, W0701, W0703, - W1113, W1201, W1401, W1505, + W1113, W1201, W1401, W1505, W1618, W1646, E0213, E0401, E0604, E0633, E0701, E1102, E1120, E1121 [REPORTS] diff --git a/tox.ini b/tox.ini index a483c1fb..653ee73f 100644 --- a/tox.ini +++ b/tox.ini @@ -31,3 +31,7 @@ commands = [testenv:linters] commands = {[testenv:bashate]commands} + +[testenv:pylint] +basepython = python2.7 +description = Dummy environment to allow pylint to run in subdir tox