Sign2Voice / tests /test_tts.py
lilblueyes's picture
Add brick tests and CLI runners
879a21c
Raw
History Blame Contribute Delete
1.15 kB
import sys
from types import SimpleNamespace
import pytest
import signspeak.tts as tts_module
class FakeTTS:
def generate_custom_voice(self, text, language, speaker, instruct):
assert text == "Hello."
assert language == "English"
assert speaker == "Ryan"
assert instruct == "Speak clearly."
return [[0.0, 0.1, 0.0]], 24000
def test_generate_tts_uses_model_and_writes_file(monkeypatch, tmp_path):
writes = []
def fake_write(path, data, sample_rate):
writes.append((path, data, sample_rate))
monkeypatch.setattr(tts_module, "get_tts_model", lambda: FakeTTS())
monkeypatch.setattr(tts_module.tempfile, "gettempdir", lambda: str(tmp_path))
monkeypatch.setitem(sys.modules, "soundfile", SimpleNamespace(write=fake_write))
output_path = tts_module.generate_tts("Hello.", "English", "Ryan", "Speak clearly.")
assert output_path.startswith(str(tmp_path))
assert writes == [(output_path, [0.0, 0.1, 0.0], 24000)]
def test_generate_tts_rejects_empty_text():
with pytest.raises(ValueError):
tts_module.generate_tts("", "English", "Ryan", "Speak clearly.")