# ==================================================================================
#       Copyright (c) 2019 Nokia
#       Copyright (c) 2018-2019 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.
#   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 = int

[testenv:int]
whitelist_externals=
    sleep
    helm
    ab
    echo
    pkill
passenv = *
deps =
    tavern
changedir=integration_tests
commands_pre=
    helm install --devel testreceiver -n testreceiver
    helm install --devel a1mediator/ -n a1
    sleep 20
    ./portforward.sh
    sleep 2
commands=
    echo "linting"
    helm lint a1mediator/
    echo "running tavern"
    pytest
    echo "running ab"
    ab -n 100 -c 10 -u putdata -T application/json http://localhost:10000/ric/policies/admission_control_policy
commands_post=
    helm delete testreceiver
    helm del --purge testreceiver
    helm delete a1
    helm del --purge a1
    pkill -9 kubectl
    sleep 10
