summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamiro Morales <cramm0@gmail.com>2011-02-03 15:54:27 +0000
committerRamiro Morales <cramm0@gmail.com>2011-02-03 15:54:27 +0000
commit5f2f0113db4489de4b2260bf3365b514418ad0b8 (patch)
tree33c381374a463a2872f42b340bb5526de2662232
parentf6606da3e835bf365550862833408d3733bb4d97 (diff)
[1.2.X] Fixed #15129 -- Fixed stability of data input/output L10N format modules priority order. Thanks tonnzor for the report and fix.
Backport of [15402] from trunk git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15403 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/utils/formats.py4
-rw-r--r--tests/regressiontests/i18n/tests.py16
2 files changed, 17 insertions, 3 deletions
diff --git a/django/utils/formats.py b/django/utils/formats.py
index d0c63fb96f..a73b596dbe 100644
--- a/django/utils/formats.py
+++ b/django/utils/formats.py
@@ -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):
diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py
index e9c4566227..e7f78814b0 100644
--- a/tests/regressiontests/i18n/tests.py
+++ b/tests/regressiontests/i18n/tests.py
@@ -8,7 +8,8 @@ import pickle
from django.conf import settings
from django.template import Template, Context
from django.test import TestCase
-from django.utils.formats import get_format, date_format, time_format, localize, localize_input, iter_format_modules
+from django.utils.formats import (get_format, date_format, time_format,
+ localize, localize_input, iter_format_modules, get_format_modules)
from django.utils.numberformat import format as nformat
from django.utils.safestring import mark_safe, SafeString, SafeUnicode
from django.utils.translation import (ugettext, ugettext_lazy, activate,
@@ -466,6 +467,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()
+
class MiscTests(TestCase):