# ==================================================================================
#       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 = 4.0
skipsdist = true

; basic test and coverage jobs
[testenv:code]
basepython = python3
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]
allowlist_externals = echo
basepython = python3
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
deps = -r{toxinidir}/docs/requirements-docs.txt
commands =
    sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck
