This commit is contained in:
Team3
2026-07-05 00:54:21 +02:00
parent 219993ffd5
commit db58d52567
5 changed files with 114 additions and 4 deletions

View File

@@ -417,3 +417,29 @@ async def test_laengen_trigger_startet_fix(testdb, tmp_path, monkeypatch):
card.update(stage="fix", gate_info=(await db.list_guide_cards(TOPIC, FMT))[0]["gate_info"])
assert await gb._stage_fix(env, card)
assert "Länge" in seen["auftraege"] and str(gb._writer_budget(1)) in seen["auftraege"]
async def test_repair_karten_setzt_befundkarten_auf_pruefer(testdb, tmp_path, monkeypatch):
"""Guide-Repair: Karten mit QA-Befunden (alle Befundklassen-Formate) → pruefer,
md bleibt; Karten ohne Befund unangetastet. Kein Report → leere Liste."""
import json as _json
import qa as qa_mod
db = testdb
monkeypatch.setattr(qa_mod, "QA_DIR", tmp_path / "qa")
for n in ("alpha", "beta", "gamma"):
await db.upsert_guide_card(TOPIC, FMT, n, n.title())
await db.set_guide_card(TOPIC, FMT, n, stage="done", status="ok", md="<!-- section: X -->\nText")
assert await gb.repair_karten(TOPIC, FMT) == [] # kein Report
tdir = tmp_path / "qa" / TOPIC
tdir.mkdir(parents=True)
(tdir / "guide-20260705-000000.json").write_text(_json.dumps({
"marker_fehlend": ["Alpha · sub eins"],
"fachlich_falsch": ["Beta"],
"ziel_ohne_anker": [], "laengen_ausreisser": [], "redundanz": [], "lesbarkeit": [],
}), encoding="utf-8")
betroffen = await gb.repair_karten(TOPIC, FMT)
assert sorted(betroffen) == ["Alpha", "Beta"]
cards = {c["block_norm"]: c for c in await db.list_guide_cards(TOPIC, FMT)}
assert cards["alpha"]["stage"] == cards["beta"]["stage"] == "pruefer"
assert cards["alpha"]["md"] # Text bleibt — der Prüfer arbeitet auf dem Bestand
assert cards["gamma"]["stage"] == "done"