99520c69d7
1.新增后端测试 2.增加了后端的加密 3.增加了i18n(国际化)
45 lines
1.2 KiB
Python
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([]) == []
|