From 59ffafa1d2f466fa7aacbe74fe2787b2004b7871 Mon Sep 17 00:00:00 2001 From: Iain Watts Date: Wed, 15 May 2019 16:09:16 -0700 Subject: Fixed #30482 -- Prevented unnecessary evaluation of lookup.queryset in prefetch_related_objects(). --- tests/prefetch_related/tests.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/prefetch_related/tests.py b/tests/prefetch_related/tests.py index 0b3caed0dc..49c7fd8ff6 100644 --- a/tests/prefetch_related/tests.py +++ b/tests/prefetch_related/tests.py @@ -400,11 +400,16 @@ class CustomPrefetchTests(TestCase): "'houses' lookup was already seen with a different queryset. You " "may need to adjust the ordering of your lookups." ) - with self.assertRaisesMessage(ValueError, msg): - self.traverse_qs( - Person.objects.prefetch_related('houses__rooms', Prefetch('houses', queryset=House.objects.all())), - [['houses', 'rooms']] - ) + # lookup.queryset shouldn't be evaluated. + with self.assertNumQueries(3): + with self.assertRaisesMessage(ValueError, msg): + self.traverse_qs( + Person.objects.prefetch_related( + 'houses__rooms', + Prefetch('houses', queryset=House.objects.all()), + ), + [['houses', 'rooms']], + ) # Ambiguous: Lookup houses_lst doesn't yet exist when performing houses_lst__rooms. msg = ( -- cgit v1.3