refactor(redis_manager): 移除冗余的ConnectionError处理 refactor(event_handler): 优化Bot类型注解 refactor(factory): 移除未使用的GroupCardNoticeEvent test: 添加全面的单元测试覆盖 - 添加test_import.py测试模块导入 - 添加test_debug.py测试插件加载调试 - 添加test_plugin_error.py测试错误处理 - 添加test_config_loader.py测试配置加载 - 添加test_redis_manager.py测试Redis管理 - 添加test_bot.py测试Bot功能 - 扩展test_models.py测试消息模型 - 添加test_plugin_manager_coverage.py测试插件管理 - 添加test_executor.py测试代码执行器 - 添加test_ws.py测试WebSocket - 添加test_api.py测试API接口 - 添加test_core_managers.py测试核心管理模块 fix(plugin_manager): 修复插件加载日志变量问题 覆盖率已到达86%(忽略插件)
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
import importlib
|
|
import sys
|
|
from unittest.mock import patch, MagicMock
|
|
|
|
# 模拟插件管理器
|
|
class MockPluginManager:
|
|
def __init__(self):
|
|
self.loaded_plugins = set()
|
|
self.command_manager = MagicMock()
|
|
self.command_manager.plugins = {}
|
|
|
|
def load_all_plugins(self):
|
|
from core.utils.logger import logger
|
|
package_name = "plugins"
|
|
module_name = "bad_plugin"
|
|
full_module_name = f"{package_name}.{module_name}"
|
|
|
|
action = "加载"
|
|
try:
|
|
module = importlib.import_module(full_module_name)
|
|
self.loaded_plugins.add(full_module_name)
|
|
logger.success(f"成功{action}: {module_name}")
|
|
except Exception as e:
|
|
print(f"DEBUG: Exception caught in mock: {e}")
|
|
print(f"DEBUG: action exists: {'action' in locals()}")
|
|
logger.exception(f" {action}插件 {module_name} 失败: {e}")
|
|
|
|
# 测试
|
|
if __name__ == "__main__":
|
|
with patch("importlib.import_module", side_effect=Exception("Load error")):
|
|
pm = MockPluginManager()
|
|
pm.load_all_plugins()
|
|
print("Test completed") |