7c42c56f1f
Change-Id: Iddf3469f07486f2c58b46ea993547eecd6df3382
117 lines
3.6 KiB
INI
117 lines
3.6 KiB
INI
[tox]
|
|
envlist = py3,pep8,cover
|
|
minversion = 2.5
|
|
skipsdist = True
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
usedevelop = True
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
DISCOVER_DIRECTORY=tests
|
|
passenv = *_proxy
|
|
*_PROXY
|
|
deps =
|
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
allowlist_externals = bash
|
|
find
|
|
rm
|
|
install_command = pip install {opts} {packages}
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
rm -Rf .testrepository/times.dbm
|
|
|
|
[testenv:py36]
|
|
basepython = python3.6
|
|
commands =
|
|
{[testenv]commands}
|
|
stestr run {posargs}
|
|
|
|
[testenv:py38]
|
|
basepython = python3.8
|
|
commands =
|
|
{[testenv]commands}
|
|
stestr run {posargs}
|
|
|
|
[testenv:cover]
|
|
commands =
|
|
{[testenv]commands}
|
|
coverage erase
|
|
python setup.py test --coverage --testr-args='{posargs}' --coverage-package-name=monasca_agent,monasca_setup
|
|
coverage report
|
|
|
|
[testenv:bandit]
|
|
commands =
|
|
# B101 - asserts used on purpose
|
|
# Following rules should be fixed in future
|
|
# B602[ subprocess_popen_with_shell_equals_true ] - removed when fixed
|
|
# B603[ subprocess_without_shell_equals_true ] - removed when fixed
|
|
# B301[ pickle ] - removed when fixed
|
|
# B303[ insecure MD5 usage ] - removed when fixed
|
|
# B311[ random ] - removed when fixed
|
|
# B403[ import_pickle ] - removed when fixed
|
|
# B404[ import_subprocess ] - removed when fixed
|
|
# B405[ import_xml_etree] - removed when fixed
|
|
# B310[ urllib_urlopen ] - removed when fixed
|
|
# B320[ xml_bad_tree ] - removed when fixed
|
|
# B410[ import_lxml ] - removed when fixed
|
|
# B411[ import_xmlrpclib ] - removed when fixed
|
|
# B605[ start_process_with_a_shell ] - removed when fixed
|
|
# B607[ start_process_with_partial_path ] - removed when fixed
|
|
# B608[ hardcoded_sql_expressions ] - removed when fixed
|
|
# B501[ request_with_no_cert_validation ] - removed when fixed
|
|
# B504[ ssl_with_no_version ] - removed when fixed
|
|
bandit -r monasca_agent -n5 -s B101,B602,B603,B301,B303,B311,B403,B404,B405,B310,B320,B410,B411,B501,B504,B605,B607,B608 -x {toxinidir}/tests
|
|
|
|
[testenv:flake8]
|
|
commands =
|
|
flake8 monasca_agent
|
|
flake8 monasca_setup
|
|
flake8 tests
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
{[testenv:flake8]commands}
|
|
{[testenv:bandit]commands}
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:bindep]
|
|
# Do not install any requirements. We want this to be fast and work even if
|
|
# system dependencies are missing, since it's used to tell you what system
|
|
# dependencies are missing! This also means that bindep must be installed
|
|
# separately, outside of the requirements files.
|
|
deps = bindep
|
|
commands = bindep test
|
|
|
|
[flake8]
|
|
max-line-length = 100
|
|
max-complexity = 30
|
|
# TODO: ignored checks should be enabled in the future
|
|
# H405 multi line docstring summary not separated with an empty line
|
|
# E402 module level import not at top of file
|
|
# reason: there are numerous places where we import modules
|
|
# later for legitimate reasons
|
|
# C901 MongoDb.check function in monasca_agent/collector/checks_d/mongo.py
|
|
# is too complex. Need to be simplified with less if, for loops and then
|
|
# C901 can be removed from here.
|
|
# W504 line break after binary operator
|
|
ignore = C901,E402,H405,W504
|
|
show-source = True
|
|
exclude=.venv,.git,.tox,dist,*egg,build,tests,tests_to_fix
|
|
|
|
[flake8:local-plugins]
|
|
extension =
|
|
M001 = checks:no_mutable_default_args
|
|
M002 = checks:no_xrange
|
|
M003 = checks:validate_assertTrue
|
|
M004 = checks:validate_assertIsNone
|
|
M005 = checks:no_log_warn_check
|
|
M006 = checks:validate_assertIsNotNone
|
|
M007 = checks:assert_raisesRegexp
|
|
paths = ./monasca_agent/hacking
|