Skip to content

Commit b16ee26

Browse files
committed
remove
1 parent 7d6911d commit b16ee26

File tree

8 files changed

+54
-17
lines changed

8 files changed

+54
-17
lines changed
-210 Bytes
Binary file not shown.
-58.8 KB
Binary file not shown.
-6.54 KB
Binary file not shown.
-327 Bytes
Binary file not shown.
-628 Bytes
Binary file not shown.
-1.96 KB
Binary file not shown.
-9.06 KB
Binary file not shown.

test/test_toolsets.py

Lines changed: 54 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def decorator(func):
3030
sys.modules.setdefault("mcp.server", server_pkg_stub)
3131
sys.modules.setdefault("mcp.server.fastmcp", fastmcp_stub)
3232

33-
from toolsets import (
33+
from alibabacloud_rds_openapi_mcp_server.toolsets.toolsets import (
3434
ToolsetMCP,
3535
initialize_toolsets,
3636
)
@@ -62,7 +62,7 @@ def make_rds_custom(server):
6262
"alibabacloud_rds_openapi_mcp_server.toolsets.rds_custom"
6363
)
6464

65-
@server.mcp.tool()
65+
@server.mcp.tool(group="rds_custom")
6666
async def custom_echo(text: str):
6767
return text
6868

@@ -82,35 +82,72 @@ def dummy_env(monkeypatch):
8282

8383
def test_load_groups_should_assign_tools_to_correct_groups_when_called(dummy_env):
8484
server = dummy_env
85-
from tools import load_groups
85+
from alibabacloud_rds_openapi_mcp_server.toolsets.tool_registry import load_groups
8686

87-
load_groups(server.toolset_manager, server)
87+
load_groups(server.mcp)
8888

8989
groups = server.toolset_manager.groups
9090
assert "rds" in groups
9191
assert server.describe_db_instances in [i.func for i in groups["rds"]]
9292
assert server.describe_db_instance_attribute in [i.func for i in groups["rds"]]
93-
assert "custom" in groups
94-
assert any(i.func.__name__ == "custom_echo" for i in groups["custom"])
93+
assert "rds_custom" in groups
94+
assert any(i.func.__name__ == "custom_echo" for i in groups["rds_custom"])
9595

9696

9797
def test_initialize_toolsets_should_enable_default_group_when_toolsets_none(dummy_env):
9898
server = dummy_env
99-
100-
initialize_toolsets(None)
101-
102-
assert server.toolset_manager.enabled == {"default"}
99+
initialize_toolsets(None, server.mcp)
100+
assert server.toolset_manager.enabled == {"rds"}
103101

104102

105103
def test_manager_should_report_enabled_groups_and_tools_when_queried(dummy_env):
106104
server = dummy_env
107-
from tools import load_groups
105+
from alibabacloud_rds_openapi_mcp_server.toolsets.tool_registry import load_groups
108106

109-
load_groups(server.toolset_manager, server)
110-
server.toolset_manager.enable("rds", "custom")
107+
load_groups(server.mcp)
108+
server.toolset_manager.enable("rds", "rds_custom")
111109

112-
assert set(server.toolset_manager.get_registered_groups()) >= {"default", "rds", "custom"}
113-
assert set(server.toolset_manager.get_enabled_groups()) == {"rds", "custom"}
114-
enabled = server.toolset_manager.get_enabled_tools()
110+
assert set(server.toolset_manager.registered_tool_groups()) >= {"rds", "rds_custom"}
111+
assert set(server.toolset_manager.enabled_tool_groups()) == {"rds", "rds_custom"}
112+
enabled = server.toolset_manager.enabled_tools()
115113
assert "rds" in enabled and server.describe_db_instances in enabled["rds"]
116-
assert "custom" in enabled and any(f.__name__ == "custom_echo" for f in enabled["custom"])
114+
assert "rds_custom" in enabled and any(
115+
f.__name__ == "custom_echo" for f in enabled["rds_custom"]
116+
)
117+
118+
def test_set_group_should_move_tool_to_new_group_when_called(dummy_env):
119+
manager = dummy_env.toolset_manager
120+
121+
def new_tool():
122+
pass
123+
124+
manager.add_tool(new_tool)
125+
manager.set_group(new_tool, "new_group")
126+
127+
assert "new_group" in manager.groups
128+
assert new_tool in [i.func for i in manager.groups["new_group"]]
129+
assert all(i.func != new_tool for i in manager.groups["rds"])
130+
131+
132+
def test_register_enabled_should_register_only_tools_from_enabled_groups(dummy_env):
133+
manager = dummy_env.toolset_manager
134+
135+
async def tool_a():
136+
pass
137+
138+
async def tool_b():
139+
pass
140+
141+
manager.add_tool(tool_a, group="group_a")
142+
manager.add_tool(tool_b, group="group_b")
143+
144+
manager.enable("group_a")
145+
manager.register_enabled(dummy_env.mcp)
146+
147+
assert tool_a in dummy_env.mcp._tools
148+
assert tool_b not in dummy_env.mcp._tools
149+
150+
151+
def test_initialize_toolsets_should_raise_when_group_invalid(dummy_env):
152+
with pytest.raises(ValueError):
153+
initialize_toolsets("invalid_group", dummy_env.mcp)

0 commit comments

Comments
 (0)