Upgrade generic graph navigation
This commit is contained in:
parent
8ac4fe2a67
commit
5e77cd2adb
13 changed files with 657 additions and 65 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue