[tox]
envlist = py{27,35,py},pep8,cover
minversion = 2.7
skipsdist = True

[testenv]
setenv =
    VIRTUAL_ENV={envdir}
    OS_TEST_PATH=tests
passenv =
    *_proxy
    *_PROXY
usedevelop = True
install_command = pip install {opts} {packages}
whitelist_externals = bash
                      find
                      rm
deps =
  -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
  -r{toxinidir}/requirements.txt
  -r{toxinidir}/test-requirements.txt
   .[jira_plugin]
commands =
 find . -type f -name "*.pyc" -delete
 stestr run {posargs}

[testenv:cover]
basepython = python3
commands =
  coverage erase
  python setup.py test --coverage --testr-args='{posargs}' \
    --coverage-package-name=monasca_notification
  coverage report

[testenv:debug]
basepython = python3
commands =
  oslo_debug_helper -t ./monasca_notification/tests {posargs}

[testenv:pep8]
basepython = python3
commands =
  {[testenv:flake8]commands}
  {[testenv:bandit]commands}
  python setup.py check --restructuredtext --strict

[testenv:venv]
basepython = python3
commands = {posargs}

[testenv:flake8]
basepython = python3
commands =
  flake8 monasca_notification
  flake8 tests

[testenv:bandit]
basepython = python3
commands =
  bandit -r monasca_notification -n5 -x monasca_notification/tests

[testenv:genconfig]
basepython = python3
description = Generates an example of monasca-notification configuration file
commands = oslo-config-generator \
  --config-file={toxinidir}/config-generator/notification.conf

[flake8]
max-line-length = 100
# TODO: ignored checks should be enabled in the future
# H201  no 'except:' at least use 'except Exception:'
# H202: assertRaises Exception too broad
# H405  multi line docstring summary not separated with an empty line
ignore = F821,H201,H202,H405
exclude=.venv,.git,.tox,dist,*egg,build

[hacking]
import_exceptions =
  six.moves

[testenv:lower-constraints]
basepython = python3
deps =
  -c{toxinidir}/lower-constraints.txt
  -r{toxinidir}/test-requirements.txt
  -r{toxinidir}/requirements.txt
  .[jira_plugin]

[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, and develop mode disabled
# explicitly to avoid unnecessarily installing the checked-out repo too (this
# further relies on "tox.skipsdist = True" above).
deps = bindep
commands = bindep test
usedevelop = False
