MediaRouter / tests /test_whisper_service.py
basyx's picture
Upload 437 files
7cc81cb verified
Raw
History Blame Contribute Delete
1.09 kB
from __future__ import annotations
from types import SimpleNamespace
from app.services.whisper_service import WhisperService
class FakeWhisperModel:
def transcribe(self, path, **kwargs):
segments = iter(
[
SimpleNamespace(id=0, start=0.0, end=1.25, text=" Hello"),
SimpleNamespace(id=1, start=1.25, end=2.0, text=" world"),
]
)
info = SimpleNamespace(language="en", language_probability=0.99, duration=2.0)
return segments, info
async def test_whisper_writes_srt_without_loading_real_model(settings, tmp_path) -> None:
service = WhisperService(settings)
service._models["tiny"] = FakeWhisperModel()
media = tmp_path / "audio.wav"
media.write_bytes(b"test")
result = await service.transcribe(
media, tmp_path / "out", model_name="tiny", output_format="srt"
)
assert result.path is not None
content = result.path.read_text()
assert "00:00:00,000 --> 00:00:01,250" in content
assert "Hello" in content
assert result.metadata["language"] == "en"