Files
hermes-webui/tests/test_webui_notes_sources.py
T
2026-05-18 09:28:11 -04:00

42 lines
1.8 KiB
Python

"""Regression tests for WebUI notes source discovery."""
from __future__ import annotations
def test_notes_sources_identifies_note_or_knowledge_mcp_servers():
from api.routes import _notes_sources_from_mcp_inventory
servers = {
"joplin": {"name": "joplin", "enabled": True, "active": True, "status": "healthy"},
"filesystem": {"name": "filesystem", "enabled": True, "active": True, "status": "healthy"},
"llm-wiki": {"name": "llm-wiki", "enabled": True, "active": False, "status": "configured"},
}
tools = [
{"server": "joplin", "name": "search_notes", "description": "Search notes by keyword"},
{"server": "joplin", "name": "get_note", "description": "Get full note content"},
{"server": "filesystem", "name": "read_text_file", "description": "Read files"},
{"server": "llm-wiki", "name": "query_knowledge_base", "description": "Search wiki knowledge"},
]
sources = _notes_sources_from_mcp_inventory(servers, tools)
assert [source["name"] for source in sources] == ["joplin", "llm-wiki"]
assert sources[0]["label"] == "Joplin"
assert sources[0]["tool_count"] == 2
assert sources[0]["active"] is True
assert sources[1]["active"] is False
def test_notes_sources_redacts_tool_descriptions_and_omits_plain_file_tools():
from api.routes import _notes_sources_from_mcp_inventory
servers = {"notion": {"name": "notion", "enabled": True, "active": True, "status": "healthy"}}
tools = [
{"server": "notion", "name": "search_pages", "description": "Search notes token=abc123SECRET"},
]
[source] = _notes_sources_from_mcp_inventory(servers, tools)
assert source["name"] == "notion"
assert "token" not in source["tools"][0]["description"].lower()
assert "[REDACTED]" in source["tools"][0]["description"]