# ==================================================================================
-# Copyright (c) 2019 Nokia
-# Copyright (c) 2018-2019 AT&T Intellectual Property.
+# Copyright (c) 2019-2020 Nokia
+# Copyright (c) 2018-2020 AT&T Intellectual Property.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==================================================================================
+
+# Code
+
[tox]
-envlist = py37,flake8
+envlist = code,flake8,docs,docs-linkcheck
+minversion = 2.0
+
+[pytest]
+testpaths = tests
-[testenv]
+[testenv:code]
+basepython = python3.8
deps=
pytest
coverage
pytest-cov
setenv =
LD_LIBRARY_PATH = /usr/local/lib/:/usr/local/lib64
- RMR_RCV_RETRY_INTERVAL = 1
- RMR_RETRY_TIMES = 2
-commands=
+ A1_RMR_RETRY_TIMES = 2
+ INSTANCE_DELETE_NO_RESP_TTL = 3
+ INSTANCE_DELETE_RESP_TTL = 3
+ prometheus_multiproc_dir = /tmp
+
# Note, before this will work, for the first time on that machine, run ./install_deps.sh
- pytest --verbose --cov {envsitepackagesdir}/a1 --cov-report html
+commands =
+# sometimes the -s flag is helpful; add -s after pytest; which streams the logs as they come in, rather than saving them all for the end of tests
+ pytest --cov a1 --cov-report xml --cov-report term-missing --cov-report html --cov-fail-under=70 --junitxml=/tmp/tests.xml
+ coverage xml -i
[testenv:flake8]
-basepython = python3.7
+basepython = python3.8
skip_install = true
deps = flake8
commands = flake8 setup.py a1 tests
[flake8]
-extend-ignore = E501
+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'
+
+# Docs
+
+# verbatim as asked for by the docs instructions: https://wiki.o-ran-sc.org/display/DOC/Configure+Repo+for+Documentation
+[testenv:docs]
+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"
+whitelist_externals = echo
+
+[testenv:docs-linkcheck]
+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