Skip to main content
Glama

Magic-API MCP Server

by Dwsy
test_fixes.py4.43 kB
#!/usr/bin/env python3 """ 测试修复的脚本 """ import asyncio import sys import os # 添加当前目录到Python路径,以便导入模块 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from magic_api_debug_client import MagicAPIDebugClient async def test_breakpoint_commands(): """测试断点命令是否正确等待结果""" print("🧪 测试断点命令修复") print("=" * 40) # 创建客户端(不连接WebSocket,仅测试断点操作) client = MagicAPIDebugClient( ws_url="ws://127.0.0.1:10712/magic/web/console", api_base_url="http://127.0.0.1:10712", username="admin", password="123456" ) # 模拟连接状态和WebSocket client.connected = True class MockWebSocket: async def send(self, message): print(f"📤 发送消息: {message}") pass client.websocket = MockWebSocket() try: # 测试设置断点 print("1. 测试设置断点...") await client.set_breakpoint(3) await client.set_breakpoint(4) print(f" 断点列表: {client.breakpoints}") # 测试移除断点 print("2. 测试移除断点...") await client.remove_breakpoint(3) print(f" 断点列表: {client.breakpoints}") # 测试恢复断点 print("3. 测试恢复断点...") await client.resume_breakpoint() print(" 恢复断点执行完成") # 测试单步执行 print("4. 测试单步执行...") await client.step_over() print(" 单步执行完成") print("✅ 断点命令测试通过 - 所有操作都正确完成") except Exception as e: print(f"❌ 测试失败: {e}") import traceback traceback.print_exc() return False return True def test_call_command_parsing(): """测试call命令是否正确处理参数""" print("\n🧪 测试call命令参数处理") # 模拟call命令的参数解析逻辑 def parse_call_command(command_line): if not command_line.strip(): return None parts = command_line.split() command = parts[0].lower() if command == "call": if len(parts) < 3: return "❌ 用法错误" method = parts[1].upper() path = parts[2] data = None if len(parts) > 3: data_str = ' '.join(parts[3:]) try: data = data_str # 这里只是测试,不实际解析JSON except: return "❌ JSON解析错误" return { "command": "call", "method": method, "path": path, "data": data } return None # 测试用例 test_cases = [ ("call GET /api/test", {"command": "call", "method": "GET", "path": "/api/test", "data": None}), ("call POST /api/create {\"name\":\"test\"}", {"command": "call", "method": "POST", "path": "/api/create", "data": "{\"name\":\"test\"}"}), ("call get /test", {"command": "call", "method": "GET", "path": "/test", "data": None}), ] for i, (input_cmd, expected) in enumerate(test_cases, 1): result = parse_call_command(input_cmd) if result == expected: print(f"✅ 测试 {i}: '{input_cmd}' -> 正确解析") else: print(f"❌ 测试 {i}: '{input_cmd}'") print(f" 期望: {expected}") print(f" 实际: {result}") return False print("✅ call命令参数解析测试通过") return True async def main(): """主测试函数""" # 测试断点命令 breakpoint_ok = await test_breakpoint_commands() # 测试call命令 call_ok = test_call_command_parsing() print("\n" + "=" * 50) if breakpoint_ok and call_ok: print("🎉 所有修复测试通过!") print("修复内容:") print("1. ✅ 断点命令现在正确等待执行完成") print("2. ✅ call命令不再引用未定义的params变量") print("3. ✅ UI现在会在断点操作后正确刷新提示符") return True else: print("❌ 部分测试失败!") return False if __name__ == "__main__": success = asyncio.run(main()) exit(0 if success else 1)

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