[tox]
envlist = py27,pep8,cover,pylint
minversion = 1.6

# tox does not work if the path to the workdir is too long, so move it to /tmp
toxworkdir = /tmp/{env:USER}_inventoryclienttox
cgcsdir = {toxinidir}/../../../..
distshare={toxworkdir}/.tox/distshare

[testenv]
setenv = VIRTUAL_ENV={envdir}
         PYTHONWARNINGS=default::DeprecationWarning
         OS_TEST_PATH=inventoryclient/tests
         TESTR_START_DIR=inventoryclient/tests
basepython = python2.7
usedevelop = True

install_command = pip install  -U -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/pike} {opts} {packages}
deps = -r{toxinidir}/test-requirements.txt

commands =
  find {toxinidir} -not -path '{toxinidir}/.tox/*' -name '*.py[c|o]' -delete
  python setup.py testr --slowest --testr-args='{posargs}'

whitelist_externals =
  bash
  find
  rm
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY

[testenv:pep8]
commands =
    flake8 inventoryclient

[testenv:venv]
commands = {posargs}

[testenv:cover]
basepython = python2.7
commands =
  find . -type f -name ".coverage\.*" -delete
  rm -f .coverage
  rm -Rf cover
  rm -f coverage.xml
  python setup.py testr --coverage --testr-args='{posargs}'
  coverage xml

[flake8]
show-source = true
exclude=.*,dist,*lib/python*,*egg,build
max-complexity=25
# H102  Apache 2.0 license header not found
# H233  Python 3.x incompatible use of print operator
# H404  multi line docstring should start without a leading new line
# H405  multi line docstring summary not separated with an empty line
ignore = H102,H233,H404,H405

[testenv:pylint]
basepython = python2.7

deps = {[testenv]deps}
        pylint

commands = pylint {posargs} inventoryclient --rcfile=./pylint.rc  --extension-pkg-whitelist=lxml.etree,greenlet  --ignored-classes=LookupDict