testserver: speed up seafile integration test

Before every seafile integration test we run Seafile server in docker
environment. We don't have to sleep for 60 seconds to have everything ready before running integration test. We can assume everything is ready when Seafile webserver returns status code 200. Seafile Dockerfile (https://github.com/haiwen/seafile-docker/blob/master/image/seafile/Dockerfile) runs scripts/start.py where is defined that before init_seafile_server() we always wait for mysql wait_for_mysql() (https://github.com/haiwen/seafile-docker/blob/master/scripts/start.py)
This commit is contained in:
Adam Plánský 2020-11-01 00:33:15 +01:00 committed by Nick Craig-Wood
parent af55a74bd2
commit cd2c06f2a7
1 changed files with 14 additions and 2 deletions

View File

@ -21,8 +21,20 @@ COMPOSE_DIR=$(dirname "$0")/seafile
start() {
docker-compose --project-directory ${COMPOSE_DIR} --project-name ${NAME} --file ${COMPOSE_DIR}/docker-compose.yml up -d
# it takes some time for the database to be created
sleep 60
# wait for Seafile server to start
seafile_endpoint="http://${SEAFILE_IP}:${SEAFILE_PORT}/"
wait_seconds=1
echo -n "Waiting for Seafile server to start"
for iterations in `seq 1 60`;
do
http_code=$(curl -s -o /dev/null -L -w '%{http_code}' "$seafile_endpoint" || true;)
if [ "$http_code" -eq 200 ]; then
echo
break
fi
echo -n "."
sleep $wait_seconds
done
# authentication token answer should be like: {"token":"dbf58423f1632b5b679a13b0929f1d0751d9250c"}
TOKEN=`curl --silent \