#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
告警同步功能测试脚本
"""

import sys
import os
import time

# 添加项目根目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from utils.logger import get_logger

def test_alert_sync():
    """测试告警同步功能"""
    
    print("开始测试告警同步功能...")
    
    # 创建不同模块的logger
    task_logger = get_logger("services.task_service")
    system_logger = get_logger("system.database")
    robot_logger = get_logger("services.robot_scheduler") 
    
    print("\n1. 测试任务告警...")
    task_logger.warning("任务执行超时警告")
    task_logger.error("任务执行失败", exc_info=False)
    task_logger.critical("任务调度器严重错误", exc_info=False)
    
    print("\n2. 测试系统告警...")
    system_logger.warning("数据库连接不稳定")
    system_logger.error("系统配置错误", exc_info=False)
    
    print("\n3. 测试机器人告警...")
    robot_logger.warning("机器人电池电量低")
    robot_logger.error("机器人失去控制权", exc_info=False)
    
    print("\n4. 测试异常告警...")
    try:
        1 / 0
    except Exception as e:
        task_logger.exception("发生了一个除零异常")
    
    print("\n5. 测试INFO级别（不应该同步）...")
    task_logger.info("这是一条普通信息，不应该同步到主系统")
    
    print("\n测试完成，请检查主系统是否收到告警信息")
    print("等待5秒让异步处理完成...")
    time.sleep(5)
    
    # 获取告警同步服务状态
    from utils.alert_sync import get_alert_sync_service
    service = get_alert_sync_service()
    
    print(f"\n告警同步服务状态:")
    print(f"- 启用状态: {service.enabled}")
    print(f"- 同步URL: {service.sync_url}")
    print(f"- 队列大小: {service.alert_queue.qsize()}")
    print(f"- 最小同步级别: {service.min_level}")

if __name__ == "__main__":
    test_alert_sync() 