|
@@ -0,0 +1,59 @@
|
|
|
+"""Tests for ``django/utils/formats.py``."""
|
|
|
+from django.test import TestCase
|
|
|
+from django.utils.formats import iter_format_modules
|
|
|
+
|
|
|
+
|
|
|
+class IterFormatModulesTestCase(TestCase):
|
|
|
+ """Tests for the ``iter_format_modules`` method."""
|
|
|
+ longMessage = True
|
|
|
+
|
|
|
+ def test_returns_correct_default(self):
|
|
|
+ """
|
|
|
+ Should return default module when FORMAT_MODULE_PATH is not set.
|
|
|
+ """
|
|
|
+ result = list(iter_format_modules('en'))
|
|
|
+ self.assertEqual(len(result), 1, msg=(
|
|
|
+ "Should return only Django's default formats module."))
|
|
|
+ self.assertEqual(
|
|
|
+ result[0].__name__, 'django.conf.locale.en.formats', msg=(
|
|
|
+ 'Should have added the language to the module path'))
|
|
|
+
|
|
|
+ def test_with_setting_as_basestring(self):
|
|
|
+ """
|
|
|
+ Before ticket #20477 FORMAT_MODULE_PATH was supposed to be a string.
|
|
|
+
|
|
|
+ This test ensures backwards compatibility.
|
|
|
+ """
|
|
|
+ with self.settings(
|
|
|
+ FORMAT_MODULE_PATH='utils_tests.test_module.formats'):
|
|
|
+ result = list(iter_format_modules('en'))
|
|
|
+ self.assertEqual(len(result), 2, msg=(
|
|
|
+ 'Should return both, the default value and the one from the'
|
|
|
+ ' setting'))
|
|
|
+ self.assertEqual(
|
|
|
+ result[0].__name__,
|
|
|
+ 'utils_tests.test_module.formats.en.formats',
|
|
|
+ msg=('Should return the module from the setting first and'
|
|
|
+ ' should have added the language to the module path'))
|
|
|
+
|
|
|
+ def test_with_setting_as_list_of_strings(self):
|
|
|
+ """
|
|
|
+ After ticket #20477 FORMAT_MODULE_PATH can also be a list of strings.
|
|
|
+
|
|
|
+ This tests verifies the new functionality.
|
|
|
+ """
|
|
|
+ FORMAT_MODULE_PATH = [
|
|
|
+ 'utils_tests.test_module.formats',
|
|
|
+ 'utils_tests.test_module.formats2',
|
|
|
+ ]
|
|
|
+ with self.settings(
|
|
|
+ FORMAT_MODULE_PATH=FORMAT_MODULE_PATH):
|
|
|
+ result = list(iter_format_modules('en'))
|
|
|
+ self.assertEqual(len(result), 3, msg=(
|
|
|
+ 'Should return the default value and the two values from the'
|
|
|
+ ' setting'))
|
|
|
+ self.assertEqual(
|
|
|
+ result[0].__name__,
|
|
|
+ 'utils_tests.test_module.formats.en.formats',
|
|
|
+ msg=('Should return the values from the setting and add the'
|
|
|
+ ' language to the module path'))
|