scripts/test_plans_wp15.py aktualisiert
All checks were successful
Deploy Trainer_LLM to llm-node / deploy (push) Successful in 1s
All checks were successful
Deploy Trainer_LLM to llm-node / deploy (push) Successful in 1s
This commit is contained in:
parent
3806f4ac47
commit
1dbcf33540
|
|
@ -110,11 +110,47 @@ def test_template_sections_ideal_supplement_roundtrip():
|
||||||
# ---------- Optional: Qdrant-Payload-Check (materialisierte Felder) ----------
|
# ---------- Optional: Qdrant-Payload-Check (materialisierte Felder) ----------
|
||||||
|
|
||||||
def test_qdrant_materialized_fields_template():
|
def test_qdrant_materialized_fields_template():
|
||||||
# Wenn Qdrant nicht erreichbar ist, Test überspringen
|
"""
|
||||||
|
Robust: Erst frisches Template anlegen (mit neuen Feldern), dann Qdrant-Scroll
|
||||||
|
mit Filter auf genau diese Template-ID. So treffen wir sicher einen Punkt,
|
||||||
|
der die materialisierten Felder enthält – unabhängig von älteren Datensätzen.
|
||||||
|
"""
|
||||||
|
# 1) Frisches Template erzeugen (mit ideal/supplement)
|
||||||
|
tpl = {
|
||||||
|
"name": "Std 90 v1.1 – materialized-check",
|
||||||
|
"discipline": "Karate",
|
||||||
|
"age_group": "Teenager",
|
||||||
|
"target_group": "Breitensport",
|
||||||
|
"total_minutes": 90,
|
||||||
|
"sections": [
|
||||||
|
{
|
||||||
|
"name": "Warmup",
|
||||||
|
"target_minutes": 15,
|
||||||
|
"must_keywords": ["Reaktion"],
|
||||||
|
"ideal_keywords": ["Koordination"],
|
||||||
|
"supplement_keywords": ["Teamspiel"],
|
||||||
|
"forbid_keywords": [],
|
||||||
|
"capability_targets": {"Reaktionsfähigkeit": 2}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"goals": ["Technik"],
|
||||||
|
"equipment_allowed": ["Bälle"],
|
||||||
|
"created_by": "tester",
|
||||||
|
"version": "1.1"
|
||||||
|
}
|
||||||
|
r = requests.post(f"{BASE}/plan_templates", json=tpl)
|
||||||
|
assert r.status_code == 200, r.text
|
||||||
|
tpl_id = r.json()["id"]
|
||||||
|
|
||||||
|
# 2) Qdrant gezielt nach genau diesem Punkt scrollen (Payload enthält id)
|
||||||
try:
|
try:
|
||||||
rq = requests.post(
|
rq = requests.post(
|
||||||
f"{QDRANT}/collections/{TPL_COLL}/points/scroll",
|
f"{QDRANT}/collections/{TPL_COLL}/points/scroll",
|
||||||
json={"with_payload": True, "limit": 1},
|
json={
|
||||||
|
"with_payload": True,
|
||||||
|
"limit": 1,
|
||||||
|
"filter": {"must": [{"key": "id", "match": {"value": tpl_id}}]}
|
||||||
|
},
|
||||||
timeout=2.0,
|
timeout=2.0,
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|
@ -126,10 +162,9 @@ def test_qdrant_materialized_fields_template():
|
||||||
js = rq.json()
|
js = rq.json()
|
||||||
pts = (js.get("result") or {}).get("points") or []
|
pts = (js.get("result") or {}).get("points") or []
|
||||||
if not pts:
|
if not pts:
|
||||||
pytest.skip("Keine Punkte in plan_templates – überspringe")
|
pytest.skip("Keine Übereinstimmung in plan_templates – überspringe")
|
||||||
|
|
||||||
payload = pts[0].get("payload") or {}
|
payload = pts[0].get("payload") or {}
|
||||||
# Erwartet: materialisierte Listen vorhanden
|
|
||||||
for key in [
|
for key in [
|
||||||
"section_names",
|
"section_names",
|
||||||
"section_must_keywords",
|
"section_must_keywords",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user