From a9dcea9674b77b4d3263820f8d71b747db81cb46 Mon Sep 17 00:00:00 2001 From: tomasgodoi Date: Tue, 29 Aug 2017 01:49:13 -0300 Subject: [PATCH] Wating the AnkiConnect to be up to run the tests. --- .travis.yml | 4 ++-- tests/scripts/wait-up.sh | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100755 tests/scripts/wait-up.sh diff --git a/.travis.yml b/.travis.yml index 5a6f3a0..de930d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,5 +11,5 @@ install: - docker build -f tests/docker/Dockerfile -t txgio/anki-connect . script: - docker run -ti -d --rm -p 8888:8765 -e ANKICONNECT_BIND_ADDRESS=0.0.0.0 txgio/anki-connect - - sleep 5 - - python -m unittest discover -s tests \ No newline at end of file + - ./tests/scripts/wait-up.sh http://docker:8888 + - python -m unittest discover -s tests -v \ No newline at end of file diff --git a/tests/scripts/wait-up.sh b/tests/scripts/wait-up.sh new file mode 100755 index 0000000..6491b19 --- /dev/null +++ b/tests/scripts/wait-up.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +set -e + +if [ $# -lt 1 ]; then + printf "First parameter URL required.\n" + exit 1 +fi + +COUNTER=0 +STEP_SIZE=1 +MAX_SECONDS=${2:-10} # Wait 10 seconds if parameter not provided +MAX_RETRIES=$(( $MAX_SECONDS / $STEP_SIZE)) + +URL=$1 + +printf "Waiting URL: "$URL"\n" + +until $(curl --insecure --output /dev/null --silent --fail $URL) || [ $COUNTER -eq $MAX_RETRIES ]; do + printf '.' + sleep $STEP_SIZE + COUNTER=$(($COUNTER + 1)) +done +if [ $COUNTER -eq $MAX_RETRIES ]; then + printf "\nTimeout after "$(( $COUNTER * $STEP_SIZE))" second(s).\n" + exit 2 +else + printf "\nUp successfully after "$(( $COUNTER * $STEP_SIZE))" second(s).\n" +fi \ No newline at end of file