Commit 987fd511 authored by Ramiro Morales's avatar Ramiro Morales
Browse files

Fixed stability of data input/output L10N format modules priority order....

Fixed stability of data input/output L10N format modules priority order. Thanks tonnzor for the report and fix.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15402 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent a1588734
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -36,12 +36,12 @@ def iter_format_modules(lang):

def get_format_modules(reverse=False):
    """
    Returns an iterator over the format modules found
    Returns a list of the format modules found
    """
    lang = get_language()
    modules = _format_modules_cache.setdefault(lang, list(iter_format_modules(lang)))
    if reverse:
        modules.reverse()
        return list(reversed(modules))
    return modules

def get_format(format_type, lang=None, use_l10n=None):
+14 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ from threading import local
from django.conf import settings
from django.template import Template, Context
from django.utils.formats import (get_format, date_format, time_format,
    localize, localize_input, iter_format_modules)
    localize, localize_input, iter_format_modules, get_format_modules)
from django.utils.importlib import import_module
from django.utils.numberformat import format as nformat
from django.utils.safestring import mark_safe, SafeString, SafeUnicode
@@ -495,6 +495,19 @@ class FormattingTests(TestCase):
        finally:
            settings.USE_L10N = old_l10n

    def test_get_format_modules_stability(self):
        activate('de')
        old_format_module_path = settings.FORMAT_MODULE_PATH
        settings.FORMAT_MODULE_PATH = 'regressiontests.i18n.other.locale'
        try:
            settings.USE_L10N = True
            old = "%r" % get_format_modules(reverse=True)
            new = "%r" % get_format_modules(reverse=True) # second try
            self.assertEqual(new, old, 'Value returned by get_formats_modules() must be preserved between calls.')
        finally:
            settings.FORMAT_MODULE_PATH = old_format_module_path
            deactivate()

    def test_localize_templatetag_and_filter(self):
        """
        Tests the {% localize %} templatetag