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