aboutsummaryrefslogtreecommitdiff
path: root/app/tests/test_tts.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/tests/test_tts.py')
-rw-r--r--app/tests/test_tts.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/app/tests/test_tts.py b/app/tests/test_tts.py
index 49eb6f6..cf67c6c 100644
--- a/app/tests/test_tts.py
+++ b/app/tests/test_tts.py
@@ -25,6 +25,7 @@ from converter.clients import (
BACKEND_AUDIOCPP,
BACKEND_FASTER,
BACKEND_QWEN,
+ LANGUAGE_CHOICES,
LANGUAGE_ISO_CODES,
MODEL_SIZE,
SAMPLE_RATE,
@@ -66,6 +67,25 @@ class NormalizeLanguageTests(unittest.TestCase):
self.assertEqual(normalize_language("pt"), "Portuguese")
self.assertEqual(normalize_language("es"), "Spanish")
self.assertEqual(normalize_language("it"), "Italian")
+ self.assertEqual(normalize_language("ar"), "Arabic")
+ self.assertEqual(normalize_language("hi"), "Hindi")
+ self.assertEqual(normalize_language("vi"), "Vietnamese")
+
+ def test_audio_cpp_menu_languages_accepted(self):
+ # audio.cpp's WebUI menus add Arabic, Hindi and Vietnamese; the
+ # MagpieTTS Arabic regional variants collapse to plain Arabic.
+ self.assertEqual(normalize_language("arabic"), "Arabic")
+ self.assertEqual(normalize_language("Hindi"), "Hindi")
+ self.assertEqual(normalize_language("vietnamese"), "Vietnamese")
+ for variant in ("ar-AE", "ar-MSA", "ar-SA"):
+ self.assertEqual(normalize_language(variant), "Arabic")
+
+ def test_language_choices_are_valid_display_names(self):
+ # The TUI's static picker lists a permutation of TTS_LANGUAGES
+ # (common languages first), so every entry normalizes.
+ self.assertEqual(sorted(LANGUAGE_CHOICES), sorted(TTS_LANGUAGES))
+ for name in LANGUAGE_CHOICES:
+ self.assertEqual(normalize_language(name), name)
def test_all_supported_languages_round_trip(self):
for name in TTS_LANGUAGES:
@@ -1105,6 +1125,11 @@ class AudioCppFamilyDetectionTests(unittest.TestCase):
self.assertEqual(LANGUAGE_ISO_CODES["English"], "en")
self.assertIsNone(LANGUAGE_ISO_CODES.get("Auto"))
+ def test_iso_codes_cover_the_audio_cpp_menu_languages(self):
+ self.assertEqual(LANGUAGE_ISO_CODES["Arabic"], "ar")
+ self.assertEqual(LANGUAGE_ISO_CODES["Hindi"], "hi")
+ self.assertEqual(LANGUAGE_ISO_CODES["Vietnamese"], "vi")
+
class AudiocppEntryVoiceCapabilityTests(unittest.TestCase):
"""The per-entry voice capability resolver (speaker/clone/design)."""