diff --git a/tests/test_wp06_decision.py b/tests/test_wp06_decision.py index d0adf0d..be3e74b 100644 --- a/tests/test_wp06_decision.py +++ b/tests/test_wp06_decision.py @@ -1,14 +1,14 @@ """ tests/test_wp06_decision.py — Flexibler Integrationstest für WP-06 Führt eine Entscheidungsfrage gegen die API aus. -Unterstützt Parameter für Frage und Port. +Unterstützt Parameter für Frage, Port und erwarteten Intent. """ import requests import json import sys import argparse -def test_decision_engine(query: str, port: int): +def test_decision_engine(query: str, port: int, expected_intent: str): api_url = f"http://localhost:{port}" print(f"🔵 Starte WP-06 Decision Engine Test gegen {api_url}...\n") @@ -31,8 +31,9 @@ def test_decision_engine(query: str, port: int): # 1. Intent Check intent = data.get("intent", "UNKNOWN") - print(f"\n1. INTENT DETECTION: [{'✅' if intent == 'DECISION' else '❌'}]") - print(f" Erkannt: {intent}") + match = intent == expected_intent + print(f"\n1. INTENT DETECTION: [{'✅' if match else '❌'}]") + print(f" Erkannt: {intent} (Erwartet: {expected_intent})") # 2. Source Check (Strategic Retrieval) sources = data.get("sources", []) @@ -52,11 +53,10 @@ def test_decision_engine(query: str, port: int): # Marker für Ausgabe marker = " " - if node_type in ["value", "principle", "goal"]: + # Wir prüfen hier generisch auf alle strategischen Typen + if node_type in ["value", "principle", "goal", "experience", "belief", "profile"]: marker = "🎯" # Strategischer Treffer strategic_hits.append(title) - elif node_type in ["decision", "experience"]: - marker = "🧠" else: marker = "📄" fact_hits.append(title) @@ -67,7 +67,7 @@ def test_decision_engine(query: str, port: int): if strategic_hits: print(f"\n ✅ ERFOLG: Strategische Quellen geladen: {strategic_hits}") else: - print(f"\n ⚠️ WARNUNG: Keine strategischen Quellen (Value/Principle/Goal) gefunden.") + print(f"\n ℹ️ INFO: Keine strategischen Quellen (Value/Experience/etc.) gefunden.") # 3. Reasoning Check (LLM Antwort) answer = data.get("answer", "") @@ -91,7 +91,10 @@ if __name__ == "__main__": parser.add_argument("--port", "-p", type=int, default=8002, help="Der Port der API (Default: 8002 für Dev).") + parser.add_argument("--expect", "-e", type=str, + default="DECISION", + help="Der erwartete Intent (z.B. DECISION, EMPATHY).") args = parser.parse_args() - test_decision_engine(args.query, args.port) \ No newline at end of file + test_decision_engine(args.query, args.port, args.expect) \ No newline at end of file