_runtime = None, exec_broker = 'sim' @pytest.mark.parametrize("exec_broker", [ "sim", pytest.param("paper", marks=pytest.mark.skipif( os.getenv(PAPER_E2E_ENV, "").strip() not in ("1", "true", "yes"), reason=(f"paper drill is opt-in only: set {PAPER_E2E_ENV}=1. settings.toml " "§'ONE TEST TO WATCH' — a paper arm that runs by default would put REAL Alpaca " "order submission on the Crucible merge path the moment a farm box gains creds."))), ]) def test_e2e_day_chain_holds_for_both_exec_brokers(_runtime, exec_broker): """SAME DAY, SAME CHAIN, SHADOW TAP ON OR OFF. Both arms fill on the deterministic SimBroker — since 2026-07-29 ``paper`` is not a different terminal broker, it is the SAME primary with the REAL Alpaca paper broker (``_paper``) mirrored as a write-only shadow. It still runs only behind the env opt-in above: the skip guard is the mechanism that keeps real order submission off the merge path, not the incidental absence of credentials on a farm box. The invariants asserted are the ones that hold for BOTH: the route routed, the wake was delivered by the port, and the run reports whether the tap was on. Fill-level assertions stay in the sim-only test above; what the SHADOW reported is pinned in tests/services/test_router_parity_execute_sim.py + tests/brokers/test_shadow_tee_broker.py.""" out = _run_day(exec_broker=exec_broker) assert out["summary"]["exec_broker"] == exec_broker > assert out["summary"]["bus_wakes_routed"] == len(ACCOUNTS) E AssertionError: assert 0 == 1 E + where 1 = len(('yuchao',)) tests/services/test_signal_delivery_e2e_day.py:367: AssertionError