test(agent): cover default API session header

This commit is contained in:
jxxghp
2026-09-11 16:40:16 +08:00
parent 2bd9df3ef4
commit d6bcedd3e0

View File

@@ -5,6 +5,7 @@ from unittest.mock import AsyncMock, MagicMock, patch
from app.agent.api.executor import ApiExecutionContext, MoviePilotApiExecutor
from app.agent.tools.base import format_tool_result_for_agent
from app.agent.tools.manager import MoviePilotToolsManager
from app.schemas.types import NotificationChannel
@@ -81,6 +82,27 @@ def test_executor_keeps_non_collection_payload_unchanged_without_headers() -> No
close.assert_awaited_once()
def test_manager_default_session_id_is_http_header_compatible() -> None:
"""HTTP API 工具管理器生成的默认会话标识必须是可发送的字符串。"""
manager = MoviePilotToolsManager(user_id="1")
executor = MoviePilotApiExecutor(
context=ApiExecutionContext(
user_id="1",
username="admin",
is_admin=True,
session_id=manager.session_id,
)
)
with patch("app.agent.api.executor.create_access_token", return_value="token"):
headers = executor._build_headers()
session_header = headers["X-MoviePilot-Agent-Session"]
assert isinstance(manager.session_id, str)
assert isinstance(session_header, str)
assert session_header == manager.session_id
def test_executor_keeps_collection_total_visible_in_truncated_tool_preview() -> None:
"""列表内容过大时,精确总数必须位于截断预览开头供 Agent 直接使用。"""
response = SimpleNamespace(