tts-voice-creator-clone-and.../tests/test_conversation.py

35 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Focused attribution parser regressions."""
from __future__ import annotations
import os
import tempfile
import unittest
os.environ.setdefault("CONFIG_DIR", tempfile.mkdtemp(prefix="ttvc-conversation-test-config-"))
from routes.conversation import _attribution_parse, _fallback_attribute_response
class AttributionParserTests(unittest.TestCase):
def test_fallback_accepts_mixed_guillemets(self):
result = _fallback_attribute_response("Intro. »Ein langer Satz endet hier.‹ Danach.")
self.assertEqual([segment["type"] for segment in result["segments"]], ["narration", "dialogue", "narration"])
self.assertIn("Ein langer Satz endet hier.", result["segments"][1]["text"])
def test_repairs_epigraph_split_before_mixed_guillemet_close(self):
raw = '{"segments":[' \
'{"speaker":"Schwester Larissa","type":"dialogue","text":"»Von dem Windhager Felsgesteyn bis zur Kueste von Mendena ziehet es sich hin, von Ifirns Eisgebirg bis zu dem dampfenden Waldt der Mohas, und"},' \
'{"speaker":"Narrator","type":"narration","text":"fürwahr, es ist ein seltsam Land. Lieblich bisweilen, mild und voll der guten Menschen. ‹ Zitiert aus dem Buch."}' \
']}'
result = _attribution_parse(raw, "unused")
self.assertEqual(len(result["segments"]), 2)
dialogue, narration = result["segments"]
self.assertEqual(dialogue["speaker"], "Schwester Larissa")
self.assertEqual(dialogue["type"], "dialogue")
self.assertTrue(dialogue["text"].endswith("Land. Lieblich bisweilen, mild und voll der guten Menschen. ‹"))
self.assertEqual(narration["text"], "Zitiert aus dem Buch.")
if __name__ == "__main__":
unittest.main()