#!/bin/bash # Lance les tests unitaires de l'API # Ce script lance un serveur scodoc sur le port 5555 # attend qu'il soit initialisé puis lance les tests client API. # # E. Viennet, Fev 2023 cd /opt/scodoc # suppose que le virtual env est bien configuré # Utilise un port spécifique pour pouvoir lancer ce test sans couper # le serveur de dev PORT=5555 SERVER_LOG=/tmp/test_api_server.log export SCODOC_URL="http://localhost:${PORT}" # ------- Check pas de serveur déjà lancé if nc -z localhost "$PORT" then fuser -v "$PORT"/tcp echo Server already running on port "$PORT" echo You may want to try: fuser -k "$PORT"/tcp echo aborting tests exit 1 fi tests/api/start_api_server.sh -p "$PORT" &> "$SERVER_LOG" & pid=$! echo "ScoDoc test server logs are in $SERVER_LOG" # Wait for server setup echo -n "Waiting for server" while ! nc -z localhost "$PORT"; do echo -n . sleep 1 done echo echo Server PID "$pid" running on port "$PORT" # ------------------ pytest tests/api # ------------------ echo "Killing server" kill "$pid" fuser -k "$PORT"/tcp