update
This commit is contained in:
@@ -220,7 +220,7 @@ def test_det_auftraege_neue_checks():
|
||||
assert "Vertröstungs-Floskel" in qa_text
|
||||
|
||||
|
||||
async def test_fix_fehlschlag_behaelt_befunde(monkeypatch):
|
||||
async def test_fix_fehlschlag_behaelt_auftraege(monkeypatch):
|
||||
import db
|
||||
import fake_agents
|
||||
import guide
|
||||
@@ -232,8 +232,8 @@ async def test_fix_fehlschlag_behaelt_befunde(monkeypatch):
|
||||
b_id = db.insert("bausteine", topic=topic, ziel_id=ziel, titel="B", ord=0, status="neu")
|
||||
db.insert("atome", topic=topic, titel="A", typ="begriff", definition="d",
|
||||
status="neu", baustein_id=b_id, braucht=db.j([]))
|
||||
db.insert("sections", baustein_id=b_id, stage="fix",
|
||||
text_lang="alt", text_kompakt="", befunde=db.j(["Behebe (x): y"]))
|
||||
db.insert("sections", baustein_id=b_id, stage="fix", text_lang="alt", text_kompakt="")
|
||||
au = db.insert("auftraege", baustein_id=b_id, art="falsch", detail="y")
|
||||
# Fix liefert Text OHNE Marker → Marker-Invariante bricht → Fehlschlag-Pfad
|
||||
monkeypatch.setitem(fake_agents._HANDLER, "Guide-Fix",
|
||||
lambda p: {"kompakt": "", "lang": "kein Marker"})
|
||||
@@ -242,7 +242,8 @@ async def test_fix_fehlschlag_behaelt_befunde(monkeypatch):
|
||||
stage = await guide._stage_fix(ctx, db.one("SELECT * FROM bausteine WHERE id=?", (b_id,)))
|
||||
sec = db.one("SELECT * FROM sections WHERE baustein_id=?", (b_id,))
|
||||
assert stage == "done" and sec["text_lang"] == "alt"
|
||||
assert db.uj(sec["befunde"]) == ["Behebe (x): y"] # Aufträge bleiben sichtbar
|
||||
# Auftrag bleibt offen und sichtbar — kein unsichtbar gescheiterter Fix
|
||||
assert db.one("SELECT status FROM auftraege WHERE id=?", (au,))["status"] == "offen"
|
||||
|
||||
|
||||
def test_marker_titel_erzeugen_keine_auftraege():
|
||||
@@ -281,8 +282,9 @@ def test_persistieren_dedup_mit_detail():
|
||||
assert ("A", "offen") in stat and ("B", "repariert") in stat
|
||||
|
||||
|
||||
async def test_fix_offen_in_messen():
|
||||
"""Gescheiterter Fix (stage done, Rest-Aufträge) passiert das Gate nicht mehr."""
|
||||
async def test_auftrag_offen_in_messen():
|
||||
"""Gescheiterter Fix (stage done, offene Aufträge) passiert das Gate nicht mehr;
|
||||
eskalierte falsch/luecke-Aufträge werden als fakten_konflikt sichtbar."""
|
||||
import db
|
||||
import guide
|
||||
import llm
|
||||
@@ -293,11 +295,17 @@ async def test_fix_offen_in_messen():
|
||||
a = db.insert("atome", topic=topic, titel="A", typ="begriff", definition="d",
|
||||
status="neu", baustein_id=b_id, braucht=db.j([]))
|
||||
lang = f"<!-- atom: {a} | A -->\n" + "Wort " * 60
|
||||
db.insert("sections", baustein_id=b_id, stage="done", text_lang=lang,
|
||||
text_kompakt="- p", befunde=db.j(["KRITISCH (luecke): Atom-Inhalt fehlt"]))
|
||||
db.insert("sections", baustein_id=b_id, stage="done", text_lang=lang, text_kompakt="- p")
|
||||
db.insert("auftraege", baustein_id=b_id, art="luecke", detail="Atom-Inhalt fehlt")
|
||||
db.insert("auftraege", baustein_id=b_id, art="falsch", detail="Widerspruch",
|
||||
status="eskaliert")
|
||||
db.insert("auftraege", baustein_id=b_id, art="stil", detail="zäh",
|
||||
status="eskaliert") # eskalierter Stil: stumm (bewusste Rest-Schuld)
|
||||
ctx = llm.Kontext(run_anlegen(topic), topic, "minimax")
|
||||
ctx.ebene = "guide"
|
||||
assert "fix_offen" in {b["art"] for b in guide.messen(ctx)}
|
||||
arten = [b["art"] for b in guide.messen(ctx)]
|
||||
assert arten.count("auftrag_offen") == 1
|
||||
assert arten.count("fakten_konflikt") == 1
|
||||
|
||||
|
||||
async def test_reparieren_bewegt_false_bei_identischem_text(monkeypatch):
|
||||
@@ -315,7 +323,7 @@ async def test_reparieren_bewegt_false_bei_identischem_text(monkeypatch):
|
||||
status="neu", baustein_id=b_id, braucht=db.j([]))
|
||||
lang = f"<!-- atom: {a} | A -->\n" + ("Wort " * 60).strip() # ohne Trailing-Space
|
||||
db.insert("sections", baustein_id=b_id, stage="fix", text_lang=lang,
|
||||
text_kompakt="- p", befunde=db.j(["Behebe (laenge): kürzen"]))
|
||||
text_kompakt="- p")
|
||||
monkeypatch.setitem(fake_agents._HANDLER, "Guide-Fix",
|
||||
lambda p: {"kompakt": "- p", "lang": lang}) # identisch
|
||||
ctx = llm.Kontext(run, topic, "minimax")
|
||||
@@ -408,7 +416,7 @@ async def test_fix_cap_friert_section_ein(monkeypatch):
|
||||
status="neu", baustein_id=b, braucht=db.j([]))
|
||||
lang = f"<!-- atom: {a} | A -->\n" + "Wort " * 60
|
||||
db.insert("sections", baustein_id=b, stage="fix", text_lang=lang, text_kompakt="- p",
|
||||
befunde=db.j([]), fix_versuche=guide.FIX_MAX_VERSUCHE) # schon am Cap
|
||||
fix_versuche=guide.FIX_MAX_VERSUCHE) # schon am Cap
|
||||
ctx = llm.Kontext(run, topic, "minimax")
|
||||
ctx.ebene = "guide"
|
||||
bewegt = await guide.reparieren(
|
||||
|
||||
Reference in New Issue
Block a user