# ==================================================================================
#       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
    kubectl
    getlogs.sh
passenv = *
deps =
    tavern
changedir=integration_tests
commands_pre=
    echo "WARNING: make sure you're running with latest docker builds!"
    sleep 5
    helm install --devel testreceiver -n testreceiver
    helm install --devel a1mediator -n a1
# wait for helm charts
    sleep 30
    ./portforward.sh
    sleep 2
commands=
    echo "linting"
    helm lint a1mediator
    helm lint testreceiver
    echo "running tavern"
# run tavern
    pytest --tavern-beta-new-traceback
    echo "running ab"
# run apache bench
    ab -n 100 -c 10 -v 4 http://localhost:10000/a1-p/healthcheck
commands_post=
    echo "log collection"
    integration_tests/getlogs.sh
    echo "teardown"
    helm delete testreceiver
    helm del --purge testreceiver
    helm delete a1
    helm del --purge a1
    pkill -9 kubectl
    sleep 10
