Files
KiloStar/tests/unit/test_utils_get_tool.py
zhaoxi 99520c69d7 feat(system):优化后端
1.新增后端测试
2.增加了后端的加密
3.增加了i18n(国际化)
2026-05-31 15:39:34 +00:00

45 lines
1.2 KiB
Python

"""``utils.get_tool`` 在真实仓库目录上的加载行为。"""
from kilostar.utils import get_tool
from kilostar.utils.get_tool import (
_get_tool_func,
del_tool_cache,
load_tools_from_list,
)
def setup_function(_func):
"""每个测试前清空模块级缓存,避免相互影响。"""
get_tool._tool_cache.clear()
def test_load_existing_tool_via_load_tools_from_list():
tools = load_tools_from_list(["file_reader"])
assert len(tools) == 1
assert tools[0].__name__ == "file_reader"
def test_loader_caches_function():
f1 = _get_tool_func("file_reader")
f2 = _get_tool_func("file_reader")
assert f1 is f2
assert "file_reader" in get_tool._tool_cache
def test_del_tool_cache_removes_entry():
_get_tool_func("file_reader")
assert "file_reader" in get_tool._tool_cache
del_tool_cache("file_reader")
assert "file_reader" not in get_tool._tool_cache
def test_load_unknown_tool_returns_none_and_keeps_others():
tools = load_tools_from_list(["file_reader", "definitely_not_exist"])
assert len(tools) == 1
assert tools[0].__name__ == "file_reader"
def test_load_tools_from_list_handles_none_and_empty():
assert load_tools_from_list(None) == []
assert load_tools_from_list([]) == []