Skip to main content
Glama
test_module_imports.py4.91 kB
"""验证新工具模块是否能被正确导入。""" import sys import os # 添加当前路径到sys.path sys.path.insert(0, os.path.abspath('..')) def test_module_imports(): """测试模块导入。""" print("测试模块导入...") # 测试导入DebugAPITools try: from magicapi_tools.tools.debug_api import DebugAPITools print("✅ 成功导入DebugAPITools") # 创建实例测试 tools = DebugAPITools() print(f"✅ 成功创建DebugAPITools实例: {tools}") except ImportError as e: print(f"❌ 导入DebugAPITools失败: {e}") return False except Exception as e: print(f"❌ 创建DebugAPITools实例失败: {e}") return False # 测试导入tool_composer中的新模块 try: from magicapi_mcp.tool_composer import tool_composer print("✅ 成功导入tool_composer") # 检查debug_api模块是否在工具模块中 if "debug_api" in tool_composer.modules: print("✅ debug_api模块在tool_composer中") else: print("❌ debug_api模块不在tool_composer中") return False except ImportError as e: print(f"❌ 导入tool_composer失败: {e}") return False except Exception as e: print(f"❌ 检查tool_composer失败: {e}") return False # 检查组合信息 try: composition_info = tool_composer.get_composition_info("debugging") if "debug_api" in composition_info.get('tools', []): print("✅ debugging组合包含debug_api工具") else: print("⚠️ debugging组合可能不包含debug_api工具,但可能是正常的") # 检查full组合 full_info = tool_composer.get_composition_info("full") if "debug_api" in full_info.get('tools', []): print("✅ full组合包含debug_api工具") else: print("⚠️ full组合可能不包含debug_api工具,但可能是正常的") except Exception as e: print(f"⚠️ 检查组合信息时出现问题: {e}") # 这可能不是致命错误,继续测试 return True def test_tool_registration(): """测试工具注册功能。""" print("\n测试工具注册功能...") try: from magicapi_mcp.settings import MagicAPISettings from magicapi_mcp.tool_registry import ToolContext from magicapi_tools.tools.debug_api import DebugAPITools # 创建模拟环境 settings = MagicAPISettings( base_url="http://test-magic-api:8080", username="", password="", auth_enabled=False, ) # 创建Mock环境 import unittest.mock as mock with mock.patch('magicapi_tools.ws.manager.WSManager'), \ mock.patch('magicapi_tools.utils.http_client.MagicAPIHTTPClient'): context = ToolContext(settings) # 用Mock替换实际的客户端和服务 context.http_client = mock.Mock() context.ws_manager = mock.Mock() context.debug_service = mock.Mock() # 测试注册工具 mcp_app = mock.Mock() tools = DebugAPITools() tools.register_tools(mcp_app, context) # 检查是否调用了工具注册方法 print(f"✅ 工具注册被调用次数: {len(mcp_app.tool.call_args_list)}") # 检查注册的工具名称 registered_names = [] for call in mcp_app.tool.call_args_list: if call[1] and 'name' in call[1]: registered_names.append(call[1]['name']) print(f"✅ 注册的工具名称: {registered_names}") # 检查关键工具是否被注册 expected_tools = ['call_magic_api_with_timeout', 'get_latest_breakpoint_status', 'resume_from_breakpoint', 'step_over_breakpoint'] for tool in expected_tools: if tool in registered_names: print(f"✅ 工具 {tool} 已注册") else: print(f"❌ 工具 {tool} 未注册") return False return True except Exception as e: print(f"❌ 工具注册测试失败: {e}") import traceback traceback.print_exc() return False if __name__ == "__main__": success1 = test_module_imports() success2 = test_tool_registration() if success1 and success2: print("\n✅ 所有模块导入和注册测试通过!新工具已正确实现和集成。") else: print("\n❌ 有些测试失败了")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dwsy/magic-api-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server