From 991422a32830a5b6f5fdfd6a223578cf49dee9cf Mon Sep 17 00:00:00 2001 From: chengyongru <2755839590@qq.com> Date: Fri, 19 Jun 2026 01:05:04 +0800 Subject: [PATCH] refactor: simplify CLI Apps route await --- nanobot/webui/settings_routes.py | 8 +------- tests/channels/test_websocket_http_routes.py | 16 ++++++++++------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/nanobot/webui/settings_routes.py b/nanobot/webui/settings_routes.py index 3d04bfb9..b66c2b6e 100644 --- a/nanobot/webui/settings_routes.py +++ b/nanobot/webui/settings_routes.py @@ -8,7 +8,6 @@ request mapping and response shaping. from __future__ import annotations import asyncio -import inspect import json from collections.abc import Callable from typing import Any @@ -310,12 +309,7 @@ class WebUISettingsRouter: "yes", } try: - payload_result = ( - cli_apps_payload(installed_only=True) - if installed_only - else cli_apps_payload() - ) - payload = await payload_result if inspect.isawaitable(payload_result) else payload_result + payload = await cli_apps_payload(installed_only=installed_only) except Exception: self.logger.exception("failed to load CLI Apps payload") return self._error_response(500, "failed to load CLI Apps") diff --git a/tests/channels/test_websocket_http_routes.py b/tests/channels/test_websocket_http_routes.py index f29ba737..16674092 100644 --- a/tests/channels/test_websocket_http_routes.py +++ b/tests/channels/test_websocket_http_routes.py @@ -415,9 +415,8 @@ async def test_cli_apps_routes_require_token_and_return_payload( tmp_path: Path, monkeypatch: pytest.MonkeyPatch, ) -> None: - monkeypatch.setattr( - "nanobot.webui.settings_routes.cli_apps_payload", - lambda: { + async def payload(*, installed_only: bool = False) -> dict[str, Any]: + return { "apps": [ { "name": "gimp", @@ -438,7 +437,11 @@ async def test_cli_apps_routes_require_token_and_return_payload( ], "installed_count": 0, "catalog_updated_at": "2026-04-18", - }, + } + + monkeypatch.setattr( + "nanobot.webui.settings_routes.cli_apps_payload", + payload, ) monkeypatch.setattr( "nanobot.webui.settings_routes.cli_apps_action", @@ -487,7 +490,8 @@ async def test_cli_apps_catalog_does_not_block_other_webui_http_routes( entered = asyncio.Event() release = asyncio.Event() - async def slow_payload() -> dict[str, Any]: + async def slow_payload(*, installed_only: bool = False) -> dict[str, Any]: + assert installed_only is False entered.set() with suppress(asyncio.TimeoutError): await asyncio.wait_for(release.wait(), 2.0) @@ -532,7 +536,7 @@ async def test_cli_apps_route_supports_installed_only_payload( ) -> None: calls: list[bool] = [] - def payload(*, installed_only: bool = False) -> dict[str, Any]: + async def payload(*, installed_only: bool = False) -> dict[str, Any]: calls.append(installed_only) return {"apps": [], "installed_count": 0, "catalog_updated_at": None}