Files
hkuds--nanobot/tests/agent/test_loop_goal_wall_timeout.py
T
wehub-resource-sync ba1d0b91a4
Test Suite / webui (push) Failing after 1s
Test Suite / test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:06:36 +08:00

50 lines
1.6 KiB
Python

"""Subagent forwards loop-provided LLM wall-timeout resolver into AgentRunSpec."""
from pathlib import Path
from unittest.mock import AsyncMock, MagicMock
import pytest
from nanobot.agent.runner import AgentRunResult
from nanobot.agent.subagent import SubagentManager, SubagentStatus
from nanobot.bus.queue import MessageBus
from nanobot.providers.base import GenerationSettings
from nanobot.utils.llm_runtime import LLMRuntime
@pytest.mark.asyncio
async def test_subagent_forwards_resolver_to_agent_run_spec(tmp_path: Path) -> None:
provider = MagicMock()
provider.get_default_model.return_value = "m"
provider.generation = GenerationSettings()
mgr = SubagentManager(
workspace=tmp_path,
bus=MessageBus(),
max_tool_result_chars=64,
llm_wall_timeout_for_session=lambda sk: 0.0 if sk == "cli:direct" else None,
)
mgr.runner.run = AsyncMock(
return_value=AgentRunResult(final_content="ok", messages=[], stop_reason="completed")
)
mgr._announce_result = AsyncMock()
status = SubagentStatus(
task_id="t1",
label="lbl",
task_description="task",
started_at=0.0,
)
await mgr._run_subagent(
"t1",
"task",
"lbl",
{"channel": "cli", "chat_id": "direct", "session_key": "cli:direct"},
status,
LLMRuntime.capture(provider, "m", context_window_tokens=128_000),
)
mgr.runner.run.assert_called_once()
spec = mgr.runner.run.call_args[0][0]
assert spec.session_key == "cli:direct"
assert spec.llm_timeout_s == 0.0