# ==================================================================================
#       Copyright (c) 2020-2022 Nordix
#
#   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,docs,docs-linkcheck
minversion = 2.0
skipsdist = true

; basic test and coverage jobs
[testenv:code]
basepython = python3.8
deps=
    pytest
    coverage
    pytest-cov
    connexion

setenv =
    TESTS_BASE_PATH = {toxinidir}/near-rt-ric-simulator/tests
commands =
; Two test execution with pytest is needed as each simulator version need to be started separately. In addtion, each simulator need
; environment setup that would cause interference if both simulator are executed in the same pytest run.
; Each pytest run also need to point to the specific test case file for the reasons mentioned above.
; Note that the second pytest (additional pytest added in the future) uses the 'append' flag to combine the coverage data
; from the previous tests. The first pytest shall not have the 'append' since the it is supposed to erase previous coverage data
; from earlier tox run.
    pytest --cov {toxinidir}/near-rt-ric-simulator --cov-report xml --cov-report term-missing --cov-report html --cov-fail-under=70 \
    {toxinidir}/near-rt-ric-simulator/tests/test_osc_2_1_0.py
    pytest --cov-append --cov {toxinidir}/near-rt-ric-simulator --cov-report xml --cov-report term-missing --cov-report html \
    --cov-fail-under=70 {toxinidir}/near-rt-ric-simulator/tests/test_std_1_1_3.py
    pytest --cov-append --cov {toxinidir}/near-rt-ric-simulator --cov-report xml --cov-report term-missing --cov-report html \
    --cov-fail-under=70 {toxinidir}/near-rt-ric-simulator/tests/test_std_2_0_0.py
    coverage xml -i

# doc jobs
[testenv:docs]
whitelist_externals = echo
basepython = python3.8
deps = -r{toxinidir}/docs/requirements-docs.txt
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.8
deps = -r{toxinidir}/docs/requirements-docs.txt
commands =
    sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck
