#######################################################################################
# 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, rflint, safety

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

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

#######################################################################################
[testenv:black]
deps = black
skip_install = true
commands =
        black --check --diff robot-systest --fast


#######################################################################################
[testenv:cover]
commands =
        sh -c 'echo No unit tests'
allowlist_externals = sh


#######################################################################################
[testenv:flake8]
deps = flake8
commands =
        flake8 robot-systest


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


#######################################################################################
[testenv:rflint]
changedir = {toxinidir}/robot-systest
deps =  {[testenv]deps}
        -r{toxinidir}/requirements-dev.txt
        robotframework-lint
        robotframework-robocop
commands =
        rflint --ignore LineTooLong --ignore TooFewTestSteps --ignore TooManyTestCases \
               --ignore TooManyTestSteps --ignore TooFewKeywordSteps \
               testsuite lib resources
        robocop --configure return_status:quality_gate:E=0:W=0:I=0 --exclude 050*,0701,0923 .


#######################################################################################
[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.13.0
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 --resolver=backtracking -rU --no-header $UNSAFE $file ;\
        out=`echo $file | sed 's/.in/.txt/'` ; \
        sed -i -e '1 e head -16 tox.ini' $out ;\
        done"


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