(self)
| 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( |
nothing calls this directly
no test coverage detected