diff options
author | Iain Watts <iain@rover.com> | 2019-05-15 16:09:16 -0700 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-05-16 21:39:55 +0200 |
commit | 59ffafa1d2f466fa7aacbe74fe2787b2004b7871 (patch) | |
tree | 40f3bcab87648184de222f72c17608f680dbeba6 /tests/prefetch_related | |
parent | 4442ee8a51ad04730e4af2833728c345042b69cf (diff) | |
download | django-59ffafa1d2f466fa7aacbe74fe2787b2004b7871.tar.gz |
Fixed #30482 -- Prevented unnecessary evaluation of lookup.queryset in prefetch_related_objects().
Diffstat (limited to 'tests/prefetch_related')
-rw-r--r-- | tests/prefetch_related/tests.py | 15 |
1 files changed, 10 insertions, 5 deletions
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 = ( |