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"