Loading django/utils/translation/__init__.py +7 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,8 @@ def lazy_number(func, resultclass, number=None, **kwargs): kwargs['number'] = number proxy = lazy(func, resultclass)(**kwargs) else: original_kwargs = kwargs.copy() class NumberAwareString(resultclass): def __bool__(self): return bool(kwargs['singular']) Loading Loading @@ -134,9 +136,14 @@ def lazy_number(func, resultclass, number=None, **kwargs): return translated proxy = lazy(lambda **kwargs: NumberAwareString(), NumberAwareString)(**kwargs) proxy.__reduce__ = lambda: (_lazy_number_unpickle, (func, resultclass, number, original_kwargs)) return proxy def _lazy_number_unpickle(func, resultclass, number, kwargs): return lazy_number(func, resultclass, number=number, **kwargs) def ngettext_lazy(singular, plural, number=None): return lazy_number(ngettext, str, singular=singular, plural=plural, number=number) Loading docs/releases/1.8.10.txt +3 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,6 @@ Bugfixes * Added system checks for query name clashes of hidden relationships (:ticket:`26162`). * Made ``forms.FileField`` and ``utils.translation.lazy_number()`` picklable (:ticket:`26212`). docs/releases/1.9.3.txt +3 −0 Original line number Diff line number Diff line Loading @@ -24,3 +24,6 @@ Bugfixes * Fixed regression with an ``__in=qs`` lookup for a ``ForeignKey`` with ``to_field`` set (:ticket:`26196`). * Made ``forms.FileField`` and ``utils.translation.lazy_number()`` picklable (:ticket:`26212`). tests/forms_tests/tests/test_fields.py +3 −0 Original line number Diff line number Diff line Loading @@ -949,6 +949,9 @@ class FieldsTests(SimpleTestCase): # with here) self.assertTrue(f.has_changed('resume.txt', {'filename': 'resume.txt', 'content': 'My resume'})) def test_file_picklable(self): self.assertIsInstance(pickle.loads(pickle.dumps(FileField())), FileField) # ImageField ################################################################## @skipIf(Image is None, "Pillow is required to test ImageField") Loading tests/i18n/tests.py +8 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,14 @@ class TranslationTests(SimpleTestCase): self.assertTrue(ungettext_lazy('%d good result', '%d good results')) self.assertFalse(ungettext_lazy('', '')) def test_ungettext_lazy_pickle(self): s1 = ungettext_lazy('%d good result', '%d good results') self.assertEqual(s1 % 1, '1 good result') self.assertEqual(s1 % 8, '8 good results') s2 = pickle.loads(pickle.dumps(s1)) self.assertEqual(s2 % 1, '1 good result') self.assertEqual(s2 % 8, '8 good results') @override_settings(LOCALE_PATHS=extended_locale_paths) def test_pgettext(self): trans_real._active = local() Loading Loading
django/utils/translation/__init__.py +7 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,8 @@ def lazy_number(func, resultclass, number=None, **kwargs): kwargs['number'] = number proxy = lazy(func, resultclass)(**kwargs) else: original_kwargs = kwargs.copy() class NumberAwareString(resultclass): def __bool__(self): return bool(kwargs['singular']) Loading Loading @@ -134,9 +136,14 @@ def lazy_number(func, resultclass, number=None, **kwargs): return translated proxy = lazy(lambda **kwargs: NumberAwareString(), NumberAwareString)(**kwargs) proxy.__reduce__ = lambda: (_lazy_number_unpickle, (func, resultclass, number, original_kwargs)) return proxy def _lazy_number_unpickle(func, resultclass, number, kwargs): return lazy_number(func, resultclass, number=number, **kwargs) def ngettext_lazy(singular, plural, number=None): return lazy_number(ngettext, str, singular=singular, plural=plural, number=number) Loading
docs/releases/1.8.10.txt +3 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,6 @@ Bugfixes * Added system checks for query name clashes of hidden relationships (:ticket:`26162`). * Made ``forms.FileField`` and ``utils.translation.lazy_number()`` picklable (:ticket:`26212`).
docs/releases/1.9.3.txt +3 −0 Original line number Diff line number Diff line Loading @@ -24,3 +24,6 @@ Bugfixes * Fixed regression with an ``__in=qs`` lookup for a ``ForeignKey`` with ``to_field`` set (:ticket:`26196`). * Made ``forms.FileField`` and ``utils.translation.lazy_number()`` picklable (:ticket:`26212`).
tests/forms_tests/tests/test_fields.py +3 −0 Original line number Diff line number Diff line Loading @@ -949,6 +949,9 @@ class FieldsTests(SimpleTestCase): # with here) self.assertTrue(f.has_changed('resume.txt', {'filename': 'resume.txt', 'content': 'My resume'})) def test_file_picklable(self): self.assertIsInstance(pickle.loads(pickle.dumps(FileField())), FileField) # ImageField ################################################################## @skipIf(Image is None, "Pillow is required to test ImageField") Loading
tests/i18n/tests.py +8 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,14 @@ class TranslationTests(SimpleTestCase): self.assertTrue(ungettext_lazy('%d good result', '%d good results')) self.assertFalse(ungettext_lazy('', '')) def test_ungettext_lazy_pickle(self): s1 = ungettext_lazy('%d good result', '%d good results') self.assertEqual(s1 % 1, '1 good result') self.assertEqual(s1 % 8, '8 good results') s2 = pickle.loads(pickle.dumps(s1)) self.assertEqual(s2 % 1, '1 good result') self.assertEqual(s2 % 8, '8 good results') @override_settings(LOCALE_PATHS=extended_locale_paths) def test_pgettext(self): trans_real._active = local() Loading