Files
hermes-agent/tests/gateway/test_media_cache.py
teknium1 61fa0f47ec test: purge low-value tests, lane py07 (216 removed)
Change-detectors, tautologies, source-reading tests, redundant duplicates,
mock-echo tests and dead/unrunnable tests. Per-test rationale in the lane
ledger (category + reason for every removal).
2026-09-23 03:15:26 -07:00

94 lines
3.1 KiB
Python

"""Contract tests for gateway.platforms.media_cache — the shared mime↔ext
dispatch — plus per-adapter parity spot-checks that hardcode each adapter's
HISTORICAL (pre-refactor) mappings as the contract.
If any of these fail, an adapter's downloaded-media filenames changed —
that's a behavioral regression, not a test to update casually.
"""
import pytest
from gateway.platforms.media_cache import (
cache_media_bytes,
ext_for_mime,
mime_for_ext,
)
# ---------------------------------------------------------------------------
# Shared table contract
# ---------------------------------------------------------------------------
class TestSharedTable:
def test_stage_gating(self):
# use_defaults=False skips the shared table.
assert ext_for_mime(
"audio/ogg", use_defaults=False, use_mimetypes=False, fallback=".x"
) == ".x"
# use_mimetypes=False skips the mimetypes fallback.
assert ext_for_mime("image/bmp", use_mimetypes=False) is None
def test_mime_for_ext_fallback_and_case(self):
assert mime_for_ext(".JPG") == "image/jpeg"
assert mime_for_ext(".unknown") == "application/octet-stream"
assert mime_for_ext(".unknown", fallback="x/y") == "x/y"
assert mime_for_ext(".pdf", overrides={".pdf": "custom/pdf"}) == "custom/pdf"
# ---------------------------------------------------------------------------
# cache_media_bytes dispatch
# ---------------------------------------------------------------------------
class TestCacheMediaBytes:
PNG = b"\x89PNG\r\n\x1a\n" + b"\x00" * 16
def test_image_dispatch(self, monkeypatch, tmp_path):
monkeypatch.setattr(
"gateway.platforms.base.get_image_cache_dir", lambda: tmp_path
)
path = cache_media_bytes(self.PNG, "image/png")
assert path.endswith(".png")
def test_document_dispatch_uses_filename_hint(self, monkeypatch, tmp_path):
monkeypatch.setattr(
"gateway.platforms.base.get_document_cache_dir", lambda: tmp_path
)
path = cache_media_bytes(b"%PDF-1.4", "application/pdf",
filename_hint="report.pdf")
assert path.endswith("_report.pdf")
# ---------------------------------------------------------------------------
# Per-adapter parity: HISTORICAL mappings hardcoded as the contract
# ---------------------------------------------------------------------------
class TestWhatsAppCloudParity:
"""Historical _ext_for_mime: overrides → mimetypes → None."""
CASES = {
# Pinned overrides (Meta-sent types the STT pipeline needs pinned).
"audio/ogg": ".ogg", # NOT mimetypes' .oga
"audio/x-opus+ogg": ".ogg",
"audio/opus": ".ogg",
"audio/mp4": ".m4a",
"audio/x-m4a": ".m4a",
"image/jpeg": ".jpg", # NOT the legacy .jpe
}
@pytest.mark.parametrize("mime,expected", sorted(CASES.items()))
def test_pinned_overrides(self, mime, expected):
from gateway.platforms.whatsapp_cloud import _ext_for_mime
assert _ext_for_mime(mime) == expected