From 08ccceacb65e1d90d3008111163e44ade2f3bb17 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 2 Jul 2026 19:37:18 +0800 Subject: [PATCH] fix(stockplatform): load runtime before recovery preflight --- apps/api/src/api/v1/agents.py | 6 +++++- ...ublic_api_controlled_recovery_preflight.py | 20 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/apps/api/src/api/v1/agents.py b/apps/api/src/api/v1/agents.py index 17e0f927..2f7b8ed3 100644 --- a/apps/api/src/api/v1/agents.py +++ b/apps/api/src/api/v1/agents.py @@ -1207,8 +1207,12 @@ async def get_stockplatform_public_api_runtime_readback() -> dict[str, Any]: async def get_stockplatform_public_api_controlled_recovery_preflight() -> dict[str, Any]: """回傳 StockPlatform public API controlled recovery preflight。""" try: + runtime_readback = await asyncio.to_thread( + load_latest_stockplatform_public_api_runtime_readback + ) payload = await asyncio.to_thread( - load_latest_stockplatform_public_api_controlled_recovery_preflight + load_latest_stockplatform_public_api_controlled_recovery_preflight, + runtime_readback=runtime_readback, ) return redact_public_lan_topology(payload) except (json.JSONDecodeError, ValueError) as exc: diff --git a/apps/api/tests/test_stockplatform_public_api_controlled_recovery_preflight.py b/apps/api/tests/test_stockplatform_public_api_controlled_recovery_preflight.py index 463e7e4f..864d77be 100644 --- a/apps/api/tests/test_stockplatform_public_api_controlled_recovery_preflight.py +++ b/apps/api/tests/test_stockplatform_public_api_controlled_recovery_preflight.py @@ -188,13 +188,25 @@ def test_stockplatform_controlled_recovery_preflight_endpoint_returns_payload( monkeypatch, tmp_path: Path, ): + runtime_payload = _runtime_blocked() + + monkeypatch.setattr( + agents, + "load_latest_stockplatform_public_api_runtime_readback", + lambda: runtime_payload, + ) + + def _load_preflight(*, runtime_readback: dict): + assert runtime_readback is runtime_payload + return load_latest_stockplatform_public_api_controlled_recovery_preflight( + runtime_readback=runtime_readback, + route_source_path=_route_source(tmp_path), + ) + monkeypatch.setattr( agents, "load_latest_stockplatform_public_api_controlled_recovery_preflight", - lambda: load_latest_stockplatform_public_api_controlled_recovery_preflight( - runtime_readback=_runtime_blocked(), - route_source_path=_route_source(tmp_path), - ), + _load_preflight, ) app = FastAPI() app.include_router(router, prefix="/api/v1")