MCPcopy
hub / github.com/django/django / test_generic_prefetch

Method test_generic_prefetch

tests/generic_relations/tests.py:752–782  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

750 )
751
752 def test_generic_prefetch(self):
753 tagged_vegetable = TaggedItem.objects.create(
754 tag="great", content_object=self.bacon
755 )
756 tagged_animal = TaggedItem.objects.create(
757 tag="awesome", content_object=self.platypus
758 )
759 # Getting the instances again so that content object is deferred.
760 tagged_vegetable = TaggedItem.objects.get(pk=tagged_vegetable.pk)
761 tagged_animal = TaggedItem.objects.get(pk=tagged_animal.pk)
762
763 with self.assertNumQueries(2):
764 prefetch_related_objects(
765 [tagged_vegetable, tagged_animal],
766 GenericPrefetch(
767 "content_object",
768 [Vegetable.objects.all(), Animal.objects.only("common_name")],
769 ),
770 )
771 with self.assertNumQueries(0):
772 self.assertEqual(tagged_vegetable.content_object.name, self.bacon.name)
773 with self.assertNumQueries(0):
774 self.assertEqual(
775 tagged_animal.content_object.common_name,
776 self.platypus.common_name,
777 )
778 with self.assertNumQueries(1):
779 self.assertEqual(
780 tagged_animal.content_object.latin_name,
781 self.platypus.latin_name,
782 )
783
784 def test_fetch_mode_fetch_peers(self):
785 TaggedItem.objects.bulk_create(

Callers

nothing calls this directly

Calls 7

prefetch_related_objectsFunction · 0.90
GenericPrefetchClass · 0.90
assertNumQueriesMethod · 0.80
onlyMethod · 0.80
createMethod · 0.45
getMethod · 0.45
allMethod · 0.45

Tested by

no test coverage detected