fix: separate voice credentials and refresh feature toggle

This commit is contained in:
2026-08-11 17:46:56 +08:00
parent fd2da26d10
commit 74213a363f
10 changed files with 97 additions and 11 deletions

View File

@@ -24,9 +24,9 @@ def settings(**overrides):
"voice_input_enabled": False,
"voice_max_duration_seconds": 60,
"aliyun_nls_app_key": "app-key",
"aliyun_nls_access_key_id": "voice-access-id",
"aliyun_nls_access_key_secret": "voice-access-secret",
"aliyun_nls_endpoint": "https://nls.example/asr",
"aliyun_sms_access_key_id": "access-id",
"aliyun_sms_access_key_secret": "access-secret",
}
values.update(overrides)
return SimpleNamespace(**values)
@@ -50,6 +50,22 @@ def test_transcription_endpoint_is_rejected_when_switch_is_off(monkeypatch):
assert exc.value.status_code == 404
def test_voice_credentials_are_loaded_independently_from_sms(monkeypatch):
monkeypatch.setattr("app.services.voice_input_service.get_settings", lambda: settings())
with database() as db:
db.add_all([
SystemConfig(config_key="aliyun_sms_access_key_id", config_value="sms-id"),
SystemConfig(config_key="aliyun_nls_app_key", config_value="db-app-key"),
SystemConfig(config_key="aliyun_nls_access_key_id", config_value="db-voice-id"),
SystemConfig(config_key="aliyun_nls_access_key_secret", config_value="db-voice-secret"),
])
db.commit()
config = load_voice_config(db)
assert config.app_key == "db-app-key"
assert config.access_key_id == "db-voice-id"
assert config.access_key_secret == "db-voice-secret"
def test_transcription_returns_provider_text(monkeypatch):
monkeypatch.setattr("app.services.voice_input_service.get_settings", lambda: settings(voice_input_enabled=True))
monkeypatch.setattr("app.services.voice_input_service._normalize_audio", lambda *_: b"wav")