Ctrl K
ComunidadGuías…

tests/test_app_tool_call_parsing.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import pytest

from dm.app.data import parse_tool_call


def test_parse_tool_call_accepts_object_arguments():
    name, args = parse_tool_call('mcp__dm__run_sql  {"sql":"SELECT 1","limit":5}')
    assert name == "run_sql"
    assert args == {"sql": "SELECT 1", "limit": 5}


@pytest.mark.parametrize(
    "payload",
    [
        '["not","an","object"]',
        'NaN',
        '{"limit":NaN}',
        '{"sql":"safe","sql":"overwritten"}',
        'not-json',
    ],
)
def test_parse_tool_call_rejects_ambiguous_or_non_object_arguments(payload):
    name, args = parse_tool_call(f"mcp__dm__run_sql  {payload}")
    assert name == "run_sql"
    assert args == {}