* fix(ui): keep scaled desktop shell responsive * fix(linux): support desktop microphone capture * fix(ui): update the centered VoiceStudio brand * fix(audio): fall back when recorder start is unsupported * fix(desktop): use the app header as titlebar * feat(audio): add live microphone input controls * fix(dub): recover from missing transcription models * fix(dub): make pipeline stages actionable * fix(asr): recover low-memory transcription * docs: record desktop reliability fixes * fix(ui): use semantic error banner border * fix(dub): harden recovery and recording fallbacks
18 lines
606 B
Python
18 lines
606 B
Python
import asyncio
|
|
|
|
|
|
def test_duplicate_model_install_reuses_the_running_worker():
|
|
from api.routers.setup import download
|
|
|
|
repo_id = download.KNOWN_MODELS[0]["repo_id"]
|
|
download._install_cooldowns.pop(repo_id, None)
|
|
with download._active_installs_lock:
|
|
download._active_installs.add(repo_id)
|
|
try:
|
|
result = asyncio.run(download.install_model(download.InstallModelRequest(repo_id=repo_id)))
|
|
finally:
|
|
with download._active_installs_lock:
|
|
download._active_installs.discard(repo_id)
|
|
|
|
assert result == {"status": "already_running", "repo_id": repo_id}
|