summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/foreign_object/tests.py17
-rw-r--r--tests/many_to_one/models.py2
-rw-r--r--tests/many_to_one/tests.py7
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)