Implement P05 checked services and safe selected delivery recovery
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a092fe-13b1-7f12-ac74-7d258af4d79c
This commit is contained in:
parent
99618488e0
commit
ac0eb14b75
15 changed files with 735 additions and 88 deletions
|
|
@ -22,6 +22,16 @@ if not chrome:
|
|||
if not chrome or not shutil.which('node'):
|
||||
raise SystemExit('Chromium and Node are required; set JOURNEY_CHROME to the Chromium executable. Browser tests were not run.')
|
||||
fixture=FactorRecoveryJourney();fixture.setUp();fixture.member(email='actual.login@example.test')
|
||||
from user_engine.domain import OutboxEvent
|
||||
fixture.app.service.store.append_outbox(OutboxEvent(event_id="p05-browser", event_type="family_member.invited", aggregate_id="fixture", tenant="tenant:trial:demo-company", correlation_id="p05-browser", payload={"primary_email":"fixture@example.test", "invitation_id":"fixture"}))
|
||||
class Delivery:
|
||||
attempts = 0
|
||||
def __call__(self, event):
|
||||
self.attempts += 1
|
||||
if self.attempts == 1: raise RuntimeError("synthetic outage")
|
||||
def mail_delivery_status(self, event_id):
|
||||
return {"state":"failed" if self.attempts == 1 else "provider_accepted" if self.attempts else "not_found"}
|
||||
fixture.app.outbox_delivery = Delivery()
|
||||
class Quiet(WSGIRequestHandler):
|
||||
def log_message(self,*args):pass
|
||||
server=make_server('127.0.0.1',0,fixture.app,handler_class=Quiet)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue