Commit 0ad76843 authored by Honza Král's avatar Honza Král
Browse files

Merge pull request #777 from khalas/ticket_19811

Fixed #19811 - Added language code fallback in get_language_info
parents f3ae67a6 6bd6a568
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -187,4 +187,10 @@ def get_language_info(lang_code):
    try:
        return LANG_INFO[lang_code]
    except KeyError:
        if '-' in lang_code:
            splited_lang_code = lang_code.split('-')[0]
            try:
                return LANG_INFO[splited_lang_code]
            except KeyError:
                raise KeyError("Unknown language code %r and %r." % (lang_code, splited_lang_code))
        raise KeyError("Unknown language code %r." % lang_code)
+15 −0
Original line number Diff line number Diff line
@@ -956,6 +956,21 @@ class TestLanguageInfo(TestCase):
        self.assertEqual(li['name'], 'German')
        self.assertEqual(li['bidi'], False)

    def test_unknown_language_code(self):
        with self.assertRaisesRegexp(KeyError, "Unknown language code u\'xx\'."):
            get_language_info('xx')

    def test_unknown_only_country_code(self):
        li = get_language_info('de-xx')
        self.assertEqual(li['code'], 'de')
        self.assertEqual(li['name_local'], 'Deutsch')
        self.assertEqual(li['name'], 'German')
        self.assertEqual(li['bidi'], False)

    def test_unknown_language_code_and_country_code(self):
        with self.assertRaisesRegexp(KeyError, "Unknown language code u\'xx-xx\' and u\'xx\'."):
            get_language_info('xx-xx')


class MultipleLocaleActivationTests(TestCase):
    """