diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/foreign_object/tests.py | 17 | ||||
| -rw-r--r-- | tests/many_to_one/models.py | 2 | ||||
| -rw-r--r-- | tests/many_to_one/tests.py | 7 |
3 files changed, 17 insertions, 9 deletions
diff --git a/tests/foreign_object/tests.py b/tests/foreign_object/tests.py index 59d4357802..6af6def6d7 100644 --- a/tests/foreign_object/tests.py +++ b/tests/foreign_object/tests.py @@ -69,12 +69,10 @@ class MultiColumnFKTests(TestCase): membership_country_id=self.soviet_union.id, person_id=self.bob.id, group_id=self.republican.id) - self.assertQuerysetEqual( - self.bob.membership_set.all(), [ - self.cia.id - ], - attrgetter("group_id") - ) + with self.assertNumQueries(1): + membership = self.bob.membership_set.get() + self.assertEqual(membership.group_id, self.cia.id) + self.assertIs(membership.person, self.bob) def test_query_filters_correctly(self): @@ -198,8 +196,11 @@ class MultiColumnFKTests(TestCase): list(p.membership_set.all()) for p in Person.objects.prefetch_related('membership_set').order_by('pk')] - normal_membership_sets = [list(p.membership_set.all()) - for p in Person.objects.order_by('pk')] + with self.assertNumQueries(7): + normal_membership_sets = [ + list(p.membership_set.all()) + for p in Person.objects.order_by('pk') + ] self.assertEqual(membership_sets, normal_membership_sets) def test_m2m_through_forward_returns_valid_members(self): diff --git a/tests/many_to_one/models.py b/tests/many_to_one/models.py index 2f98bebdc0..ef784cfbe2 100644 --- a/tests/many_to_one/models.py +++ b/tests/many_to_one/models.py @@ -71,7 +71,7 @@ class Child(models.Model): class ToFieldChild(models.Model): - parent = models.ForeignKey(Parent, models.CASCADE, to_field='name') + parent = models.ForeignKey(Parent, models.CASCADE, to_field='name', related_name='to_field_children') # Multiple paths to the same model (#7110, #7125) diff --git a/tests/many_to_one/tests.py b/tests/many_to_one/tests.py index b04e6ad77a..28430256dc 100644 --- a/tests/many_to_one/tests.py +++ b/tests/many_to_one/tests.py @@ -672,3 +672,10 @@ class ManyToOneTests(TestCase): child = ToFieldChild.objects.create(parent=parent) with self.assertNumQueries(0): self.assertIs(child.parent, parent) + + def test_reverse_foreign_key_instance_to_field_caching(self): + parent = Parent.objects.create(name='a') + ToFieldChild.objects.create(parent=parent) + child = parent.to_field_children.get() + with self.assertNumQueries(0): + self.assertIs(child.parent, parent) |
