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"