#   Copyright (c) 2020 HCL Technologies Limited.
#
#   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 = code,flake8,docs,docs-linkcheck
minversion = 2.0

[testenv:code]
basepython = python3.7
deps=
    pytest
    coverage
    pytest-cov

setenv =
    LD_LIBRARY_PATH = /usr/local/lib/:/usr/local/lib64
    PYTHONPATH = {toxinidir}:ad:/usr/lib/python3.7/site-packages/
    RMR_SEED_RT = tests/fixtures/test_local.rt
    RMR_ASYNC_CONN = 0
    USE_FAKE_SDL = 1

commands =
    pytest -v --cov ad --cov-report xml --cov-report term-missing --cov-report html --cov-fail-under=50
    coverage xml -i

[testenv:flake8]
basepython = python3.7
skip_install = true
deps = flake8
setenv =
    PYTHONPATH = {toxinidir}:ad:/usr/lib/python3.7/site-packages/
commands = flake8 setup.py ad tests

[flake8]
extend-ignore = E501,E741,E731

[testenv:clm]
# use pip to gather dependencies with versions for CLM analysis
whitelist_externals = sh
commands = sh -c 'pip freeze > requirements.txt'

# doc jobs
[testenv:docs]
whitelist_externals = echo
skipsdist = true
basepython = python3.7

deps =
    sphinx
    sphinx-rtd-theme
    sphinxcontrib-httpdomain
    recommonmark
    lfdocs-conf
commands =
    sphinx-build -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
    echo "Generated docs available in {toxinidir}/docs/_build/html"

[testenv:docs-linkcheck]
skipsdist = true
basepython = python3.7
deps = sphinx
       sphinx-rtd-theme
       sphinxcontrib-httpdomain
       recommonmark
       lfdocs-conf
commands = sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck
