46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
import uuid
|
|
from typing import Any, cast
|
|
|
|
from innercontext.models.ai_log import AICallLog
|
|
|
|
|
|
def test_list_ai_logs_normalizes_tool_trace_string(client, session, current_user):
|
|
log = AICallLog(
|
|
id=uuid.uuid4(),
|
|
endpoint="routines/suggest",
|
|
model="gemini-3-flash-preview",
|
|
success=True,
|
|
user_id=current_user.user_id,
|
|
)
|
|
log.tool_trace = cast(
|
|
Any,
|
|
'{"mode":"function_tools","events":[{"function":"get_product_inci"}]}',
|
|
)
|
|
session.add(log)
|
|
session.commit()
|
|
|
|
response = client.get("/ai-logs")
|
|
assert response.status_code == 200
|
|
data = response.json()
|
|
assert len(data) == 1
|
|
assert data[0]["tool_trace"]["mode"] == "function_tools"
|
|
assert data[0]["tool_trace"]["events"][0]["function"] == "get_product_inci"
|
|
|
|
|
|
def test_get_ai_log_normalizes_tool_trace_string(client, session, current_user):
|
|
log = AICallLog(
|
|
id=uuid.uuid4(),
|
|
endpoint="routines/suggest",
|
|
model="gemini-3-flash-preview",
|
|
success=True,
|
|
user_id=current_user.user_id,
|
|
)
|
|
log.tool_trace = cast(Any, '{"mode":"function_tools","round":1}')
|
|
session.add(log)
|
|
session.commit()
|
|
|
|
response = client.get(f"/ai-logs/{log.id}")
|
|
assert response.status_code == 200
|
|
payload = response.json()
|
|
assert payload["tool_trace"]["mode"] == "function_tools"
|
|
assert payload["tool_trace"]["round"] == 1
|