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

[testenv]
setenv = VIRTUAL_ENV={envdir}
         LANG=en_US.UTF-8
         LANGUAGE=en_US:en
         LC_ALL=C
usedevelop = True
install_command = pip install {opts} {packages}
deps =
    -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/stein}
    -r{toxinidir}/requirements.txt
    -r{toxinidir}/test-requirements.txt
commands = stestr run {posargs}

[testenv:pep8]
basepython = python3
commands =
  flake8
  {[testenv:bandit]commands}
distribute = false

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

[testenv:cover]
basepython = python2.7
commands =
  coverage erase
  coverage run -m testtools.run
  coverage report --include="*gbpclient*" --omit="*test*" --omit="*.tox*" --omit="*nfp*" -m

[testenv:docs]
basepython = python3
commands=
    sphinx-build -W -b html doc/source doc/build/html

[testenv:bandit]
basepython = python2.7
# B303: blacklist calls: md5, sha1
# B112: Test for a continue in the except block
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r {toxinidir}/gbpclient -x {toxinidir}/gbpclient/tests -n5 -s B303,B112

[flake8]
# E125 continuation line does not distinguish itself from next logical line
# F601 dictionary key name repeated with different values - REVISIT
# H302 import only modules
# W503 line break before binary operator - REVISIT
# W504 line break after binary operator - REVISIT
# W605 invalid escape sequence - REVISIT
#
# REVISIT: Fix code and remove E129,E251,H305,H307,H405,H904 added for
# hacking 0.9.2
ignore = E125,H302,E129,E251,F601,H216,H305,H307,H405,H904,W503,W504,W605
show-source = true
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools
