summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorgarybadwal <gurpreet071999@gmail.com>2026-04-16 11:46:13 +0530
committerJacob Walls <jacobtylerwalls@gmail.com>2026-04-18 16:39:50 +0300
commit820c7d3248af6afbdf3390c97b29e41ba126a421 (patch)
treea8de1afc25db3e6bec1e822bed53b37100f4554c /tests
parent241b8e1aab7fc71018a059467b2ba17bce6556cc (diff)
Fixed #37036 -- Added missing flat=True arg in DeferredAttribute.fetch_many().
Diffstat (limited to 'tests')
-rw-r--r--tests/defer/tests.py14
-rw-r--r--tests/many_to_one/tests.py13
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/defer/tests.py b/tests/defer/tests.py
index 1a5f333fa1..ea7703c1e3 100644
--- a/tests/defer/tests.py
+++ b/tests/defer/tests.py
@@ -219,6 +219,20 @@ class DeferTests(AssertionMixin, TestCase):
with self.assertNumQueries(1):
p1.value
+ def test_defer_fk_fetch_mode_fetch_peers(self):
+ p1, p2 = Primary.objects.fetch_mode(FETCH_PEERS).defer("related")
+ with self.assertNumQueries(2):
+ self.assertEqual(p1.related, self.s1)
+ with self.assertNumQueries(0):
+ self.assertEqual(p2.related, self.s1)
+
+ def test_only_fk_fetch_mode_fetch_peers(self):
+ p1, p2 = Primary.objects.fetch_mode(FETCH_PEERS).only("name")
+ with self.assertNumQueries(2):
+ self.assertEqual(p1.related, self.s1)
+ with self.assertNumQueries(0):
+ self.assertEqual(p2.related, self.s1)
+
def test_only_fetch_mode_raise(self):
p1 = Primary.objects.fetch_mode(RAISE).only("name").get(name="p1")
msg = "Fetching of Primary.value blocked."
diff --git a/tests/many_to_one/tests.py b/tests/many_to_one/tests.py
index e161686906..d6149d521f 100644
--- a/tests/many_to_one/tests.py
+++ b/tests/many_to_one/tests.py
@@ -1002,3 +1002,16 @@ class ManyToOneTests(TestCase):
a2._state.fetch_mode,
FETCH_PEERS,
)
+
+ def test_fetch_mode_fetch_peers_reverse_with_deferred_fk(self):
+ Article.objects.create(
+ headline="Another article",
+ pub_date=datetime.date(2005, 7, 27),
+ reporter=self.r,
+ )
+ r = Reporter.objects.fetch_mode(FETCH_PEERS).get(pk=self.r.pk)
+ a1, a2 = r.article_set.defer("reporter")
+ with self.assertNumQueries(2):
+ self.assertEqual(a1.reporter, self.r)
+ with self.assertNumQueries(0):
+ self.assertEqual(a2.reporter, self.r)