#######################################################################################
# Copyright ETSI Contributors and Others.
#
# 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 = black, cover, flake8, pylint, safety

[tox:jenkins]
toxworkdir = /tmp/.tox

[testenv]
usedevelop = True
basepython = python3.8
setenv = VIRTUAL_ENV={envdir}
         PYTHONDONTWRITEBYTECODE = 1
deps =  -r{toxinidir}/requirements.txt


#######################################################################################
[testenv:black]
deps = black==23.12.1
skip_install = true
commands =
        black --check --diff osm_common/
        black --check --diff setup.py

#######################################################################################
[testenv:cover]
deps =  {[testenv]deps}
        -r{toxinidir}/requirements-test.txt
commands =
        sh -c 'rm -f nosetests.xml'
        coverage erase
        nose2 -C --coverage osm_common -s osm_common/tests
        coverage report --omit='*tests*'
        coverage html -d ./cover --omit='*tests*'
        coverage xml -o coverage.xml --omit=*tests*
allowlist_externals = sh

#######################################################################################
[testenv:flake8]
deps =
        flake8==6.0.0
        flake8-import-order
commands =
        flake8 osm_common/ setup.py

#######################################################################################
[testenv:pylint]
deps =  {[testenv]deps}
        -r{toxinidir}/requirements-test.txt
        pylint
commands =
        pylint -E osm_common

#######################################################################################
[testenv:safety]
setenv =
        LC_ALL=C.UTF-8
        LANG=C.UTF-8
deps =  {[testenv]deps}
        safety
commands =
        - safety check --full-report

#######################################################################################
[testenv:pip-compile]
deps =  pip-tools==6.6.2
skip_install = true
allowlist_externals = bash
        [
commands =
        - bash -c "for file in requirements*.in ; do \
        UNSAFE="" ; \
        if [[ $file =~ 'dist' ]] ; then UNSAFE='--allow-unsafe' ; fi ; \
        pip-compile -rU --no-header $UNSAFE $file ;\
        out=`echo $file | sed 's/.in/.txt/'` ; \
        sed -i -e '1 e head -16 tox.ini' $out ;\
        done"

#######################################################################################
[testenv:dist]
deps =  {[testenv]deps}
        -r{toxinidir}/requirements-dist.txt

# In the commands, we copy the requirements.txt to be presented as a source file (.py)
# so it gets included in the .deb package for others to consume
commands =
        sh -c 'cp requirements.txt osm_common/requirements.txt'
        python3 setup.py --command-packages=stdeb.command sdist_dsc
        sh -c 'cd deb_dist/osm-common*/ && dpkg-buildpackage -rfakeroot -uc -us'
        sh -c 'rm osm_common/requirements.txt'
allowlist_externals = sh

#######################################################################################
[testenv:release_notes]
deps = reno
skip_install = true
allowlist_externals = bash
commands =
        reno new {posargs:new_feature}
        bash -c "sed -i -e '1 e head -16 tox.ini' releasenotes/notes/{posargs:new_feature}*.yaml"

#######################################################################################
[flake8]
ignore =
        W291,
        W293,
        W503,
        E123,
        E125,
        E203,
        E226,
        E241
exclude =
        .git,
        __pycache__,
        .tox,
max-line-length = 120
show-source = True
builtins = _
import-order-style = google
