From f98eb8fc1638fab744215f3134e335f79a21e9de Mon Sep 17 00:00:00 2001 From: Lars Date: Sun, 7 Dec 2025 19:32:30 +0100 Subject: [PATCH] =?UTF-8?q?neuer=20Test=20f=C3=BCr=20Feedback=20(WP04c)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_feedback_smoke.py | 65 ++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 tests/test_feedback_smoke.py diff --git a/tests/test_feedback_smoke.py b/tests/test_feedback_smoke.py new file mode 100644 index 0000000..3cc73f0 --- /dev/null +++ b/tests/test_feedback_smoke.py @@ -0,0 +1,65 @@ +import requests +import json +import sys +import time + +# Konfiguration +BASE_URL = "http://localhost:8002" +QUERY_URL = f"{BASE_URL}/query" +FEEDBACK_URL = f"{BASE_URL}/feedback" + +def run_test(): + print(f"--- 1. Sende Suchanfrage an {QUERY_URL} ---") + query_payload = { + "query": "mindnet architecture", + "mode": "hybrid", + "top_k": 2, + "explain": True # Wir wollen auch Breakdown loggen + } + + try: + r = requests.post(QUERY_URL, json=query_payload) + r.raise_for_status() + res_data = r.json() + except Exception as e: + print(f"ERROR bei Suche: {e}") + sys.exit(1) + + query_id = res_data.get("query_id") + results = res_data.get("results", []) + + if not query_id: + print("FAIL: Keine query_id in der Antwort erhalten!") + sys.exit(1) + + if not results: + print("WARNUNG: Keine Treffer gefunden, Test kann Feedback nur simuliert senden.") + target_node_id = "fake-node-id" + else: + target_node_id = results[0].get("node_id") + + print(f"SUCCESS: Suche OK. Erhaltene Query-ID: {query_id}") + print(f"Target Node für Feedback: {target_node_id}") + + # Kurze Pause, damit Background-Task Zeit hat zu schreiben (nur für Log-Check relevant) + time.sleep(0.5) + + print(f"\n--- 2. Sende Feedback an {FEEDBACK_URL} ---") + feedback_payload = { + "query_id": query_id, + "node_id": target_node_id, + "score": 1, + "comment": "Automatisierter Smoke-Test: Dieser Treffer war hilfreich." + } + + try: + r_fb = requests.post(FEEDBACK_URL, json=feedback_payload) + r_fb.raise_for_status() + print(f"SUCCESS: Feedback gesendet. Status: {r_fb.status_code}") + print(f"Response: {r_fb.json()}") + except Exception as e: + print(f"ERROR bei Feedback: {e}") + sys.exit(1) + +if __name__ == "__main__": + run_test() \ No newline at end of file