import asyncio from app.core.warmup import warmup_local_models def test_warmup_is_noop_for_cloud_defaults(): # Mit den Test-Defaults (openrouter-Provider) lädt warmup nichts und wirft nicht. asyncio.run(warmup_local_models()) def test_warmup_loads_piper(monkeypatch): calls = {} class FakePiperTTSProvider: # Name muss zur Typpruefung im warmup passen async def synthesize(self, text, voice=None, audio_format="pcm"): calls["tts"] = text return b"AUDIO" import app.dependencies as deps monkeypatch.setattr(deps, "get_tts_provider", lambda *a, **k: FakePiperTTSProvider()) # Klassennamen auf den vom warmup geprueften Namen setzen. FakePiperTTSProvider.__name__ = "PiperTTSProvider" asyncio.run(warmup_local_models()) assert calls.get("tts") # synthesize wurde aufgerufen