1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Upgrade generic graph navigation

This commit is contained in:
Andraxion 2026-07-24 21:43:11 -04:00
parent 8ac4fe2a67
commit 5e77cd2adb
13 changed files with 657 additions and 65 deletions

View file

@ -11,7 +11,14 @@ from mcp.client.stdio import stdio_client
from mcp.shared.memory import create_connected_server_and_client_session
from docforge.index import ProjectIndex
from docforge.mcp_server import ALL_TOOLS, CONTENT_WARNING, PROPOSAL_TOOLS, create_server
from docforge.mcp_server import (
ALL_TOOLS,
CONTENT_WARNING,
PROPOSAL_TOOLS,
DocForgeService,
_create_bound_server,
create_server,
)
from docforge.project import Project
ROOT = Path(__file__).resolve().parents[1]
@ -62,10 +69,16 @@ class DocForgeMcpTests(unittest.IsolatedAsyncioTestCase):
("docforge_render_status", {}),
("docforge_visualize", {"node_id": "guide.workflow", "depth": 1}),
)
async with create_connected_server_and_client_session(
create_server(root), raise_exceptions=True
) as session:
results = [await session.call_tool(name, arguments) for name, arguments in calls]
service = DocForgeService(Project.open(root))
try:
async with create_connected_server_and_client_session(
_create_bound_server(service, read_only=True), raise_exceptions=True
) as session:
results = [
await session.call_tool(name, arguments) for name, arguments in calls
]
finally:
service.visualization.stop()
for result in results:
self.assertFalse(result.isError)
@ -88,7 +101,8 @@ class DocForgeMcpTests(unittest.IsolatedAsyncioTestCase):
visualization = results[11].structuredContent["visualization"]
self.assertTrue(visualization["read_only"])
self.assertTrue(visualization["project_bound"])
self.assertEqual("graph-browser@4", visualization["template"])
self.assertEqual("graph-browser@5", visualization["template"])
self.assertEqual("browser_lease", visualization["lifetime"]["policy"])
self.assertTrue(visualization["url"].startswith("http://127.0.0.1:"))
context = results[8].structuredContent
self.assertLessEqual(context["estimated_tokens"], 180)