ver0.1
This commit is contained in:
29
tests/test_baidu_asr_fallback.py
Normal file
29
tests/test_baidu_asr_fallback.py
Normal file
@@ -0,0 +1,29 @@
|
||||
"""百度 ASR:3301 时 WAV 重试。"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import array
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from app.config import Settings
|
||||
from app.services.baidu_speech import BaiduSpeechService
|
||||
|
||||
|
||||
def test_asr_pcm_or_wav_fallback_retries_on_3301() -> None:
|
||||
ok = {"err_no": 0, "result": ["好"]}
|
||||
pcm = array.array("h", [100] * 800).tobytes()
|
||||
client = MagicMock()
|
||||
client.asr = MagicMock(side_effect=[{"err_no": 3301, "err_msg": "q"}, ok])
|
||||
svc = BaiduSpeechService(
|
||||
app_settings=Settings(
|
||||
BAIDU_APP_ID="1",
|
||||
BAIDU_API_KEY="k",
|
||||
BAIDU_SECRET_KEY="s",
|
||||
)
|
||||
)
|
||||
svc._client = client # type: ignore[attr-defined]
|
||||
r = svc.asr_16k_mono_pcm_or_wav_fallback(pcm)
|
||||
assert r == ok
|
||||
assert client.asr.call_count == 2
|
||||
assert client.asr.call_args_list[0][0][1] == "pcm"
|
||||
assert client.asr.call_args_list[1][0][1] == "wav"
|
||||
Reference in New Issue
Block a user