[tox]
envlist = py27,py35,pep8
minversion = 2.1
skipsdist = True

[testenv]
setenv =
    VIRTUAL_ENV={envdir}
    DISCOVER_DIRECTORY=tests
    CLIENT_NAME=monasca-persister
passenv = http_proxy
          HTTP_PROXY
          https_proxy
          HTTPS_PROXY
          no_proxy
          NO_PROXY
usedevelop = True
whitelist_externals = bash
                      find
                      rm
install_command =
    {toxinidir}/tools/tox_install.sh {env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
deps = .[influxdb,cassandra]
       -r{toxinidir}/requirements.txt
       -r{toxinidir}/test-requirements.txt
commands =
  find {toxinidir} -type f -name "*.py[c|o]" -delete
  rm -Rf .testrepository/times.dbm

[testenv:py27]
basepython = python2.7
commands =
  {[testenv]commands}
  ostestr {posargs}

[testenv:py35]
basepython = python3.5
commands =
  {[testenv]commands}
  ostestr {posargs}

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

[testenv:debug]
commands =
  {[testenv]commands}
  oslo_debug_helper -t monasca_persister/tests {posargs}

[testenv:pep8]
deps =
  {[testenv]deps}
commands =
  {[testenv:flake8]commands}
  {[bandit]commands}

[testenv:genconfig]
description = Generates sample configuration file for monasca-persister
whitelist_externals = bash
commands =
  oslo-config-generator --config-file=config-generator/persister.conf

[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

[testenv:flake8]
commands =
    flake8 monasca_persister

[flake8]
max-line-length = 120
# TODO: ignored checks should be enabled in the future
# H405  multi line docstring summary not separated with an empty line
# H904  Wrap long lines in parentheses instead of a backslash
ignore = F821,H405,H904,E126,E125,H306,E302,E122
exclude=.venv,.git,.tox,dist,*egg,build

[bandit]
commands =
  bandit -r monasca_persister -n5 -x monasca_persister/tests

[hacking]
local-check-factory = monasca_persister.hacking.checks.factory