#!/usr/bin/env python3 """ DeviceManager重构兼容性测试 验证重构后的DeviceManager与现有代码的兼容性 """ import asyncio import sys import os # 添加项目根目录到Python路径 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from app.core.device.manager import device_manager, DeviceManager, DeviceSource from app.core.websocket.manager import websocket_manager from app.schemas.device import DeviceCreate from app.core.config import ProtocolType async def test_compatibility(): """测试DeviceManager重构后的兼容性""" print("开始DeviceManager重构兼容性测试...") try: # 1. 测试全局实例导入 print("\n1. 测试全局实例导入...") from app.core.device.manager import device_manager print("✅ 全局device_manager实例导入成功") # 2. 测试类导入 print("\n2. 测试类导入...") from app.core.device.manager import DeviceManager, DeviceSource print("✅ DeviceManager类和DeviceSource枚举导入成功") # 3. 测试WebSocket管理器集成 print("\n3. 测试WebSocket管理器集成...") from app.core.websocket.manager import websocket_manager print("✅ WebSocket管理器导入成功") # 4. 测试设备服务集成 print("\n4. 测试设备服务集成...") from app.services.device_service import DeviceService device_service = DeviceService() print("✅ 设备服务导入和实例化成功") # 5. 测试ADB服务集成 print("\n5. 测试ADB服务集成...") from app.services.adb_service import AdbService adb_service = AdbService() print("✅ ADB服务导入和实例化成功") # 6. 测试AT服务集成 print("\n6. 测试AT服务集成...") from app.services.at_service import AtService at_service = AtService() print("✅ AT服务导入和实例化成功") # 7. 测试SSH服务集成 print("\n7. 测试SSH服务集成...") from app.services.ssh_service import SshService ssh_service = SshService() print("✅ SSH服务导入和实例化成功") # 8. 测试PLNK服务集成 print("\n8. 测试PLNK服务集成...") from app.services.plnk_service import PlnkService plnk_service = PlnkService() print("✅ PLNK服务导入和实例化成功") # 9. 测试ATX服务集成 print("\n9. 测试ATX服务集成...") from app.services.atx_service import AtxService atx_service = AtxService() print("✅ ATX服务导入和实例化成功") # 10. 测试自动发现ADB服务集成 print("\n10. 测试自动发现ADB服务集成...") from app.services.auto_discovery_adb_service import AutoDiscoveryAdbService auto_discovery_service = AutoDiscoveryAdbService() print("✅ 自动发现ADB服务导入和实例化成功") # 11. 测试API端点集成 print("\n11. 测试API端点集成...") from app.api.v1.endpoints import at, ssh, plnk, devices print("✅ API端点模块导入成功") # 12. 测试应用工厂集成 print("\n12. 测试应用工厂集成...") from app.core.app.factory import create_app print("✅ 应用工厂导入成功") # 13. 测试基本功能 print("\n13. 测试基本功能...") # 测试设备注册 device_create = DeviceCreate( device_id="compat_test_001", name="兼容性测试设备", protocol_type=ProtocolType.ADB, connection_info={"host": "192.168.1.100", "port": 5555} ) device = await device_manager.register_device(device_create) print(f"✅ 设备注册成功: {device.device_id}") # 测试设备查询 retrieved_device = await device_manager.get_device("compat_test_001") if retrieved_device: print(f"✅ 设备查询成功: {retrieved_device.device_id}") # 测试设备状态更新 success = await device_manager.update_device_status("compat_test_001", "online") if success: print("✅ 设备状态更新成功") # 测试获取所有设备 all_devices = await device_manager.get_all_devices() print(f"✅ 获取所有设备成功: {len(all_devices)} 个设备") # 测试自动发现设备事件 success = await device_manager.handle_auto_discovered_device_event( "auto_compat_001", "device", {"model": "Auto Compat Device"} ) if success: print("✅ 自动发现设备事件处理成功") # 测试获取统一设备列表 unified_devices = await device_manager.get_all_devices_unified() print(f"✅ 获取统一设备列表成功: {len(unified_devices)} 个设备") # 测试设备注销 success = await device_manager.unregister_device("compat_test_001") if success: print("✅ 设备注销成功") # 14. 测试WebSocket集成 print("\n14. 测试WebSocket集成...") # 测试WebSocket推送回调设置 device_manager.set_websocket_push_callback(None) # 设置为None进行测试 print("✅ WebSocket推送回调设置成功") # 测试事件推送任务启动 await device_manager.start_event_pusher() print("✅ 事件推送任务启动成功") # 测试事件推送任务停止 await device_manager.stop_event_pusher() print("✅ 事件推送任务停止成功") # 15. 测试资源清理 print("\n15. 测试资源清理...") await device_manager.cleanup() print("✅ 资源清理成功") print("\n🎉 所有兼容性测试通过!") print("✅ DeviceManager重构后与现有代码完全兼容") except Exception as e: print(f"\n❌ 兼容性测试失败: {e}") import traceback traceback.print_exc() return False return True if __name__ == "__main__": asyncio.run(test_compatibility())