nanobot/tests/webui/test_mcp_presets_runtime.py

81 lines
2.2 KiB
Python

from __future__ import annotations
from types import SimpleNamespace
from nanobot.webui import mcp_presets_runtime
def test_mcp_preset_runtime_lines_describe_tool_prefix() -> None:
msg = SimpleNamespace(
content="use @browserbase",
metadata={
"mcp_presets": [{
"name": "browserbase",
"display_name": "Browserbase",
"transport": "streamableHttp",
}],
},
)
lines = mcp_presets_runtime.runtime_lines(
msg,
configured_server_names={"browserbase"},
connected_server_names={"browserbase"},
)
assert lines
assert "@browserbase" in lines[0]
assert "mcp_browserbase_" in lines[0]
assert "shell commands" in lines[0]
def test_mcp_preset_runtime_lines_warn_when_restart_needed() -> None:
msg = SimpleNamespace(
content="use @browserbase",
metadata={
"mcp_presets": [{
"name": "browserbase",
"display_name": "Browserbase",
"transport": "streamableHttp",
}],
},
)
lines = mcp_presets_runtime.runtime_lines(
msg,
configured_server_names=set(),
connected_server_names=set(),
)
assert lines
assert "has not loaded the latest MCP settings" in lines[0]
def test_mcp_preset_runtime_lines_warn_when_connection_not_live() -> None:
msg = SimpleNamespace(
content="use @browserbase",
metadata={
"mcp_presets": [{
"name": "browserbase",
"display_name": "Browserbase",
"transport": "streamableHttp",
}],
},
)
lines = mcp_presets_runtime.runtime_lines(
msg,
configured_server_names={"browserbase"},
connected_server_names=set(),
)
assert lines
assert "connection is not currently live" in lines[0]
def test_mcp_preset_session_extra_only_persists_structured_mentions() -> None:
assert mcp_presets_runtime.session_extra({}) == {}
assert mcp_presets_runtime.session_extra({
"mcp_presets": [{"name": "browserbase"}],
}) == {"mcp_presets": [{"name": "browserbase"}]}