diff options
| author | Jannis Leidel <jannis@leidel.info> | 2011-09-22 15:04:27 +0000 |
|---|---|---|
| committer | Jannis Leidel <jannis@leidel.info> | 2011-09-22 15:04:27 +0000 |
| commit | 66dc22c2d98c08a62588271507fd42bc7706541a (patch) | |
| tree | 3eefd1c2a15b22a90b3bd0a362a932e705ed4fc0 | |
| parent | c59339f450343960ee5dd2e2bb8d1a8507ccdaba (diff) | |
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
| -rw-r--r-- | django/utils/formats.py | 7 | ||||
| -rw-r--r-- | tests/regressiontests/i18n/tests.py | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/django/utils/formats.py b/django/utils/formats.py index 2d8a813825..3babccb0a0 100644 --- a/django/utils/formats.py +++ b/django/utils/formats.py @@ -45,11 +45,12 @@ 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 """ - lang = get_language() + if lang is None: + lang = get_language() modules = _format_modules_cache.setdefault(lang, list(iter_format_modules(lang))) if reverse: return list(reversed(modules)) @@ -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 diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py index 3a75201372..68eafbf276 100644 --- a/tests/regressiontests/i18n/tests.py +++ b/tests/regressiontests/i18n/tests.py @@ -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'): |
