def test_acceptance_e_options_mirror_payload_exposes_recent_skips_and_cap_flag(): """When the per-account pct cap yields zero contracts, the mirror payload surfaces a ``recent_skips`` row carrying the budget_source + a ``cap_zero_contracts`` predicate.""" from rtrader.services import tide_wave_dashboard as TWD trading_day = "2026-08-05" # A synthetic ledger with TWO skip rows: one with budget_source="per_account_pct" and # skip_reason="premium_over_budget" (the operator's zero-contracts case), one with # budget_source="legacy_fixed" (irrelevant to the flag). The flag must be True. fake_rows = [ {"action": "skip", "skip_reason": "premium_over_budget", "event_et": "2026-08-05T13:45:00-04:00", "right": "call", "trigger_event": "manual_up", "detail": {"budget_source": "per_account_pct", "pct_equity_option": 0.05, "real_equity_usd": 24529.0, "mid": 1.05, "contract": "IWM260805C00296000"}}, {"action": "skip", "skip_reason": "day_notional_cap", "event_et": "2026-08-05T13:50:00-04:00", "right": "put", "trigger_event": "manual_down", "detail": {"budget_source": "legacy_fixed", "mid": 0.95, "contract": "IWM260805P00296000"}}, {"action": "open", "skip_reason": None, "event_et": "2026-08-05T13:30:00-04:00", "right": "call", "trigger_event": "auto_roll_up", "detail": {}}, ] def _coll(name): coll = MagicMock() if name == TWD._OPTIONS_MIRROR_COLLECTION: coll.find.return_value = fake_rows return coll return MagicMock() class _Ctx: def __getitem__(self, name): return _coll(name) db_factory = lambda: _Ctx() policy_map = {CUIXIA: "exact_mirror"} # The broker factory is never invoked (active_day=False). with patch.object(TWD, "_default_db_factory", return_value=_Ctx()), \ patch.object(TWD, "_options_active_day", return_value="2099-01-01"), \ patch("rtrader.services.plugins.odte_iwm_mirror.resolve_policy_map", return_value=policy_map): payload = TWD.options_mirror_payload( trading_day, db_factory=db_factory, active_day=False, ) assert payload["ok"] is True cuixia_account = payload["accounts"][CUIXIA] # Acceptance (e): the cap_zero_contracts predicate flips when the budget_source is the # per-account pct path AND the reason is premium_over_budget / day_notional_cap. > assert cuixia_account["cap_zero_contracts"] is True E assert False is True tests/services/test_equity_split.py:342: AssertionError