File size: 1,060 Bytes
f4f1610 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | from app.plugins.models import PluginStatus
from app.plugins.tool_catalog import ToolCatalogService
class _Registry:
def get_tool_docs(self):
return {
"demo_plugin_run": {
"plugin": "demo_plugin",
"tool": "run",
"title": "运行任务",
"description": "执行演示任务",
"availability": "available",
"unavailable_reason": None,
"incomplete_reasons": None,
}
}
class _PluginManager:
def get_plugin_status(self, plugin_name: str):
return PluginStatus.ENABLED
def get_unavailable_reason(self, plugin_name: str):
return None
def test_sync_mcp_tools_adds_registered_tools_to_catalog():
service = ToolCatalogService()
service.sync_mcp_tools(_Registry(), _PluginManager())
tools = service.get_all_tools()
assert len(tools) == 1
assert tools[0].name == "demo_plugin_run"
assert tools[0].source == "mcp"
assert tools[0].plugin_name == "demo_plugin"
|