Refactor the cron job functionality to transition from a crawling to a searching model. Update related documentation and scripts to reflect the new terminology and functionality, including changes in the README and script comments. Enhance WeChat menu and message handling to support the new search features, ensuring clarity in user interactions and logging.

This commit is contained in:
2026-01-09 08:19:09 +08:00
parent 4000438f49
commit 72dc40186d
20 changed files with 5935 additions and 595 deletions
+115
View File
@@ -0,0 +1,115 @@
#!/usr/bin/env python3
"""
测试修复后的菜单功能
"""
import sys
import os
# 添加项目路径
sys.path.insert(0, os.path.dirname(__file__))
try:
from gx_gp_monitor.wechat.message_handler import WeChatMessageHandler
from gx_gp_monitor.core.config_manager import load_config
def test_menu_keys():
"""测试菜单key处理"""
print("🧪 测试菜单key处理...")
handler = WeChatMessageHandler()
# 测试旧菜单key
test_cases = [
("latest_announcements", "最新公告(兼容旧key"),
("announcements_by_type", "按类型查看公告"),
("search_announcements", "搜索公告(兼容旧key"),
("latest_news", "最新公告"),
("keyword_search", "关键词搜索"),
("system_status", "系统状态"),
("help_guide", "使用说明"),
]
results = {}
for key, description in test_cases:
try:
# 模拟事件处理
result = handler.handle_event('click', key, 'test_user')
results[key] = result is not None and "未知菜单项" not in (result or "")
print(f"{description}: {'通过' if results[key] else '失败'}")
except Exception as e:
print(f"{description}: 异常 - {str(e)}")
results[key] = False
success_count = sum(1 for success in results.values() if success)
print(f"\n📊 菜单key测试结果: {success_count}/{len(test_cases)} 通过")
return success_count == len(test_cases)
def test_text_commands():
"""测试文本命令处理"""
print("\n🧪 测试文本命令处理...")
handler = WeChatMessageHandler()
# 测试公告类型查询
test_cases = [
("采购公告", "采购公告查询"),
("结果公告", "结果公告查询"),
("更正公告", "更正公告查询"),
]
results = {}
for command, description in test_cases:
try:
result = handler.handle_text_message(command, 'test_user')
results[command] = result is not None
print(f"{description}: {'通过' if results[command] else '失败'}")
except Exception as e:
print(f"{description}: 异常 - {str(e)}")
results[command] = False
success_count = sum(1 for success in results.values() if success)
print(f"\n📊 文本命令测试结果: {success_count}/{len(test_cases)} 通过")
return success_count == len(test_cases)
def main():
"""主测试函数"""
# 加载配置
try:
load_config()
print("✅ 配置加载成功")
except Exception as e:
print(f"❌ 配置加载失败: {e}")
return False
print("🚀 测试修复后的菜单功能...")
print("=" * 50)
# 测试菜单key
test1_passed = test_menu_keys()
# 测试文本命令
test2_passed = test_text_commands()
print("\n" + "=" * 50)
if test1_passed and test2_passed:
print("🎉 所有菜单功能修复测试通过!")
print("✅ 旧菜单key现在可以正常工作")
print("✅ 新增了公告类型查询功能")
else:
print("⚠️ 部分测试失败,请检查上述错误信息")
return test1_passed and test2_passed
if __name__ == "__main__":
main()
except ImportError as e:
print(f"❌ 导入失败: {e}", file=sys.stderr)
sys.exit(1)
except Exception as e:
print(f"❌ 测试失败: {e}", file=sys.stderr)
sys.exit(1)