fix: close broker uncertainty audit gaps

This commit is contained in:
jordan
2026-07-29 17:53:39 +09:00
parent de1e3eb44c
commit 611805dcec
19 changed files with 236 additions and 42 deletions
@@ -40,6 +40,7 @@ class ProgrammableBroker:
)
self.polls = 0
self.balance = {"005930": 10}
self.cancel_calls = 0
def name(self):
return "stub"
@@ -53,6 +54,7 @@ class ProgrammableBroker:
return self.responder(side)
def cancel_order(self, broker_order_id, *, side, symbol, qty, venue="KRX"):
self.cancel_calls += 1
return CancelOutcome(CancelState.REQUESTED)
def get_balance(self):
@@ -159,3 +161,20 @@ def test_stale_watchdog_disabled_by_default():
repo._slots[sid] = replace(s, updated_at=datetime.now(tz=timezone.utc) - timedelta(seconds=9999))
r = execution.run_once()
assert r.stale_pending == 0 # disabled => never warns
def test_operator_cancel_is_sent_once_across_repeat_and_restart():
broker = ProgrammableBroker()
repo, svc, intents, execution, _, _ = _wire(broker)
sid = _buy_to_holding(intents, execution)
intents.submit_sell(SellIntent(intent_id="s1", slot_id=sid))
broker.responder = lambda side: FillStatus(state="accepted")
execution.run_once()
assert execution.cancel_pending_slot(sid) == "ok"
assert execution.cancel_pending_slot(sid) == "cancel_already_recorded"
restarted = ExecutionService(svc, repo, broker)
assert restarted.cancel_pending_slot(sid) == "cancel_already_recorded"
assert broker.cancel_calls == 1
assert repo.fetch_slot(sid).cancel_state == CancelState.REQUESTED.value