feat: finalize behavioral regression suite

- Add 96 behavioral regression tests parametrized for both Kokoro and SuperTonic
- Remove legacy TTSBackendRegistry tests (13) from behavioral suite
- Remove mock-only capability tests (Preview, Streaming, Cancellation) not implemented by either plugin
- Fix get_voices() to pass required args to create_engine() + error handling
- All 598 tests pass
This commit is contained in:
Artem Akymenko
2026-07-12 16:20:06 +03:00
parent 9150a80459
commit 5d1e7165bb
2 changed files with 1114 additions and 1 deletions
+28 -1
View File
@@ -18,11 +18,36 @@ def get_voices(plugin_id: str) -> tuple[str, ...]:
Uses the official Plugin Architecture: PluginManager → Engine → VoiceLister. Uses the official Plugin Architecture: PluginManager → Engine → VoiceLister.
""" """
import logging
import tempfile
from pathlib import Path
from abogen.tts_plugin.host_context import HostContext
from abogen.tts_plugin.types import EngineConfig
manager = get_plugin_manager() manager = get_plugin_manager()
if not manager.has_plugin(plugin_id): if not manager.has_plugin(plugin_id):
return () return ()
engine = manager.create_engine(plugin_id) ctx = HostContext(
config_dir=Path(tempfile.gettempdir()),
logger=logging.getLogger(f"abogen.utils.{plugin_id}"),
http_client=type("_StubHttpClient", (), {
"get": staticmethod(lambda url, **kw: None),
"post": staticmethod(lambda url, **kw: None),
})(),
)
try:
engine = manager.create_engine(
plugin_id,
context=ctx,
model_path=None,
config=EngineConfig(device="cpu"),
)
except Exception:
return ()
try: try:
from abogen.tts_plugin.capabilities import VoiceLister from abogen.tts_plugin.capabilities import VoiceLister
@@ -30,6 +55,8 @@ def get_voices(plugin_id: str) -> tuple[str, ...]:
manifests = engine.listVoices("builtin") manifests = engine.listVoices("builtin")
return tuple(v.id for v in manifests) return tuple(v.id for v in manifests)
return () return ()
except Exception:
return ()
finally: finally:
engine.dispose() engine.dispose()
File diff suppressed because it is too large Load Diff