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
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())
|
|
|