Files
livekit--agents/tests/test_realtime/test_openai_realtime_model.py
2026-07-13 13:39:38 +08:00

34 lines
1.1 KiB
Python

from __future__ import annotations
from types import SimpleNamespace
from typing import cast
import pytest
from livekit.agents import llm
from livekit.agents.llm.remote_chat_context import RemoteChatContext
from livekit.plugins.openai.realtime.realtime_model import RealtimeSession
pytestmark = pytest.mark.unit
def test_update_chat_ctx_deletes_empty_remote_items() -> None:
remote_ctx = RemoteChatContext()
audio_item = llm.ChatMessage(id="audio_item", role="user", content=[])
kept_item = llm.ChatMessage(id="assistant_item", role="assistant", content=["kept"])
remote_ctx.insert(None, audio_item)
remote_ctx.insert(audio_item.id, kept_item)
session = cast(RealtimeSession, SimpleNamespace(_remote_chat_ctx=remote_ctx))
events = RealtimeSession._create_update_chat_ctx_events(
session,
llm.ChatContext(items=[kept_item]),
)
delete_ids = [
getattr(event, "item_id", None)
for event in events
if getattr(event, "type", None) == "conversation.item.delete"
]
assert delete_ids == ["audio_item"]