Spaces:
Sleeping
Sleeping
| # Full API integration (CI-style): eager Celery + mock video + full HTTP suite. | |
| LOG_FILE="full_api_suite.log" | |
| REPORT_FILE="full_api_test_report.md" | |
| JSON_RESULTS="temp_suite_results.json" | |
| JUNIT="pytest_api_suite.xml" | |
| echo "=== Starting Full API Suite Test ($(date)) ===" >"$LOG_FILE" | |
| trap 'echo "[INFO] Cleaning up processes..."; kill $SERVER_PID 2>/dev/null; sleep 1' EXIT | |
| echo "[INFO] Starting Backend Server (EAGER + MOCK_VIDEO)..." | tee -a "$LOG_FILE" | |
| export ALLOW_TEST_BYPASS=true | |
| export LOG_LEVEL=info | |
| export CELERY_TASK_ALWAYS_EAGER=true | |
| export CELERY_RESULT_BACKEND=rpc:// | |
| export MOCK_VIDEO=true | |
| PYTHONPATH=. venv/bin/python -m uvicorn app.main:app --port 8000 >server_debug.log 2>&1 & | |
| SERVER_PID=$! | |
| echo "[INFO] Waiting for server (PID: $SERVER_PID)..." | tee -a "$LOG_FILE" | |
| for i in {1..20}; do | |
| if curl -s http://localhost:8000/ >/dev/null; then | |
| echo "[INFO] Server is READY." | tee -a "$LOG_FILE" | |
| break | |
| fi | |
| sleep 2 | |
| done | |
| echo "[INFO] Preparing fresh test data..." | tee -a "$LOG_FILE" | |
| PREP_OUTPUT=$(PYTHONPATH=. venv/bin/python scripts/prepare_api_test.py) | |
| export TEST_USER_ID=$(echo "$PREP_OUTPUT" | grep "RESULT:USER_ID=" | cut -d'=' -f2) | |
| export TEST_SESSION_ID=$(echo "$PREP_OUTPUT" | grep "RESULT:SESSION_ID=" | cut -d'=' -f2) | |
| if [ -z "$TEST_USER_ID" ]; then | |
| echo "[ERROR] Failed to prepare test data." | tee -a "$LOG_FILE" | |
| exit 1 | |
| fi | |
| echo "[INFO] Executing API tests (smoke + full suite)..." | tee -a "$LOG_FILE" | |
| PYTHONPATH=. venv/bin/python -m pytest tests/test_api_real_e2e.py tests/test_api_full_suite.py \ | |
| -m "real_api" -s --tb=short --junitxml="$JUNIT" >>"$LOG_FILE" 2>&1 | |
| TEST_EXIT_CODE=$? | |
| echo "[INFO] Generating Markdown Report..." | tee -a "$LOG_FILE" | |
| if [ -f "$JSON_RESULTS" ]; then | |
| PYTHONPATH=. venv/bin/python scripts/generate_report.py "$JSON_RESULTS" "$REPORT_FILE" "$JUNIT" | |
| else | |
| echo "[WARN] $JSON_RESULTS not found" | tee -a "$LOG_FILE" | |
| fi | |
| echo "==========================================" | tee -a "$LOG_FILE" | |
| echo "DONE. Check $REPORT_FILE for results." | tee -a "$LOG_FILE" | |
| echo "==========================================" | tee -a "$LOG_FILE" | |
| exit $TEST_EXIT_CODE | |