45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib
|
|
import logging
|
|
from pathlib import Path
|
|
from types import ModuleType
|
|
|
|
import pytest
|
|
|
|
from agents.realtime.events import RealtimeEventInfo, RealtimeRawModelEvent
|
|
from agents.realtime.items import InputText, UserMessageItem
|
|
from agents.realtime.model_events import RealtimeModelItemUpdatedEvent
|
|
from agents.run_context import RunContextWrapper
|
|
|
|
|
|
@pytest.fixture
|
|
def app_server(monkeypatch: pytest.MonkeyPatch) -> ModuleType:
|
|
app_dir = Path(__file__).parents[2] / "examples" / "realtime" / "app"
|
|
monkeypatch.chdir(app_dir)
|
|
monkeypatch.setenv("LOG_LEVEL", "DEBUG")
|
|
module = importlib.import_module("examples.realtime.app.server")
|
|
return importlib.reload(module)
|
|
|
|
|
|
def test_item_updated_debug_summary_uses_concrete_event_type(
|
|
app_server: ModuleType,
|
|
caplog: pytest.LogCaptureFixture,
|
|
) -> None:
|
|
item = UserMessageItem(
|
|
item_id="item-1",
|
|
content=[InputText(text="sensitive transcript")],
|
|
)
|
|
event = RealtimeRawModelEvent(
|
|
data=RealtimeModelItemUpdatedEvent(item=item),
|
|
info=RealtimeEventInfo(context=RunContextWrapper(None)),
|
|
)
|
|
|
|
with caplog.at_level(logging.DEBUG, logger=app_server.__name__):
|
|
app_server.manager._log_debug_event("session-1", event)
|
|
|
|
assert "item_updated" in caplog.text
|
|
assert "item-1" in caplog.text
|
|
assert "input_text" in caplog.text
|
|
assert "sensitive transcript" not in caplog.text
|