File size: 1,073 Bytes
aca03d2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import pytest
from app.services.function_validator import validate_tool, clean_tool
class TestFunctionValidator:
def test_validate_tool_valid(self):
tool = {
"name": "get_weather",
"description": "Get weather",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}}
}
assert validate_tool(tool) is True
def test_validate_tool_empty_name(self):
tool = {"name": "", "parameters": {}}
assert validate_tool(tool) is False
def test_validate_tool_long_name(self):
tool = {"name": "a" * 65, "parameters": {}}
assert validate_tool(tool) is False
def test_validate_tool_invalid_chars(self):
tool = {"name": "get weather!", "parameters": {}}
assert validate_tool(tool) is False
def test_clean_tool(self):
tool = {"name": "test", "description": "desc", "parameters": {"type": "object"}}
cleaned = clean_tool(tool)
assert cleaned["type"] == "function"
assert cleaned["function"]["name"] == "test"
|