Files
hkuds--nanobot/tests/test_file_tool_toggle.py
wehub-resource-sync ba1d0b91a4
Test Suite / webui (push) Failing after 1s
Test Suite / test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:06:36 +08:00

45 lines
1.2 KiB
Python

from types import SimpleNamespace
from nanobot.agent.tools.context import ToolContext
from nanobot.agent.tools.file_state import FileStates
from nanobot.agent.tools.filesystem import FileToolsConfig, ReadFileTool
from nanobot.agent.tools.loader import ToolLoader
from nanobot.agent.tools.registry import ToolRegistry
from nanobot.config.schema import Config, ToolsConfig
FILE_TOOL_NAMES = {
"apply_patch",
"edit_file",
"find_files",
"grep",
"list_dir",
"read_file",
"write_file",
}
def test_file_tools_enabled_by_default():
assert FileToolsConfig().enable is True
assert Config().tools.file.enable is True
def test_file_tool_gate_follows_flag():
cfg = ToolsConfig()
cfg.file.enable = False
assert ReadFileTool.enabled(SimpleNamespace(config=cfg)) is False
assert ReadFileTool.enabled(SimpleNamespace(config=ToolsConfig())) is True
def test_file_tool_loader_skips_all_builtin_file_tools_when_disabled(tmp_path):
cfg = ToolsConfig(file=FileToolsConfig(enable=False))
ctx = ToolContext(
config=cfg,
workspace=str(tmp_path),
file_state_store=FileStates(),
)
registry = ToolRegistry()
ToolLoader().load(ctx, registry)
assert FILE_TOOL_NAMES.isdisjoint(registry.tool_names)