hermes-agent/tests/gateway/test_video_context_note.py

50 lines
1.5 KiB
Python

"""Tests for video attachment context notes in gateway turns."""
from unittest.mock import patch
import pytest
from gateway.config import GatewayConfig, Platform
from gateway.platforms.base import MessageEvent, MessageType
from gateway.session import SessionSource
def _make_runner() -> "GatewayRunner": # type: ignore[name-defined]
from gateway.run import GatewayRunner
runner = GatewayRunner.__new__(GatewayRunner)
runner.config = GatewayConfig()
runner.adapters = {}
runner._has_setup_skill = lambda: False
return runner
@pytest.mark.asyncio
async def test_video_attachment_adds_path_note_without_document_wording():
from gateway.run import _build_media_placeholder
runner = _make_runner()
source = SessionSource(platform=Platform.SLACK, chat_id="D123", chat_type="dm")
event = MessageEvent(
text="what happens here?",
message_type=MessageType.VIDEO,
source=source,
media_urls=["/tmp/video_clip.mp4"],
media_types=["video/mp4"],
)
with patch(
"tools.credential_files.to_agent_visible_cache_path",
side_effect=lambda path: path,
):
result = await runner._prepare_inbound_message_text(
event=event,
source=source,
history=[],
)
assert "video attachment" in result
assert "/tmp/video_clip.mp4" in result
assert "video analysis or media tool" in result
assert "The user sent a document" not in result
assert _build_media_placeholder(event) == "[User sent a video: /tmp/video_clip.mp4]"