aboutsummaryrefslogtreecommitdiff
path: root/app/tests/test_tts.py
diff options
context:
space:
mode:
authorhistoria <historiavg@proton.me>2026-08-27 15:53:22 -0400
committerhistoria <historiavg@proton.me>2026-08-27 15:53:22 -0400
commit2252a0e4ae86fcc71a58af99d63750adab54cabd (patch)
tree489a5e5d2124a831be31a69ee740ec4c260661e1 /app/tests/test_tts.py
parent5b98993b13dafe9a85495e4c68ad9b42863ef2bf (diff)
downloadtts-audiobook-generator-2252a0e4ae86fcc71a58af99d63750adab54cabd.tar.gz
feat: menu for language options
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)."""