# 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

[testenv]
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

[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
