seshat-tts
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
from pathlib import Path
|
||||
import queue
|
||||
|
||||
from seshat_tts import tts
|
||||
|
||||
|
||||
def test_prepared_audio_prompt_leaves_wav_unchanged(tmp_path: Path) -> None:
|
||||
source = tmp_path / "voice.wav"
|
||||
source.write_bytes(b"wav")
|
||||
|
||||
assert tts._prepared_audio_prompt_path(source, "english", queue.Queue()) == source
|
||||
|
||||
|
||||
def test_prepared_audio_prompt_converts_mp3_once(tmp_path: Path, monkeypatch) -> None:
|
||||
source = tmp_path / "voice.mp3"
|
||||
source.write_bytes(b"mp3")
|
||||
cache = tmp_path / "cache"
|
||||
calls: list[tuple[Path, Path]] = []
|
||||
|
||||
monkeypatch.setattr(tts, "VOICE_CACHE_DIR", cache)
|
||||
|
||||
def fake_convert(input_path: Path, output_path: Path) -> None:
|
||||
calls.append((input_path, output_path))
|
||||
output_path.write_bytes(b"wav")
|
||||
|
||||
monkeypatch.setattr(tts, "_convert_mp3_to_wav", fake_convert)
|
||||
|
||||
first = tts._prepared_audio_prompt_path(source, "english", queue.Queue())
|
||||
second = tts._prepared_audio_prompt_path(source, "english", queue.Queue())
|
||||
|
||||
assert first == second
|
||||
assert first.suffix == ".wav"
|
||||
assert first.exists()
|
||||
assert calls == [(source, first)]
|
||||
Reference in New Issue
Block a user