update
This commit is contained in:
@@ -176,6 +176,38 @@ async def test_board1_full_flow(board_env):
|
||||
assert summary["boards"].get("inventory", {}).get("done_block") == 4
|
||||
|
||||
|
||||
async def test_abschluss_qa_events_tragen_run_id(board_env, monkeypatch):
|
||||
"""Abschluss-QA läuft NACH run_flow — ihre Judge-Events müssen trotzdem die run_id
|
||||
des Laufs tragen (Lauf 20260704-1452-b223: run_id leer → aus jeder Aggregation gefallen)."""
|
||||
import asyncio
|
||||
|
||||
import qa as qa_mod
|
||||
db, ctx, files = board_env
|
||||
await _seed(db)
|
||||
|
||||
async def qa_mit_judge_event(topic, llm=False):
|
||||
# wie die echten LLM-Judges: run_agent schreibt ein agent-Event
|
||||
await db.add_event(topic, "agent", key=f"qa-{topic}-bausteine-0", status="ok")
|
||||
return {"note": 10.0, "topic": topic, "quoten": {}, "fremd": [],
|
||||
"artefakte": {"status": "nicht generiert"}}
|
||||
monkeypatch.setattr(qa_mod, "qa_report", qa_mit_judge_event)
|
||||
ok = await asyncio.wait_for(
|
||||
bi.run_boards(ctx, lambda *a, **k: None, files, {"type": "thema"}, None, "", research=False),
|
||||
timeout=30)
|
||||
assert ok
|
||||
summary = json.loads((files["arbeit"] / "lauf-summary.json").read_text(encoding="utf-8"))
|
||||
conn = await db.get_db()
|
||||
rows = await (await conn.execute(
|
||||
"SELECT run_id FROM events WHERE topic=? AND key=?",
|
||||
(TOPIC, f"qa-{TOPIC}-bausteine-0"))).fetchall()
|
||||
assert rows and all(r[0] == summary["run_id"] for r in rows)
|
||||
# Registry nach dem Lauf geleert: manuelle QA bleibt korrekt ohne run_id
|
||||
await db.add_event(TOPIC, "agent", key="qa-manuell", status="ok")
|
||||
row = await (await conn.execute(
|
||||
"SELECT run_id FROM events WHERE topic=? AND key='qa-manuell'", (TOPIC,))).fetchone()
|
||||
assert row[0] == ""
|
||||
|
||||
|
||||
async def test_filter_judges_run_parallel(board_env, monkeypatch):
|
||||
"""40 Blöcke → 2 Filter-Chunks: die Judge-Welle muss parallel laufen (Perf-Fix)."""
|
||||
import asyncio
|
||||
|
||||
Reference in New Issue
Block a user