# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[tox]
envlist=py27,py26,py27e2e,py26e2e,pywin,py27ssh,pylint_code,pylint_tests,docs

[testenv]
whitelist_externals=rm
passenv=
  TRAVIS
  PYTHON
  PYTHON_VERSION
  PYTHON_ARCH
deps=
  -rrequirements.txt
  -rtests/requirements.txt
basepython=
  py26: python2.6
  py27: python2.7
  py26e2e: python2.6
  py27e2e: python2.7
  py26ssh: python2.6
  py27ssh: python2.7
  pywin: {env:PYTHON:}\python.exe
  pylint_code: python2.7
  pylint_tests: python2.7
  docs: python2.7

[testenv:py27]
commands=pytest tests --ignore=tests/end2end --ignore=tests/orchestrator/execution_plugin/test_ssh.py --cov-report term-missing --cov aria

[testenv:py26]
commands=pytest tests --ignore=tests/end2end --ignore=tests/orchestrator/execution_plugin/test_ssh.py --cov-report term-missing --cov aria

[testenv:py27e2e]
commands=pytest tests/end2end --cov-report term-missing --cov aria

[testenv:py26e2e]
commands=pytest tests/end2end --cov-report term-missing --cov aria

[testenv:pywin]
commands=pytest tests --ignore=tests/end2end --ignore=tests/orchestrator/execution_plugin/test_ssh.py --cov-report term-missing --cov aria

[testenv:py27ssh]
install_command=pip install {opts} {packages} .[ssh]
commands=pytest tests/orchestrator/execution_plugin/test_ssh.py

[testenv:py26ssh]
install_command=pip install {opts} {packages} .[ssh]
commands=pytest tests/orchestrator/execution_plugin/test_ssh.py

[testenv:pylint_code]
commands=pylint --rcfile=aria/.pylintrc --disable=fixme,missing-docstring aria extensions/aria_extension_tosca/

[testenv:pylint_tests]
commands=pylint --rcfile=tests/.pylintrc --disable=fixme,missing-docstring tests

[testenv:docs]
commands=
  pip install --requirement docs/requirements.txt
  rm --recursive --force docs/html
  sphinx-build -W -T -b html docs docs/html
