Commit 66dc22c2 authored by Jannis Leidel's avatar Jannis Leidel
Browse files

Fixed #16909 -- Pass language to get_format_modules when calling it from...

Fixed #16909 -- Pass language to get_format_modules when calling it from get_format to make sure the correct module is returned.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16884 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent c59339f4
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -45,10 +45,11 @@ def iter_format_modules(lang):
                except ImportError:
                    pass

def get_format_modules(reverse=False):
def get_format_modules(lang=None, reverse=False):
    """
    Returns a list of the format modules found
    """
    if lang is None:
        lang = get_language()
    modules = _format_modules_cache.setdefault(lang, list(iter_format_modules(lang)))
    if reverse:
@@ -72,7 +73,7 @@ def get_format(format_type, lang=None, use_l10n=None):
        try:
            return _format_cache[cache_key] or getattr(settings, format_type)
        except KeyError:
            for module in get_format_modules():
            for module in get_format_modules(lang):
                try:
                    val = getattr(module, format_type)
                    _format_cache[cache_key] = val
+5 −0
Original line number Diff line number Diff line
@@ -480,6 +480,11 @@ class FormattingTests(TestCase):
        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])

    def test_get_format_modules_lang(self):
        with self.settings(USE_L10N=True):
            with translation.override('de', deactivate=True):
                self.assertEqual('.', get_format('DECIMAL_SEPARATOR', lang='en'))

    def test_get_format_modules_stability(self):
        with self.settings(USE_L10N=True,
                FORMAT_MODULE_PATH='regressiontests.i18n.other.locale'):