Commit 4d2708ff authored by Ramiro Morales's avatar Ramiro Morales
Browse files

[1.2.X] Fixed #15024 -- Ensure that choice of L10N format module used is...

[1.2.X] Fixed #15024 -- Ensure that choice of L10N format module used is stable given a stable setup of format modules in ll/ and ll_CC/ dirs. Thanks David Reynolds for the report and suggestions leading to the solution.

Backport of [15183] from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15184 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 0a0472f5
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -24,7 +24,9 @@ def iter_format_modules(lang):
            format_locations.append(settings.FORMAT_MODULE_PATH + '.%s')
            format_locations.reverse()
        locale = to_locale(lang)
        locales = set((locale, locale.split('_')[0]))
        locales = [locale]
        if '_' in locale:
            locales.append(locale.split('_')[0])
        for location in format_locations:
            for loc in locales:
                try:
+13 −0
Original line number Diff line number Diff line
@@ -452,6 +452,19 @@ class FormattingTests(TestCase):
            settings.FORMAT_MODULE_PATH = old_format_module_path
            deactivate()

    def test_iter_format_modules_stability(self):
        """
        Tests the iter_format_modules function always yields format modules in
        a stable and correct order in presence of both base ll and ll_CC formats.
        """
        try:
            old_l10n, settings.USE_L10N = settings.USE_L10N, True
            en_format_mod = import_module('django.conf.locale.en.formats')
            en_gb_format_mod = import_module('django.conf.locale.en_GB.formats')
            self.assertEqual(list(iter_format_modules('en-gb')), [en_gb_format_mod, en_format_mod])
        finally:
            settings.USE_L10N = old_l10n


class MiscTests(TestCase):