949dd5aa77
This creates a new package spec called python-k8sapp-openstack that will hold all the stevedore plugins needed to support the application. This spec will build two packages python-k8sapp-openstack and python-k8sapp-openstack-wheels. These packages are included in the build dependencies for the stx-openstack-helm application package build where the wheels file is included in the application tarball. The helm and armada plugins have been relocated to this repo and provided in a k8sapp_openstack python module. This module will be extracted from the wheels and installed on the platform via the sysinv application framework. The module will be made available when the application is enabled. Change-Id: I342308fbff23d29bfdf64a07dbded4bae01b79fd Depends-On: https://review.opendev.org/#/c/688191/ Story: 2006537 Task: 36978 Signed-off-by: Robert Church <robert.church@windriver.com>
201 lines
6.4 KiB
INI
201 lines
6.4 KiB
INI
[tox]
|
|
envlist = flake8,py27,py36,pylint
|
|
minversion = 1.6
|
|
# skipsdist = True
|
|
#,pip-missing-reqs
|
|
|
|
# tox does not work if the path to the workdir is too long, so move it to /tmp
|
|
toxworkdir = /tmp/{env:USER}_k8sopenstacktox
|
|
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.
|
|
# Note. site-packages is true and rpm-python must be yum installed on your dev machine.
|
|
sitepackages = True
|
|
|
|
# tox is silly... these need to be separated by a newline....
|
|
whitelist_externals = bash
|
|
find
|
|
|
|
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} \
|
|
{opts} {packages}
|
|
|
|
# Note the hash seed is set to 0 until can be tested with a
|
|
# random hash seed successfully.
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONHASHSEED=0
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
OS_TEST_PATH=./k8sapp_openstack/tests
|
|
LANG=en_US.UTF-8
|
|
LANGUAGE=en_US:en
|
|
LC_ALL=C
|
|
EVENTS_YAML=./k8sapp_openstack/tests/events_for_testing.yaml
|
|
SYSINV_TEST_ENV=True
|
|
TOX_WORK_DIR={toxworkdir}
|
|
PYLINTHOME={toxworkdir}
|
|
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-e{[tox]stxdir}/config/controllerconfig/controllerconfig
|
|
-e{[tox]stxdir}/config/sysinv/sysinv/sysinv
|
|
-e{[tox]stxdir}/config/tsconfig/tsconfig
|
|
-e{[tox]stxdir}/fault/fm-api
|
|
-e{[tox]stxdir}/fault/python-fmclient/fmclient
|
|
-e{[tox]stxdir}/update/cgcs-patch/cgcs-patch
|
|
-e{[tox]stxdir}/utilities/ceph/python-cephclient/python-cephclient
|
|
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
|
|
[flake8]
|
|
# H series are hacking
|
|
# H101 is TODO
|
|
# H102 is apache license
|
|
# H104 file contains only comments (ie: license)
|
|
# H105 author tags
|
|
# H306 imports not in alphabetical order
|
|
# H401 docstring should not start with a space
|
|
# H403 multi line docstrings should end on a new line
|
|
# H404 multi line docstring should start without a leading new line
|
|
# H405 multi line docstring summary not separated with an empty line
|
|
# H701 Empty localization string
|
|
# H702 Formatting operation should be outside of localization method call
|
|
# H703 Multiple positional placeholders
|
|
|
|
# B series are bugbear
|
|
# B006 Do not use mutable data structures for argument defaults. Needs to be FIXED.
|
|
# B007 Loop control variable not used within the loop body.
|
|
# B009 Do not call getattr with a constant attribute value
|
|
# B010 Do not call setattr with a constant attribute value
|
|
# B012 return/continue/break inside finally blocks cause exceptions to be silenced
|
|
# B014 Redundant exception types
|
|
# B301 Python 3 does not include `.iter*` methods on dictionaries. (this should be suppressed on a per line basis)
|
|
# B306 `BaseException.message` has been deprecated. Needs to be FIXED
|
|
|
|
# W series are warnings
|
|
# W503 line break before binary operator
|
|
# W504 line break after binary operator
|
|
# W605 invalid escape sequence
|
|
|
|
# E series are pep8
|
|
# E117 over-indented
|
|
# E126 continuation line over-indented for hanging indent
|
|
# E127 continuation line over-indented for visual indent
|
|
# E128 continuation line under-indented for visual indent
|
|
# E402 module level import not at top of file
|
|
|
|
ignore = H101,H102,H104,H105,H306,H401,H403,H404,H405,H701,H702,H703,
|
|
B006,B007,B009,B010,B012,B014,B301,B306,
|
|
W503,W504,W605,
|
|
E117,E126,E127,E128,E402
|
|
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: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}
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[bandit]
|
|
# The following bandit tests are being skipped:
|
|
# B101: Test for use of assert
|
|
# B103: Test for setting permissive file permissions
|
|
# B104: Test for binding to all interfaces
|
|
# B105: Test for use of hard-coded password strings
|
|
# B108: Test for insecure usage of tmp file/directory
|
|
# B110: Try, Except, Pass detected.
|
|
# B303: Use of insecure MD2, MD4, MD5, or SHA1 hash function.
|
|
# B307: Blacklisted call to eval.
|
|
# B310: Audit url open for permitted schemes
|
|
# B311: Standard pseudo-random generators are not suitable for security/cryptographic purposes
|
|
# B314: Blacklisted calls to xml.etree.ElementTree
|
|
# B318: Blacklisted calls to xml.dom.minidom
|
|
# B320: Blacklisted calls to lxml.etree
|
|
# B404: Import of subprocess module
|
|
# B405: import xml.etree
|
|
# B408: import xml.minidom
|
|
# B410: import lxml
|
|
# B506: Test for use of yaml load
|
|
# B602: Test for use of popen with shell equals true
|
|
# B603: Test for use of subprocess without shell equals true
|
|
# B604: Test for any function with shell equals true
|
|
# B605: Test for starting a process with a shell
|
|
# B607: Test for starting a process with a partial path
|
|
#
|
|
# Note: 'skips' entry cannot be split across multiple lines
|
|
#
|
|
skips = B101,B103,B104,B105,B108,B110,B303,B307,B310,B311,B314,B318,B320,B404,B405,B408,B410,B506,B602,B603,B604,B605,B607
|
|
exclude = tests
|
|
|
|
[testenv:bandit]
|
|
basepython = python3
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
bandit
|
|
|
|
commands = bandit --ini tox.ini -n 5 -r k8sapp_openstack
|
|
|
|
[testenv:pylint]
|
|
basepython = python2.7
|
|
sitepackages = False
|
|
|
|
deps = {[testenv]deps}
|
|
pylint
|
|
commands =
|
|
pylint {posargs} k8sapp_openstack --rcfile=./pylint.rc
|
|
|
|
[testenv:cover]
|
|
basepython = python2.7
|
|
deps = {[testenv]deps}
|
|
setenv = {[testenv]setenv}
|
|
PYTHON=coverage run --parallel-mode
|
|
|
|
commands =
|
|
{[testenv]commands}
|
|
coverage erase
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report
|
|
|
|
[testenv:pip-missing-reqs]
|
|
# do not install test-requirements as that will pollute the virtualenv for
|
|
# determining missing packages
|
|
# this also means that pip-missing-reqs must be installed separately, outside
|
|
# of the requirements.txt files
|
|
deps = pip_missing_reqs
|
|
-rrequirements.txt
|
|
commands=pip-missing-reqs -d --ignore-file=/k8sapp_openstack/tests k8sapp_openstack
|