Files
NebulaShell/oss/tests/test_nodejs_adapter.py
Falck bce27db4ac 重大重构:引擎模块拆分 + P0插件实现 + 55个Bug修复
核心变更:
- engine.py(1781行)拆分为8个独立模块: lifecycle/security/deps/
  datastore/pl_injector/watcher/signature/manager
- 新增plugin-bridge: 事件总线 + 服务注册 + RPC通信
- 新增i18n: 国际化/多语言翻译支持
- 新增plugin-storage: 插件键值/文件存储
- 新增ws-api: WebSocket实时通信(pub/sub + 自定义处理器)
- nodejs-adapter统一为Plugin ABC模式

Bug修复:
- 修复load_all()中store_dir未定义崩溃
- 修复DependencyResolver入度计算(拓扑排序)
- 修复PermissionError隐藏内置异常
- 修复CORS中间件头部未附加到响应
- 修复IntegrityChecker跳过__pycache__目录
- 修复版本号不一致(v2.0.0→v1.2.0)
- 修复测试文件的Logger导入/路径/私有方法调用
- 修复context.py缺少typing导入
- 修复config.py STORE_DIR默认路径(./mods→./store)

测试覆盖: 14→91个测试, 全部通过
2026-05-12 11:40:06 +08:00

47 lines
1.2 KiB
Python

"""Tests for Node.js Adapter Plugin"""
import os
import sys
import json
import tempfile
import shutil
import pytest
PLUGIN_DIR = os.path.join(os.path.dirname(__file__), '..', 'store', 'NebulaShell', 'nodejs-adapter')
sys.path.insert(0, PLUGIN_DIR)
import importlib.util
spec = importlib.util.spec_from_file_location("nodejs_adapter_main", os.path.join(PLUGIN_DIR, "main.py"))
main_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(main_module)
NodeJSAdapterPlugin = main_module.NodeJSAdapterPlugin
@pytest.fixture
def plugin():
return NodeJSAdapterPlugin()
class TestNodeJSAdapter:
def test_plugin_name(self, plugin):
assert plugin.name == "nodejs-adapter"
assert plugin.version == "1.0.0"
def test_check_versions(self, plugin):
versions = plugin.check_versions()
assert isinstance(versions, dict)
def test_lifecycle(self, plugin):
plugin.init()
plugin.start()
plugin.stop()
# no exception = pass
def test_get_adapter(self, plugin):
adapter = plugin.get_adapter()
assert adapter is not None
if __name__ == '__main__':
pytest.main([__file__, '-v'])