1import pkgutil 2 3from translate.lang import factory 4 5 6def test_getlanguage(): 7 """Tests that a basic call to getlanguage() works.""" 8 kmlanguage = factory.getlanguage("km") 9 assert kmlanguage.code == "km" 10 assert kmlanguage.fullname == "Central Khmer" 11 12 # Test a non-exisint code 13 language = factory.getlanguage("zz") 14 assert language.nplurals == 0 15 16 # Test a code without a module 17 language = factory.getlanguage("fy") 18 assert language.nplurals == 2 19 assert language.fullname == "Frisian" 20 assert "n != 1" in language.pluralequation 21 22 # Test a code without a module and with a country code 23 language = factory.getlanguage("de_AT") 24 assert language.nplurals == 2 25 assert language.fullname == "German" 26 27 # Test with None as language code 28 language = factory.getlanguage(None) 29 assert language.code == "" 30 31 # Test with a language code that is a reserved word in Python 32 language = factory.getlanguage("is") 33 assert language.nplurals == 2 34 assert language.fullname == "Icelandic" 35 36 language = factory.getlanguage("or") 37 assert "startcaps" in language.ignoretests["all"] 38 39 # Test with a language code contains '@' 40 language = factory.getlanguage("ca@valencia") 41 assert language.nplurals == 2 42 43 44def test_get_all_languages(): 45 """Tests that a basic call to get_all_languages() works.""" 46 import translate.lang as package 47 48 is_language_module = lambda x: not ( 49 x.startswith("test_") 50 or x in ("common", "data", "factory", "identify", "ngram", "poedit", "team") 51 ) 52 lang_codes = [] 53 for _imp, modname, _isp in pkgutil.walk_packages(package.__path__): 54 if is_language_module(modname): 55 if modname.startswith("code_"): 56 modname = modname.replace("code_", "") 57 lang_codes.append(modname) 58 langs = factory.get_all_languages() 59 assert len(langs) == len(lang_codes) 60