diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2010-04-15 12:41:08 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2010-04-15 12:41:08 +0000 |
| commit | 2faa3acb4bb55f1830d517473c4bfb1616f92726 (patch) | |
| tree | 0d39b2c702f6cc6e5cb898f6c07cceb0116beb27 /tests | |
| parent | d9aaad4e36ba2ebba13fd1c36da9eced4f7688ad (diff) | |
Fixed #13328 -- Added a __getstate__/__setstate__ pair to fields so that callable default values aren't pickled. Thanks to bkonkle for the report, and Vitaly Babiy for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12977 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/queryset_pickle/models.py | 12 | ||||
| -rw-r--r-- | tests/regressiontests/queryset_pickle/tests.py | 15 |
2 files changed, 26 insertions, 1 deletions
diff --git a/tests/regressiontests/queryset_pickle/models.py b/tests/regressiontests/queryset_pickle/models.py index ec4bbed096..b0cae0a41f 100644 --- a/tests/regressiontests/queryset_pickle/models.py +++ b/tests/regressiontests/queryset_pickle/models.py @@ -1,8 +1,20 @@ +import datetime from django.db import models from django.utils.translation import ugettext_lazy as _ +class Numbers(object): + + @classmethod + def get_number(self): + return 2 + class Group(models.Model): name = models.CharField(_('name'), max_length=100) class Event(models.Model): group = models.ForeignKey(Group) + +class Happening(models.Model): + when = models.DateTimeField(blank=True, default=datetime.datetime.now) + name = models.CharField(blank=True, max_length=100, default=lambda:"test") + number = models.IntegerField(blank=True, default=Numbers.get_number) diff --git a/tests/regressiontests/queryset_pickle/tests.py b/tests/regressiontests/queryset_pickle/tests.py index 8191403be7..8384df5647 100644 --- a/tests/regressiontests/queryset_pickle/tests.py +++ b/tests/regressiontests/queryset_pickle/tests.py @@ -1,8 +1,9 @@ import pickle +import datetime from django.test import TestCase -from models import Group, Event +from models import Group, Event, Happening class PickleabilityTestCase(TestCase): @@ -12,3 +13,15 @@ class PickleabilityTestCase(TestCase): def test_related_field(self): g = Group.objects.create(name="Ponies Who Own Maybachs") self.assert_pickles(Event.objects.filter(group=g.id)) + + def test_datetime_callable_default_all(self): + self.assert_pickles(Happening.objects.all()) + + def test_datetime_callable_default_filter(self): + self.assert_pickles(Happening.objects.filter(when=datetime.datetime.now())) + + def test_lambda_as_default(self): + self.assert_pickles(Happening.objects.filter(name="test")) + + def test_callable_as_default(self): + self.assert_pickles(Happening.objects.filter(number=1)) |
