From 74b91b3888383fca28dea00e0e1ffb5aecec7c0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anssi=20K=C3=A4=C3=A4ri=C3=A4inen?= Date: Sat, 14 Sep 2013 10:33:12 +0300 Subject: [PATCH] Added tests for double-pickling a QuerySet Refs #21102. --- tests/queryset_pickle/tests.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/queryset_pickle/tests.py b/tests/queryset_pickle/tests.py index 384073ad56..602739fa54 100644 --- a/tests/queryset_pickle/tests.py +++ b/tests/queryset_pickle/tests.py @@ -94,3 +94,15 @@ class PickleabilityTestCase(TestCase): def test_specialized_queryset(self): self.assert_pickles(Happening.objects.values('name')) self.assert_pickles(Happening.objects.values('name').dates('when', 'year')) + + def test_pickle_prefetch_related_idempotence(self): + g = Group.objects.create(name='foo') + groups = Group.objects.prefetch_related('event_set') + + # First pickling + groups = pickle.loads(pickle.dumps(groups)) + self.assertQuerysetEqual(groups, [g], lambda x: x) + + # Second pickling + groups = pickle.loads(pickle.dumps(groups)) + self.assertQuerysetEqual(groups, [g], lambda x: x)