update
This commit is contained in:
48
backend/tests/test_guide_sequenz.py
Normal file
48
backend/tests/test_guide_sequenz.py
Normal file
@@ -0,0 +1,48 @@
|
||||
"""Guide-Ebene der Auto-Sequenz: generieren → QA → Repair-Loop bis 100 %/Stillstand."""
|
||||
import blocks
|
||||
import guide
|
||||
import guide_qa
|
||||
import guide_board
|
||||
|
||||
|
||||
def _patch(monkeypatch, noten, calls):
|
||||
async def fake_gen(*a, **k):
|
||||
calls["gen"] += 1
|
||||
|
||||
async def fake_rep(topic, fmt):
|
||||
calls["rep"] += 1
|
||||
return []
|
||||
|
||||
async def fake_qa(topic, llm=False):
|
||||
return {"note_guide": noten.pop(0) if len(noten) > 1 else noten[0]}
|
||||
|
||||
monkeypatch.setattr(guide, "generate_guide", fake_gen)
|
||||
monkeypatch.setattr(guide_board, "repair_karten", fake_rep)
|
||||
monkeypatch.setattr(guide_qa, "guide_qa_report", fake_qa)
|
||||
|
||||
|
||||
async def test_guide_fertig_ohne_repair(testdb, monkeypatch):
|
||||
blocks._blocks_errors.pop("G1", None)
|
||||
calls = {"gen": 0, "rep": 0}
|
||||
_patch(monkeypatch, [10.0], calls)
|
||||
await blocks._guide_ebene("G1", "", "claude", lambda: False, lambda *a, **k: None)
|
||||
assert calls["gen"] == 1 and calls["rep"] == 0 # nur initial gebaut
|
||||
assert "G1" not in blocks._blocks_errors
|
||||
|
||||
|
||||
async def test_guide_repariert_bis_100(testdb, monkeypatch):
|
||||
blocks._blocks_errors.pop("G2", None)
|
||||
calls = {"gen": 0, "rep": 0}
|
||||
_patch(monkeypatch, [7.0, 10.0], calls) # erst 7.0, nach einem Repair 10.0
|
||||
await blocks._guide_ebene("G2", "", "claude", lambda: False, lambda *a, **k: None)
|
||||
assert calls["rep"] == 1
|
||||
assert "G2" not in blocks._blocks_errors
|
||||
|
||||
|
||||
async def test_guide_stillstand_meldet_systemfehler(testdb, monkeypatch):
|
||||
blocks._blocks_errors.pop("G3", None)
|
||||
calls = {"gen": 0, "rep": 0}
|
||||
_patch(monkeypatch, [6.0], calls) # Repair bewegt die Note nie
|
||||
await blocks._guide_ebene("G3", "", "claude", lambda: False, lambda *a, **k: None)
|
||||
assert "G3" in blocks._blocks_errors
|
||||
assert "Guide" in blocks._blocks_errors["G3"]
|
||||
Reference in New Issue
Block a user