Files
openswarm/backend/tests/test_agent_session_list.py
T

60 lines
1.8 KiB
Python

import asyncio
from pytest import MonkeyPatch
from backend.apps.agents import agents as agents_module
from backend.apps.agents.core.models import AgentSession, Message
def test_session_list_item_replaces_messages_with_compact_metadata(
monkeypatch: MonkeyPatch,
) -> None:
first_prompt = "p" * 250
last_reply = "r" * 150
session = AgentSession(
name="Test session",
messages=[
Message(role="system", content="system"),
Message(role="user", content=first_prompt),
Message(role="assistant", content=last_reply),
],
)
monkeypatch.setattr(
agents_module.agent_manager,
"get_all_sessions",
lambda dashboard_id=None: [session],
)
item = asyncio.run(agents_module.list_sessions())["sessions"][0]
assert item["messages"] == []
assert item["message_count"] == 3
assert item["first_user_message"] == first_prompt[:200]
assert item["last_message_preview"] == last_reply[:120]
def test_session_list_item_handles_empty_and_non_text_content(
monkeypatch: MonkeyPatch,
) -> None:
sessions = [
AgentSession(name="Empty"),
AgentSession(
name="Images",
messages=[Message(role="user", content=[{"type": "image"}])],
),
]
monkeypatch.setattr(
agents_module.agent_manager,
"get_all_sessions",
lambda dashboard_id=None: sessions,
)
empty, non_text = asyncio.run(agents_module.list_sessions())["sessions"]
assert empty["messages"] == []
assert empty["message_count"] == 0
assert empty["first_user_message"] == ""
assert empty["last_message_preview"] == ""
assert non_text["message_count"] == 1
assert non_text["first_user_message"] == ""
assert non_text["last_message_preview"] == ""