We want to default to running all tox environments under python 3, so set the basepython value in each environment. We do not want to specify a minor version number, because we do not want to have to update the file every time we upgrade python. We do not want to set the override once in testenv, because that breaks the more specific versions used in default environments like py35 and py36. Change-Id: I12967d5f5e707efe2b271b28bc7ea4b40e7f1c15
100 lines
3.0 KiB
INI
100 lines
3.0 KiB
INI
[tox]
|
|
envlist = py27,pep8,cover
|
|
minversion = 2.5
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
DISCOVER_DIRECTORY=tests
|
|
passenv = *_proxy
|
|
*_PROXY
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-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:py27]
|
|
basepython = python2.7
|
|
commands =
|
|
{[testenv]commands}
|
|
ostestr {posargs}
|
|
|
|
[testenv:cover]
|
|
basepython = python2.7
|
|
commands =
|
|
{[testenv]commands}
|
|
coverage erase
|
|
python setup.py test --coverage --testr-args='{posargs}' --coverage-package-name=monasca_agent,monasca_setup
|
|
coverage report
|
|
|
|
[testenv:bandit]
|
|
basepython = python3
|
|
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]
|
|
basepython = python3
|
|
commands =
|
|
flake8 monasca_agent
|
|
flake8 monasca_setup
|
|
flake8 tests
|
|
|
|
[testenv:pep8]
|
|
basepython = python3
|
|
commands =
|
|
{[testenv:flake8]commands}
|
|
{[testenv:bandit]commands}
|
|
|
|
[testenv:venv]
|
|
basepython = python3
|
|
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.
|
|
basepython = python3
|
|
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
|
|
ignore = H405
|
|
show-source = True
|
|
exclude=.venv,.git,.tox,dist,*egg,build,tests,tests_to_fix
|
|
|
|
[hacking]
|
|
local-check-factory = monasca_agent.hacking.checks.factory
|