40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
"""Tests for AIClient forced tool name extraction."""
|
|
|
|
from src.ai.client import AIClient
|
|
|
|
|
|
def test_extract_forced_tool_name_full_name():
|
|
tools = [
|
|
"humanizer_zh.read_skill_doc",
|
|
"skills_creator.create_skill",
|
|
]
|
|
message = "please call tool humanizer_zh.read_skill_doc and return first 100 chars"
|
|
|
|
forced = AIClient._extract_forced_tool_name(message, tools)
|
|
|
|
assert forced == "humanizer_zh.read_skill_doc"
|
|
|
|
|
|
def test_extract_forced_tool_name_unique_prefix():
|
|
tools = [
|
|
"humanizer_zh.read_skill_doc",
|
|
"skills_creator.create_skill",
|
|
]
|
|
message = "please call tool humanizer_zh only"
|
|
|
|
forced = AIClient._extract_forced_tool_name(message, tools)
|
|
|
|
assert forced == "humanizer_zh.read_skill_doc"
|
|
|
|
|
|
def test_extract_forced_tool_name_ambiguous_prefix_returns_none():
|
|
tools = [
|
|
"skills_creator.create_skill",
|
|
"skills_creator.reload_skill",
|
|
]
|
|
message = "please call tool skills_creator"
|
|
|
|
forced = AIClient._extract_forced_tool_name(message, tools)
|
|
|
|
assert forced is None
|