backend/tests/test_language_list_extended.py
Rama master · réplica de lectura del repositorio original.
"""Every ISO 639-1 language is selectable, named in English and German (1.16.0).
The picker stopped at 64 languages while providers serve far more; the
catalog providers alone declare 224 codes. The extension must not move any
existing tag: foreign-track cleanup decides keep/strip from these tables.
"""
from collections import Counter
from config_language_data import _LANGUAGE_TAGS, SUPPORTED_LANGUAGES, normalize_language_code
from config_language_names import EXTRA_LANGUAGES, GERMAN_NAMES
def test_every_language_has_an_english_and_a_german_name():
assert len(SUPPORTED_LANGUAGES) >= 180
assert all(entry["name"] and entry["name_de"] for entry in SUPPORTED_LANGUAGES)
assert {e["code"]: e["name_de"] for e in SUPPORTED_LANGUAGES}["de"] == "Deutsch"
def test_codes_are_unique_and_sorted_by_english_name():
codes = [entry["code"] for entry in SUPPORTED_LANGUAGES]
assert len(codes) == len(set(codes))
names = [entry["name"] for entry in SUPPORTED_LANGUAGES]
assert names == sorted(names)
def test_core_languages_keep_a_german_name_each():
core = {entry["code"] for entry in SUPPORTED_LANGUAGES} - {row[0] for row in EXTRA_LANGUAGES}
assert core <= set(GERMAN_NAMES)
def test_three_letter_tags_of_new_languages_resolve():
assert normalize_language_code("bel") == "be"
assert normalize_language_code("wel") == "cy"
assert normalize_language_code("cym") == "cy"
assert normalize_language_code("tib") == "bo"
assert normalize_language_code("kurdish") == "ku"
def test_existing_tags_did_not_move():
assert normalize_language_code("ger") == "de"
assert normalize_language_code("nob") == "no"
assert normalize_language_code("pob") == "pt"
assert normalize_language_code("chi-tra") == "zh-hant"
def test_no_tag_belongs_to_two_languages():
counts = Counter(tag for tags in _LANGUAGE_TAGS.values() for tag in tags)
assert [tag for tag, n in counts.items() if n > 1] == []
def test_lat_stays_unknown_because_it_often_means_latin_american_spanish():
assert normalize_language_code("lat") == "lat"
assert normalize_language_code("la") == "la"