91 lines
2.5 KiB
Bash
Executable File
91 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# 1) Basis-URL Deines FastAPI-Servers
|
|
export BASE_URL="http://localhost:8000"
|
|
|
|
# 2) MediaWiki-Zugangsdaten
|
|
export WIKI_API_URL="https://karatetrainer.net/api.php"
|
|
export WIKI_BOT_USER="LarsS@APIBot"
|
|
export WIKI_BOT_PASSWORD="6snci781sh79tbmvb2u9ld4bkd1i7n5t"
|
|
|
|
echo -e "\n?? Starte Health-Check für MediaWiki…"
|
|
HTTP=$(curl -s -o /dev/null -w '%{http_code}' "${BASE_URL}/import/wiki/health")
|
|
if [[ "$HTTP" != "200" ]]; then
|
|
echo "? Health-Check fehlgeschlagen (HTTP $HTTP)"
|
|
exit 1
|
|
fi
|
|
echo "? MediaWiki-Health OK (200)"
|
|
|
|
echo -e "\n?? Teste MediaWiki-Login…"
|
|
LOGIN_RESP=$(curl -s -X POST "${BASE_URL}/import/wiki/login" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"username\":\"${WIKI_BOT_USER}\",\"password\":\"${WIKI_BOT_PASSWORD}\"}" )
|
|
echo "? Login-Response: $LOGIN_RESP"
|
|
# Optional: prüfen, ob "success" enthalten ist
|
|
if [[ "$LOGIN_RESP" != *"success"* ]]; then
|
|
echo "? MediaWiki-Login fehlgeschlagen"
|
|
exit 1
|
|
fi
|
|
echo "? MediaWiki-Login erfolgreich"
|
|
|
|
echo -e "\n?? Testet bestehenden /exercise-Endpoint…"
|
|
# Collection exercises aufräumen
|
|
curl -s -X DELETE "${BASE_URL}/delete-collection?collection=exercises" || true >/dev/null
|
|
|
|
# Erzeugen
|
|
CREATE=$(curl -s -X POST "${BASE_URL}/exercise" \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{
|
|
"title":"TestÜbung",
|
|
"summary":"Zusammenfassung",
|
|
"short_description":"Kurz",
|
|
"discipline":"Test",
|
|
"age_group":"Erwachsene",
|
|
"target_group":"Tester",
|
|
"min_participants":1,
|
|
"duration_minutes":5,
|
|
"category":"test",
|
|
"purpose":"Demo",
|
|
"execution":"Ausführen",
|
|
"notes":"",
|
|
"preparation":"",
|
|
"method":"",
|
|
"equipment":[]
|
|
}')
|
|
echo "? Create Übung: $CREATE"
|
|
if [[ "$CREATE" != *"TestÜbung"* ]]; then
|
|
echo "? Übung wurde nicht angelegt"
|
|
exit 1
|
|
fi
|
|
echo "? /exercise POST OK"
|
|
|
|
# Auflisten
|
|
LIST=$(curl -s "${BASE_URL}/exercise?discipline=Test")
|
|
if [[ "$LIST" != *"TestÜbung"* ]]; then
|
|
echo "? /exercise GET liefert nicht die TestÜbung"
|
|
exit 1
|
|
fi
|
|
echo "? /exercise GET OK"
|
|
|
|
echo -e "\n?? Testet Embed/Search…"
|
|
# Einen Chunk einbetten
|
|
curl -s -X POST "${BASE_URL}/embed" \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{
|
|
"chunks": [
|
|
{"text":"Hallo Welt","source":"test","source_type":"txt","title":"T","version":"1","related_to":"","tags":[],"owner":""}
|
|
],
|
|
"collection":"default"
|
|
}' >/dev/null
|
|
|
|
# Suche
|
|
SEARCH=$(curl -s "${BASE_URL}/search?query=Hallo")
|
|
if [[ "$SEARCH" != *"Hallo Welt"* ]]; then
|
|
echo "? /search liefert unerwartetes Ergebnis"
|
|
exit 1
|
|
fi
|
|
echo "? /search OK"
|
|
|
|
echo -e "\n?? Alle Tests erfolgreich abgeschlossen!"
|