diff options
author | Andriy Sokolovskiy <me@asokolovskiy.com> | 2015-05-29 14:45:36 +0300 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2015-06-02 09:54:53 -0400 |
commit | 2913d6b77d8b2082dc79df5503b7dd3ddd05fcc1 (patch) | |
tree | d398a8d601c48e8b1891fb8542f9a6b5999f596e /tests/queryset_pickle | |
parent | e1e6399c2ce39a3656155c4d704340eac83926a7 (diff) | |
download | django-2913d6b77d8b2082dc79df5503b7dd3ddd05fcc1.tar.gz |
Fixed #24831 -- Fixed pickling queryset with prefetch_related() after deleting objects.
Diffstat (limited to 'tests/queryset_pickle')
-rw-r--r-- | tests/queryset_pickle/tests.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/queryset_pickle/tests.py b/tests/queryset_pickle/tests.py index 5e42d90520..6ac51c8431 100644 --- a/tests/queryset_pickle/tests.py +++ b/tests/queryset_pickle/tests.py @@ -119,6 +119,20 @@ class PickleabilityTestCase(TestCase): groups = pickle.loads(pickle.dumps(groups)) self.assertQuerysetEqual(groups, [g], lambda x: x) + def test_pickle_prefetch_related_with_m2m_and_objects_deletion(self): + """ + #24831 -- Cached properties on ManyToOneRel created in QuerySet.delete() + caused subsequent QuerySet pickling to fail. + """ + g = Group.objects.create(name='foo') + m2m = M2MModel.objects.create() + m2m.groups.add(g) + Group.objects.all().delete() + + m2ms = M2MModel.objects.prefetch_related('groups') + m2ms = pickle.loads(pickle.dumps(m2ms)) + self.assertQuerysetEqual(m2ms, [m2m], lambda x: x) + def test_missing_django_version_unpickling(self): """ #21430 -- Verifies a warning is raised for querysets that are |