From 2252a0e4ae86fcc71a58af99d63750adab54cabd Mon Sep 17 00:00:00 2001 From: historia Date: Thu, 27 Aug 2026 15:53:22 -0400 Subject: feat: menu for language options --- app/tests/test_tts.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'app/tests/test_tts.py') 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).""" -- cgit v1.2.3