from providers.factory.default import DefaultRealtimeServiceFactory from providers.tts.mock import MockTTSService from providers.tts.openai_compatible import OpenAICompatibleTTSService from providers.tts.volcengine import VolcengineTTSService from runtime.ports import TTSServiceSpec def test_create_tts_service_volcengine_returns_native_provider(): factory = DefaultRealtimeServiceFactory() service = factory.create_tts_service( TTSServiceSpec( provider="volcengine", api_key="test-key", app_id="app-1", resource_id="seed-tts-2.0", voice="zh_female_shuangkuaisisi_moon_bigtts", sample_rate=16000, ) ) assert isinstance(service, VolcengineTTSService) def test_create_tts_service_openai_compatible_returns_provider(): factory = DefaultRealtimeServiceFactory() service = factory.create_tts_service( TTSServiceSpec( provider="openai_compatible", api_key="test-key", voice="anna", sample_rate=16000, ) ) assert isinstance(service, OpenAICompatibleTTSService) def test_create_tts_service_fallbacks_to_mock_without_key(): factory = DefaultRealtimeServiceFactory() service = factory.create_tts_service( TTSServiceSpec( provider="volcengine", voice="anna", sample_rate=16000, ) ) assert isinstance(service, MockTTSService)