84 lines
2.0 KiB
Python
84 lines
2.0 KiB
Python
"""
|
|
Provider factory tests for the Voice Assistant.
|
|
|
|
Purpose:
|
|
Verify that the provider composition layer resolves the configured
|
|
providers dynamically and passes the configured options correctly.
|
|
|
|
Responsibilities:
|
|
- Validate STT provider creation.
|
|
- Validate Agent provider creation.
|
|
- Validate TTS provider creation.
|
|
- Verify provider-specific options are propagated to each adapter.
|
|
|
|
Non-responsibilities:
|
|
- Testing provider internals.
|
|
- Testing WebSocket behavior.
|
|
- Testing external services.
|
|
|
|
Architecture:
|
|
AppConfig + ProviderCatalog
|
|
|
|
|
v
|
|
provider factories
|
|
|
|
|
v
|
|
concrete Adapter instances
|
|
"""
|
|
|
|
from voice_assistant.agent.mock import MockAgentAdapter
|
|
from voice_assistant.config.loader import (
|
|
load_config,
|
|
load_provider_catalog,
|
|
)
|
|
from voice_assistant.providers import (
|
|
create_agent_adapter,
|
|
create_stt_adapter,
|
|
create_tts_adapter,
|
|
)
|
|
from voice_assistant.stt.nvidia import NvidiaSTTAdapter
|
|
from voice_assistant.tts.voxcpm import VoxCPMTTSAdapter
|
|
|
|
|
|
def test_create_stt_adapter_from_config():
|
|
config = load_config()
|
|
catalog = load_provider_catalog()
|
|
|
|
stt = create_stt_adapter(
|
|
config=config,
|
|
catalog=catalog,
|
|
)
|
|
|
|
assert isinstance(stt, NvidiaSTTAdapter)
|
|
assert stt.server == "127.0.0.1:9000"
|
|
assert stt.language_code == "pt-BR"
|
|
assert stt.automatic_punctuation is True
|
|
|
|
|
|
def test_create_agent_adapter_from_config():
|
|
config = load_config()
|
|
catalog = load_provider_catalog()
|
|
|
|
agent = create_agent_adapter(
|
|
config=config,
|
|
catalog=catalog,
|
|
)
|
|
|
|
assert isinstance(agent, MockAgentAdapter)
|
|
|
|
|
|
def test_create_tts_adapter_from_config():
|
|
config = load_config()
|
|
catalog = load_provider_catalog()
|
|
|
|
tts = create_tts_adapter(
|
|
config=config,
|
|
catalog=catalog,
|
|
)
|
|
|
|
assert isinstance(tts, VoxCPMTTSAdapter)
|
|
assert tts.server == "http://127.0.0.1:8000"
|
|
assert tts.model == "openbmb/VoxCPM2"
|
|
assert tts.voice == "default"
|
|
|