Harden the PEP harness and KeyCape registration request
Close remaining in-repo APPROVAL-WP-0002 gaps: drive GH-DEC-2026-003 against the real HTTP surface, fail closed on JWT/human-consume/static-token paths, treat audit 200 duplicates as drained, and ask KeyCape for the production audience and client grants. Assistant: grok Assistant-Session: 01a06253-e557-7971-93d9-4f4c2cfbf455
This commit is contained in:
parent
2bd2d19a98
commit
2370f69927
11 changed files with 588 additions and 46 deletions
|
|
@ -45,6 +45,41 @@ def test_audit_sender_adapts_envelope_and_rereads_token(tmp_path):
|
|||
engine.close()
|
||||
|
||||
|
||||
def test_duplicate_audit_status_marks_drained(tmp_path):
|
||||
token = tmp_path / "token"
|
||||
token.write_text("token")
|
||||
engine = Engine(":memory:", clock=lambda: FROZEN)
|
||||
approve(engine)
|
||||
sink = AuditCoreSink(
|
||||
"http://audit-core:8080", token, opener=lambda *_args, **_kwargs: Response(200)
|
||||
)
|
||||
result = engine.drain(sink)
|
||||
assert result == {"delivered": 1, "failed": 0}
|
||||
assert engine.undrained() == []
|
||||
engine.close()
|
||||
|
||||
|
||||
def test_httperror_audit_status_remains_pending(tmp_path):
|
||||
from io import BytesIO
|
||||
from urllib.error import HTTPError
|
||||
|
||||
token = tmp_path / "token"
|
||||
token.write_text("token")
|
||||
engine = Engine(":memory:", clock=lambda: FROZEN)
|
||||
approve(engine)
|
||||
|
||||
def opener(request, timeout):
|
||||
raise HTTPError(
|
||||
request.full_url, 503, "unavailable", hdrs=None, fp=BytesIO(b"no")
|
||||
)
|
||||
|
||||
sink = AuditCoreSink("http://audit-core:8080", token, opener=opener)
|
||||
result = engine.drain(sink)
|
||||
assert result == {"delivered": 0, "failed": 1}
|
||||
assert engine.undrained()[0]["last_error"] == "AuditDeliveryError"
|
||||
engine.close()
|
||||
|
||||
|
||||
def test_nonaccepted_audit_status_remains_pending(tmp_path):
|
||||
token = tmp_path / "token"
|
||||
token.write_text("token")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue