From 92ec55097cdf27d824da6912673e352b2a0c6680 Mon Sep 17 00:00:00 2001 From: Bernardo Decco Date: Tue, 7 Sep 2021 14:58:13 -0300 Subject: [PATCH] Add pylint py3k portability checks for the vault-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 Story: 2006796 Task: 43225 Signed-off-by: Bernardo Decco Change-Id: I14bc2f80b707315ed17157cae75407f2bc61088e --- .zuul.yaml | 24 +++++- python-k8sapp-vault/k8sapp_vault/pylint.rc | 91 +++++++++++++++++++++- python-k8sapp-vault/k8sapp_vault/tox.ini | 6 +- tox.ini | 4 + 4 files changed, 117 insertions(+), 8 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index cefe45f..279f4fe 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -3,17 +3,19 @@ check: jobs: - openstack-tox-linters - - k8app-vault-tox-py39 + - k8sapp-vault-tox-py39 + - k8sapp-vault-tox-pylint gate: jobs: - openstack-tox-linters - - k8app-vault-tox-py39 + - k8sapp-vault-tox-py39 + - k8sapp-vault-tox-pylint post: jobs: - stx-vault-armada-app-upload-git-mirror - job: - name: k8app-vault-tox-py39 + name: k8sapp-vault-tox-py39 parent: tox-py39 description: | Run py39 for vault armada app @@ -42,6 +44,22 @@ secret: stx-vault-armada-app-github-secret pass-to-parent: true +- job: + name: k8sapp-vault-tox-pylint + parent: tox + description: | + Run pylint test for k8sapp_vault + required-projects: + - starlingx/config + - starlingx/fault + - starlingx/update + - starlingx/utilities + files: + - python-k8sapp-vault/* + vars: + tox_envlist: pylint + tox_extra_args: -c python-k8sapp-vault/k8sapp_vault/tox.ini + - secret: name: stx-vault-armada-app-github-secret data: diff --git a/python-k8sapp-vault/k8sapp_vault/pylint.rc b/python-k8sapp-vault/k8sapp_vault/pylint.rc index 6e869c3..a17285c 100644 --- a/python-k8sapp-vault/k8sapp_vault/pylint.rc +++ b/python-k8sapp-vault/k8sapp_vault/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,14 @@ 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 +# Disable Python3 checkers: +# W0107: unnecessary-pass +# W1406: redundant-u-string-prefix +# W1618: no-absolute-import +# E0401: import-error +# E0602: undefined-variable +# E0611: no-name-in-module +disable=C, R, W0107, W1406, W1618, E0401, E0602, E0611 [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs diff --git a/python-k8sapp-vault/k8sapp_vault/tox.ini b/python-k8sapp-vault/k8sapp_vault/tox.ini index 38ba37c..1456386 100644 --- a/python-k8sapp-vault/k8sapp_vault/tox.ini +++ b/python-k8sapp-vault/k8sapp_vault/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_vault [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