summaryrefslogtreecommitdiff
path: root/tests/queryset_pickle
diff options
context:
space:
mode:
authorSimon Charette <charettes@users.noreply.github.com>2017-10-18 21:43:53 -0400
committerTim Graham <timograham@gmail.com>2017-10-18 21:43:53 -0400
commitd4fb742094dba99cb0db17f3aa9d9f5159af676f (patch)
tree2335588c666880ad56415e4ea7c0edb6b66cf98e /tests/queryset_pickle
parent4a861e88508eacdb8d0d5bc43f9a0576cedb9f22 (diff)
downloaddjango-d4fb742094dba99cb0db17f3aa9d9f5159af676f.tar.gz
Refs #28575 -- Made RelatedObjectDoesNotExist classes pickable.
Thanks to Rachel Tobin for the initial __qualname__ work and tests.
Diffstat (limited to 'tests/queryset_pickle')
-rw-r--r--tests/queryset_pickle/models.py1
-rw-r--r--tests/queryset_pickle/tests.py12
2 files changed, 13 insertions, 0 deletions
diff --git a/tests/queryset_pickle/models.py b/tests/queryset_pickle/models.py
index fba65d7a9e..1275ed6f20 100644
--- a/tests/queryset_pickle/models.py
+++ b/tests/queryset_pickle/models.py
@@ -45,6 +45,7 @@ class Happening(models.Model):
name = models.CharField(blank=True, max_length=100, default="test")
number1 = models.IntegerField(blank=True, default=standalone_number)
number2 = models.IntegerField(blank=True, default=Numbers.get_static_number)
+ event = models.OneToOneField(Event, models.CASCADE, null=True)
class Container:
diff --git a/tests/queryset_pickle/tests.py b/tests/queryset_pickle/tests.py
index ebefb690df..27f509a9c1 100644
--- a/tests/queryset_pickle/tests.py
+++ b/tests/queryset_pickle/tests.py
@@ -55,6 +55,18 @@ class PickleabilityTestCase(TestCase):
klass = Event.MultipleObjectsReturned
self.assertIs(pickle.loads(pickle.dumps(klass)), klass)
+ def test_forward_relatedobjectdoesnotexist_class(self):
+ # ForwardManyToOneDescriptor
+ klass = Event.group.RelatedObjectDoesNotExist
+ self.assertIs(pickle.loads(pickle.dumps(klass)), klass)
+ # ForwardOneToOneDescriptor
+ klass = Happening.event.RelatedObjectDoesNotExist
+ self.assertIs(pickle.loads(pickle.dumps(klass)), klass)
+
+ def test_reverse_one_to_one_relatedobjectdoesnotexist_class(self):
+ klass = Event.happening.RelatedObjectDoesNotExist
+ self.assertIs(pickle.loads(pickle.dumps(klass)), klass)
+
def test_manager_pickle(self):
pickle.loads(pickle.dumps(Happening.objects))