A 批(tools/basic_tools.py):迁移 7 个无外部依赖工具类(FileToolBase/ReadFileTool/WriteFileTool/ListFilesTool/SimpleWebCrawlerTool/GetCurrentTimeTool/CalculatorTool) Wave1(subsystems/):迁移 5 个叶子子系统(CommandExecutor/SubprocessCommandExecutor/PromptManager/MemoryDatabase/MemoDatabase/SkillManager),aibox.py 减少 ~1440 行 新增 tests/ 单测 113 个用例全绿,依赖方向维持 common -> subsystems -> tools -> aibox 单向
22 lines
840 B
Python
22 lines
840 B
Python
"""pytest 公共配置:把 aibox 目录加入 sys.path,桩掉可选第三方依赖。
|
||
|
||
aibox 主模块 aibox.py 依赖 websockets,但 tools/basic_tools.py 仅依赖
|
||
common + 标准库,所以单测 basic_tools 不需要真实 websockets——桩掉即可
|
||
让 `from tools import ...` 间接 import aibox.py 时不出错(虽然本测试
|
||
不直接 import aibox,但保持环境干净)。
|
||
"""
|
||
|
||
import sys
|
||
import types
|
||
from pathlib import Path
|
||
|
||
# 把 aibox 目录加入 sys.path(无需安装为包即可 import tools/common)
|
||
AIBOX_DIR = Path(__file__).resolve().parent.parent
|
||
sys.path.insert(0, str(AIBOX_DIR))
|
||
|
||
# 桩掉 websockets(aibox.py 顶部 import websockets,测试环境可能未安装)
|
||
if "websockets" not in sys.modules:
|
||
sys.modules["websockets"] = types.ModuleType("websockets")
|
||
|
||
import pytest # noqa: E402
|