From a03ac61332fe356a60e25d5ecd7d4cd7ee07c345 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 15 Jul 2016 15:54:11 -0400 Subject: [1.10.x] Fixed #26900 -- Fixed crash accessing deferred FileFields. Backport of 7c33aa8a87d323f0e8e5368705aa8ba96f9819d0 from master --- tests/model_fields/test_filefield.py | 4 ++++ tests/model_fields/test_imagefield.py | 7 +++++++ 2 files changed, 11 insertions(+) (limited to 'tests') diff --git a/tests/model_fields/test_filefield.py b/tests/model_fields/test_filefield.py index 3b0ef5726d..19d414161d 100644 --- a/tests/model_fields/test_filefield.py +++ b/tests/model_fields/test_filefield.py @@ -50,3 +50,7 @@ class FileFieldTests(TestCase): d = Document.objects.create(myfile='something.txt') d.refresh_from_db() self.assertIs(d.myfile.instance, d) + + def test_defer(self): + Document.objects.create(myfile='something.txt') + self.assertEqual(Document.objects.defer('myfile')[0].myfile, 'something.txt') diff --git a/tests/model_fields/test_imagefield.py b/tests/model_fields/test_imagefield.py index f9ae83b8b2..f4e8f515a2 100644 --- a/tests/model_fields/test_imagefield.py +++ b/tests/model_fields/test_imagefield.py @@ -188,6 +188,13 @@ class ImageFieldTests(ImageFieldTestMixin, TestCase): loaded_p = pickle.loads(dump) self.assertEqual(p.mugshot, loaded_p.mugshot) + def test_defer(self): + self.PersonModel.objects.create(name='Joe', mugshot=self.file1) + with self.assertNumQueries(1): + qs = list(self.PersonModel.objects.defer('mugshot')) + with self.assertNumQueries(0): + self.assertEqual(qs[0].name, 'Joe') + @skipIf(Image is None, "Pillow is required to test ImageField") class ImageFieldTwoDimensionsTests(ImageFieldTestMixin, TestCase): -- cgit v1.3