diff --git a/.zuul.yaml b/.zuul.yaml index 32b51a4..d01d721 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -2,20 +2,20 @@ - project: check: jobs: - - k8app-portieris-tox-py39 - openstack-tox-linters + - k8sapp-portieris-tox-py39 - k8sapp-portieris-tox-pylint gate: jobs: - - k8app-portieris-tox-py39 - openstack-tox-linters + - k8sapp-portieris-tox-py39 - k8sapp-portieris-tox-pylint post: jobs: - stx-portieris-armada-app-upload-git-mirror - job: - name: k8app-portieris-tox-py39 + name: k8sapp-portieris-tox-py39 parent: tox-py39 description: | Run py39 test for portieris @@ -26,12 +26,29 @@ - starlingx/update - starlingx/utilities files: - - python-k8app-portieris/* + - python3-k8sapp-portieris/* vars: tox_envlist: py39 python_version: 3.9 tox_extra_args: -c python3-k8sapp-portieris/k8sapp_portieris/tox.ini +- job: + name: k8sapp-portieris-tox-pylint + parent: tox + description: | + Run pylint test for k8sapp_portieris + nodeset: debian-bullseye + required-projects: + - starlingx/config + - starlingx/fault + - starlingx/update + - starlingx/utilities + files: + - python3-k8sapp-portieris/* + vars: + tox_envlist: pylint + tox_extra_args: -c python3-k8sapp-portieris/k8sapp_portieris/tox.ini + - job: name: stx-portieris-armada-app-upload-git-mirror parent: upload-git-mirror @@ -45,23 +62,6 @@ secret: stx-portieris-armada-app-github-secret2 pass-to-parent: true -- job: - name: k8sapp-portieris-tox-pylint - parent: tox - description: | - Run pylint test for k8sapp_portieris - nodeset: ubuntu-bionic - required-projects: - - starlingx/config - - starlingx/fault - - starlingx/update - - starlingx/utilities - files: - - python3-k8sapp-portieris/* - vars: - tox_envlist: pylint - tox_extra_args: -c python3-k8sapp-portieris/k8sapp_portieris/tox.ini - - secret: name: stx-portieris-armada-app-github-secret2 data: diff --git a/python3-k8sapp-portieris/k8sapp_portieris/k8sapp_portieris/lifecycle/lifecycle_portieris.py b/python3-k8sapp-portieris/k8sapp_portieris/k8sapp_portieris/lifecycle/lifecycle_portieris.py index 1da9871..304c0b2 100644 --- a/python3-k8sapp-portieris/k8sapp_portieris/k8sapp_portieris/lifecycle/lifecycle_portieris.py +++ b/python3-k8sapp-portieris/k8sapp_portieris/k8sapp_portieris/lifecycle/lifecycle_portieris.py @@ -58,7 +58,7 @@ class PortierisAppLifecycleOperator(base.AppLifecycleOperator): context, conductor_obj, app_op, app, hook_info ) - def post_apply(self, app_op, app, hook_info): + def post_apply(self, app_op, app, hook_info): # pylint: disable=unused-argument """Pre Apply actions Creates the local registry secret and migrates helm user overrides diff --git a/python3-k8sapp-portieris/k8sapp_portieris/k8sapp_portieris/tests/test_plugins.py b/python3-k8sapp-portieris/k8sapp_portieris/k8sapp_portieris/tests/test_plugins.py index 8b4c93d..9f8f1cf 100644 --- a/python3-k8sapp-portieris/k8sapp_portieris/k8sapp_portieris/tests/test_plugins.py +++ b/python3-k8sapp-portieris/k8sapp_portieris/k8sapp_portieris/tests/test_plugins.py @@ -6,16 +6,19 @@ from k8sapp_portieris.common import constants from sysinv.tests.db import base as dbbase -from sysinv.tests.helm.test_helm import HelmOperatorTestSuiteMixin class K8SAppPortierisAppMixin(object): app_name = constants.HELM_APP_PORTIERIS path_name = app_name + '.tgz' - def setUp(self): + def setUp(self): # pylint: disable=useless-parent-delegation super(K8SAppPortierisAppMixin, self).setUp() + def test_stub(self): + # Replace this with a real unit test. + pass + # Test Configuration: # - Controller @@ -25,7 +28,6 @@ class K8SAppPortierisAppMixin(object): class K8sAppPortierisControllerTestCase(K8SAppPortierisAppMixin, dbbase.BaseIPv6Mixin, dbbase.BaseCephStorageBackendMixin, - HelmOperatorTestSuiteMixin, dbbase.ControllerHostTestCase): pass @@ -37,6 +39,5 @@ class K8sAppPortierisControllerTestCase(K8SAppPortierisAppMixin, # - portieris app class K8SAppPortierisAIOTestCase(K8SAppPortierisAppMixin, dbbase.BaseCephStorageBackendMixin, - HelmOperatorTestSuiteMixin, dbbase.AIOSimplexHostTestCase): pass diff --git a/python3-k8sapp-portieris/k8sapp_portieris/pylint.rc b/python3-k8sapp-portieris/k8sapp_portieris/pylint.rc index 5892deb..4cf02c0 100644 --- a/python3-k8sapp-portieris/k8sapp_portieris/pylint.rc +++ b/python3-k8sapp-portieris/k8sapp_portieris/pylint.rc @@ -7,7 +7,7 @@ rcfile=pylint.rc #init-hook= # Add files or directories to the blacklist. Should be base names, not paths. -ignore=tests +ignore= # Pickle collected data for later comparisons. persistent=yes @@ -34,87 +34,6 @@ 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. -# -# 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 @@ -133,11 +52,6 @@ disable=C, R, W0212, W1618 # (visual studio) and html output-format=text -# Put messages in a separate file for each module / package specified on the -# command line instead of printing them on stdout. Reports (if any) will be -# written in a file name "pylint_global.[txt|html]". -files-output=no - # Tells whether to display a full report or only the messages reports=yes @@ -196,9 +110,6 @@ generated-members=REQUEST,acl_users,aq_parent [BASIC] -# List of builtins function names that should not be used, separated by a comma -bad-functions=map,filter,apply,input - # Regular expression which should only match correct module names module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ @@ -288,7 +199,7 @@ max-locals=15 max-returns=6 # Maximum number of branch for function / method body -max-branchs=12 +max-branches=12 # Maximum number of statements in function / method body max-statements=50 @@ -317,4 +228,4 @@ valid-classmethod-first-arg=cls [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to # "Exception" -overgeneral-exceptions=Exception +overgeneral-exceptions=builtins.Exception diff --git a/python3-k8sapp-portieris/k8sapp_portieris/test-requirements.txt b/python3-k8sapp-portieris/k8sapp_portieris/test-requirements.txt index 4faaa15..05c633d 100644 --- a/python3-k8sapp-portieris/k8sapp_portieris/test-requirements.txt +++ b/python3-k8sapp-portieris/k8sapp_portieris/test-requirements.txt @@ -2,8 +2,6 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. hacking>=1.1.0,<=2.0.0 # Apache-2.0 -flake8<3.8.0 -pycodestyle<2.6.0 # MIT License coverage>=3.6 discover mock>=2.0.0 # BSD @@ -13,10 +11,12 @@ python-subunit>=0.0.18 requests-mock>=0.6.0 # Apache-2.0 oslotest>=3.2.0 # Apache-2.0 stestr>=1.0.0 # Apache-2.0 -testrepository>=0.0.18 testtools!=1.2.0,>=0.9.36 ipaddr pytest pyudev migrate markupsafe +bandit +flake8-bugbear +pylint diff --git a/python3-k8sapp-portieris/k8sapp_portieris/tox.ini b/python3-k8sapp-portieris/k8sapp_portieris/tox.ini index 5308673..289ac73 100644 --- a/python3-k8sapp-portieris/k8sapp_portieris/tox.ini +++ b/python3-k8sapp-portieris/k8sapp_portieris/tox.ini @@ -1,8 +1,6 @@ [tox] -envlist = flake8,py27,py36,py39,pylint,bandit -minversion = 1.6 -# skipsdist = True -#,pip-missing-reqs +envlist = flake8,py39,pylint,bandit,cover +minversion = 2.3 # tox does not work if the path to the workdir is too long, so move it to /tmp toxworkdir = /tmp/{env:USER}_k8sportieristox @@ -10,19 +8,14 @@ stxdir = {toxinidir}/../../.. distshare={toxworkdir}/.tox/distshare [testenv] -# usedevelop = True -# enabling usedevelop results in py27 develop-inst: -# Exception: Versioning for this project requires either an sdist tarball, -# or access to an upstream git repository. -sitepackages = False - -# tox is silly... these need to be separated by a newline.... allowlist_externals = bash find +basepython = python3 +sitepackages = False install_command = pip install -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} \ + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \ {opts} {packages} # Note the hash seed is set to 0 until can be tested with a @@ -47,7 +40,7 @@ deps = -r{toxinidir}/requirements.txt -e{[tox]stxdir}/fault/fm-api/source -e{[tox]stxdir}/fault/python-fmclient/fmclient -e{[tox]stxdir}/utilities/ceph/python-cephclient/python-cephclient - -e{[tox]stxdir}/update/cgcs-patch/cgcs-patch + -e{[tox]stxdir}/update/sw-patch/cgcs-patch commands = @@ -58,40 +51,18 @@ exclude = build,dist,tools,.eggs max-line-length=120 [testenv:flake8] -basepython = python3 deps = -r{toxinidir}/test-requirements.txt - flake8-bugbear commands = flake8 {posargs} . -[testenv:py27] -basepython = python2.7 -commands = - {[testenv]commands} - stestr run {posargs} - stestr slowest - [testenv:py39] basepython = python3.9 -install_command = pip install -v -v -v \ - -c{toxinidir}/upper-constraints.txt \ - -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \ - {opts} {packages} -commands = - {[testenv]commands} - stestr run {posargs} - stestr slowest - -[testenv:py36] -basepython = python3.6 commands = {[testenv]commands} stestr run {posargs} stestr slowest [testenv:pep8] -# testenv:flake8 clone -basepython = {[testenv:flake8]basepython} deps = {[testenv:flake8]deps} commands = {[testenv:flake8]commands} @@ -99,25 +70,18 @@ commands = {[testenv:flake8]commands} commands = {posargs} [bandit] +# Add bandit configuration here [testenv:bandit] -basepython = python3 deps = -r{toxinidir}/test-requirements.txt - bandit - commands = bandit --ini tox.ini -n 5 -r k8sapp_portieris [testenv:pylint] -basepython = python3 -sitepackages = False -# If this target is run on python3.8 or later, the install_command needs the debian upper-constaints deps = {[testenv]deps} - pylint commands = pylint {posargs} k8sapp_portieris --rcfile=./pylint.rc [testenv:cover] -basepython = python2.7 deps = {[testenv]deps} setenv = {[testenv]setenv} PYTHON=coverage run --parallel-mode