[tox] envlist = py38,pep8 minversion = 2.1 skipsdist = True [testenv] setenv = VIRTUAL_ENV={envdir} DISCOVER_DIRECTORY=tests passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY usedevelop = True allowlist_externals = bash find rm install_command = pip install {opts} {packages} deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} .[influxdb,cassandra,elasticsearch] -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = find {toxinidir} -type f -name "*.py[c|o]" -delete rm -Rf .testrepository/times.dbm stestr run {posargs} [testenv:cover] basepython = python3 setenv = PYTHON=coverage run --source monasca_persister --parallel-mode commands = stestr run {posargs} coverage combine coverage html -d cover coverage xml -o cover/coverage.xml coverage report [testenv:debug] basepython = python3 commands = oslo_debug_helper -t monasca_persister/tests {posargs} [testenv:pep8] basepython = python3 deps = {[testenv]deps} commands = {[testenv:flake8]commands} {[bandit]commands} [testenv:genconfig] basepython = python3 description = Generates sample configuration file for monasca-persister whitelist_externals = bash commands = oslo-config-generator --config-file=config-generator/persister.conf [testenv:venv] basepython = python3 commands = {posargs} [testenv:bindep] basepython = python3 # 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 [testenv:flake8] basepython = python3 commands = flake8 monasca_persister [flake8] max-line-length = 100 # TODO: ignored checks should be enabled in the future # H405 multi line docstring summary not separated with an empty line ignore = F821,H405,H306,E302 exclude=.venv,.git,.tox,dist,*egg,build [bandit] commands = # B303 cassandra metrics repository uses SHA1 for metric_id bandit -r monasca_persister -n5 -s B303 -x monasca_persister/tests [flake8:local-plugins] extension = def factory(register): 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_persister/hacking [testenv:releasenotes] deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/doc/requirements.txt basepython = python3 description = Called from CI script to test and publish the Release Notes commands = rm -rf releasenotes/build sphinx-build -a -E -W -d releasenotes/build/doctrees -b html \ releasenotes/source releasenotes/build/html