[tox]
minversion=2.3.1
envlist =
    py{27,35}-{flake8,pylint,unit}
    py27-{yamllint,ansible_syntax,generate_validation}
    integration
skipsdist=True
skip_missing_interpreters=True

[testenv]
skip_install=True
deps =
    -rrequirements.txt
    -rtest-requirements.txt
    py35-flake8: flake8-bugbear==17.3.0
    integration: docker-py==1.10.6

commands =
    unit: pip install -e utils
    unit: pytest {posargs}
    flake8: flake8 {posargs}
    pylint: python setup.py lint
    yamllint: python setup.py yamllint
    generate_validation: python setup.py generate_validation
    # TODO(rhcarvalho): check syntax of other important entrypoint playbooks
    ansible_syntax: python setup.py ansible_syntax
    # ansible 2.2.2+ unfortunately breaks the integration test runner
    # because it can no longer set facts on the test docker hosts.
    # So for now, install separate ansible version for integration.
    # PR that fixes it: https://github.com/ansible/ansible/pull/23599
    # Once that PR is available, drop this and use same ansible.
    integration: pip install ansible==2.2.1.0