[tox]
envlist = py36, py37, py38, lint, pylint, typing, cov
skip_missing_interpreters = True

[testenv]
basepython = {env:PYTHON3_PATH:python3}
commands =
     pytest --timeout=9 --durations=10 -qq -o console_output_style=count -p no:sugar {posargs}
     {toxinidir}/script/check_dirty
deps =
     -r{toxinidir}/requirements_test_all.txt
     -c{toxinidir}/homeassistant/package_constraints.txt

[testenv:cov]
commands =
     pytest --timeout=9 --durations=10 -qq -o console_output_style=count -p no:sugar --cov --cov-report= {posargs}
     {toxinidir}/script/check_dirty
deps =
     -r{toxinidir}/requirements_test_all.txt
     -c{toxinidir}/homeassistant/package_constraints.txt

[testenv:pylint]
ignore_errors = True
deps =
     -r{toxinidir}/requirements_all.txt
     -r{toxinidir}/requirements_test.txt
     -c{toxinidir}/homeassistant/package_constraints.txt
commands =
     pylint {posargs} homeassistant

[testenv:lint]
deps =
     -r{toxinidir}/requirements_test.txt
commands =
    python -m script.gen_requirements_all validate
    python -m script.hassfest validate
    flake8 {posargs: homeassistant tests script}

[testenv:typing]
whitelist_externals=/bin/bash
deps =
     -r{toxinidir}/requirements_test.txt
     -c{toxinidir}/homeassistant/package_constraints.txt
commands =
    /bin/bash -c 'TYPING_FILES=$(cat mypyrc); mypy $TYPING_FILES'