Files
KiloStar/tests/unit/test_plugin_metadata.py
T
zhaoxi a53ffebe0e feat: 新增工具插件、系统日志、workflow配置及前端优化
1. 新增工具插件(edit_file, python_executor, search_file, shell_executor, write_file)
2. 新增系统事件日志模块和API
3. 新增workflow配置文件和详情API
4. 前端增加SSE、错误边界、设置引导等组件
5. 优化认证加密、速率限制、配置加载等工具模块
6. 删除废弃的cluster和health API
7. 补充单元测试和集成测试

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-03 07:34:43 +00:00

42 lines
1.5 KiB
Python

"""``plugin/tool_plugin`` 下各工具的元数据类正确性。
``BaseToolData`` 本身不带 ``name`` 字段;工具名以目录名为准(由 ``GlobalToolManager``
扫描时注入到 ``tool_metadata`` 中)。这里只验证子类对 BaseToolData 字段的覆写。
"""
from kilostar.plugin.tool_plugin.approval.approval import ApprovalToolData
from kilostar.plugin.tool_plugin.file_reader import FileReaderToolData
from kilostar.plugin.tool_plugin.tavily_search import TavilySearchToolData
def test_approval_metadata():
data = ApprovalToolData()
assert data.is_system is True
assert data.category == "system"
# action_scope 为空表示分配给 default 组(所有节点可用)
assert data.action_scope == []
def test_file_reader_metadata():
data = FileReaderToolData()
assert data.is_system is True
assert data.category == "system"
assert data.action_scope == []
def test_tavily_search_metadata():
data = TavilySearchToolData()
assert data.is_system is False
assert data.category == "search"
assert "control_node" in data.action_scope
assert "consciousness_node" in data.action_scope
# 默认配置 schema 含 api_key 字段(用于 GSM 配置面板)
assert "api_key" in data.config_args
def test_base_tool_extra_allowed():
"""``ConfigDict(extra="allow")`` 允许子类外的 KV 也能装进来。"""
data = ApprovalToolData(some_extension="ok") # type: ignore[call-arg]
assert data.model_extra is not None
assert data.model_extra.get("some_extension") == "ok"