#######################################################################################
# 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
setenv = VIRTUAL_ENV={envdir}
         PYTHONDONTWRITEBYTECODE = 1
deps =  -r{toxinidir}/requirements.txt


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


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


#######################################################################################
[testenv:flake8]
deps = flake8
commands =
        flake8 n2vc/ setup.py


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


#######################################################################################
[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==5.5.0
commands =
        - sh -c 'for file in requirements*.in ; do pip-compile -rU --no-header $file ;\
        out=`echo $file | sed "s/.in/.txt/"` ; \
        head -16 tox.ini >> $out ;\
        done'
whitelist_externals = sh


#######################################################################################
[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 n2vc/requirements.txt'
        python3 setup.py --command-packages=stdeb.command sdist_dsc
        sh -c 'cd deb_dist/n2vc*/ && dpkg-buildpackage -rfakeroot -uc -us'
        sh -c 'rm n2vc/requirements.txt'
whitelist_externals = sh

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