Implement approval engine production readiness
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a05e2e-805b-7042-a750-71f473bceea2
This commit is contained in:
parent
ebce5abb27
commit
2bd2d19a98
30 changed files with 1679 additions and 53 deletions
|
|
@ -82,3 +82,19 @@ def test_failed_outbox_rolls_back_consume(engine):
|
|||
pass
|
||||
assert engine.get(obj.id).status == "approved"
|
||||
assert all(item["class"] != "use" for item in engine.undrained())
|
||||
|
||||
|
||||
def test_drain_failure_records_bounded_attempt_state(engine):
|
||||
approve(engine)
|
||||
|
||||
class SensitiveFailure(Exception):
|
||||
pass
|
||||
|
||||
result = engine.drain(lambda _payload: (_ for _ in ()).throw(SensitiveFailure("secret")))
|
||||
assert result["failed"] == 1
|
||||
pending = engine.undrained()
|
||||
assert pending[0]["attempts"] == 1
|
||||
assert pending[0]["last_error"] == "SensitiveFailure"
|
||||
stats = engine.outbox_stats()
|
||||
assert stats["failed_pending"] == 1
|
||||
assert stats["attempts"] == 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue