You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
3.2 KiB

#!/usr/bin/env python3
"""
测试重构后的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 DeviceManager
from app.schemas.device import DeviceCreate
from app.core.config import ProtocolType
async def test_device_manager():
"""测试DeviceManager的基本功能"""
print("开始测试重构后的DeviceManager...")
# 创建设备管理器实例
device_manager = DeviceManager()
try:
# 测试设备注册
print("\n1. 测试设备注册...")
device_create = DeviceCreate(
device_id="test_device_001",
name="测试设备1",
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} - {device.name}")
# 测试获取设备
print("\n2. 测试获取设备...")
retrieved_device = await device_manager.get_device("test_device_001")
if retrieved_device:
print(f"获取设备成功: {retrieved_device.device_id} - {retrieved_device.status}")
# 测试更新设备状态
print("\n3. 测试更新设备状态...")
success = await device_manager.update_device_status("test_device_001", "online")
if success:
print("设备状态更新成功")
# 测试获取所有设备
print("\n4. 测试获取所有设备...")
all_devices = await device_manager.get_all_devices()
print(f"总设备数量: {len(all_devices)}")
for device in all_devices:
print(f" - {device.device_id}: {device.name} ({device.status})")
# 测试自动发现设备事件
print("\n5. 测试自动发现设备事件...")
success = await device_manager.handle_auto_discovered_device_event(
"auto_device_001", "device", {"model": "AutoDevice", "version": "1.0"}
)
if success:
print("自动发现设备事件处理成功")
# 测试获取统一设备列表
print("\n6. 测试获取统一设备列表...")
unified_devices = await device_manager.get_all_devices_unified()
print(f"统一设备列表数量: {len(unified_devices)}")
for device_info in unified_devices:
print(f" - {device_info['device_id']}: {device_info['name']} ({device_info['source']})")
# 测试注销设备
print("\n7. 测试注销设备...")
success = await device_manager.unregister_device("test_device_001")
if success:
print("设备注销成功")
# 测试清理
print("\n8. 测试清理...")
await device_manager.cleanup()
print("设备管理器清理完成")
print("\n✅ 所有测试通过!")
except Exception as e:
print(f"\n❌ 测试失败: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
asyncio.run(test_device_manager())