Include py39 tests as part of zuul for this repo

The py39 job was mis-named and was using the wrong
file filter pattern to trigger it from running.

The test_helm base unit test class was removed from sysinv,
as part of remove-armada-helmv2 work in March
so adding stub unit tests so tox will not report an
empty test run.

pylint directives are now updated based on the debian
upper constraints, and the unit tests are now validated
by pylint.

tox.ini is cleaned up since python3 is now the only
supported version of python

These changes have no runtime impact. This only
affects tox and zuul.

Test Plan:
  PASS: build-pkgs -c -p python3-k8sapp-portieris
  PASS: tox

Closes-Bug: #2024005
Related-Bug: #1942909
Change-Id: Iece6e78a98b30111cadb62156e413dd19dd62a37
Signed-off-by: Al Bailey <al.bailey@windriver.com>
This commit is contained in:
Al Bailey 2023-06-15 14:18:54 +00:00
parent 06daaf3f37
commit 53dbb19a52
6 changed files with 40 additions and 164 deletions

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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