monasca-agent/tox.ini
Witek Bedyk 38a91f0621 Enable running unit tests in py37 environment
Until now no unit tests have been executed in py37 environment. This
change fixes tox configuration to enable running these tests.

Change-Id: I63bc0309fe6b4b314be97d8fc1bd051d2119ea84
2019-11-26 10:01:35 +01:00

107 lines
3.3 KiB
INI

[tox]
envlist = py37,pep8,cover
minversion = 2.5
skipsdist = True
[testenv]
basepython = python3
usedevelop = True
setenv =
VIRTUAL_ENV={envdir}
DISCOVER_DIRECTORY=tests
passenv = *_proxy
*_PROXY
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
whitelist_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:py37]
basepython = python3.7
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.
ignore = C901,E402,H405
show-source = True
exclude=.venv,.git,.tox,dist,*egg,build,tests,tests_to_fix
[hacking]
local-check-factory = monasca_agent.hacking.checks.factory