summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2023-05-31 18:04:17 -0400
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-06-01 20:27:06 +0100
commit738386470d899c61cb1980233c1e7872ba78e679 (patch)
tree22a61a0b82c4fbec2faf15d3527dbfcf7b92c047 /tests
parentdae052d823dd66edcd0dd7fe5542d2c6a3a498d0 (diff)
[4.2.x] Fixed #34612 -- Fixed QuerySet.only() crash on reverse relationships.
Regression in b3db6c8dcb5145f7d45eff517bcd96460475c879. Thanks Ian Cubitt for the report. This also corrected test_inheritance_deferred2() test which was previously properly defined and marked as an expected failure but was then wrongly adjusted to mask the lack of support for per-alias deferral that was fixed by #21204. Backport of 2cf76f2d5d1aa16acfadaf53db3d30128a34b088 from main
Diffstat (limited to 'tests')
-rw-r--r--tests/defer_regress/tests.py10
-rw-r--r--tests/select_related_onetoone/tests.py3
2 files changed, 13 insertions, 0 deletions
diff --git a/tests/defer_regress/tests.py b/tests/defer_regress/tests.py
index ab2be085c6..0d389777a1 100644
--- a/tests/defer_regress/tests.py
+++ b/tests/defer_regress/tests.py
@@ -203,6 +203,16 @@ class DeferRegressionTest(TestCase):
self.assertEqual(i.one_to_one_item.name, "second")
with self.assertNumQueries(1):
self.assertEqual(i.value, 42)
+ with self.assertNumQueries(1):
+ i = Item.objects.select_related("one_to_one_item").only(
+ "name", "one_to_one_item__item"
+ )[0]
+ self.assertEqual(i.one_to_one_item.pk, o2o.pk)
+ self.assertEqual(i.name, "first")
+ with self.assertNumQueries(1):
+ self.assertEqual(i.one_to_one_item.name, "second")
+ with self.assertNumQueries(1):
+ self.assertEqual(i.value, 42)
def test_defer_with_select_related(self):
item1 = Item.objects.create(name="first", value=47)
diff --git a/tests/select_related_onetoone/tests.py b/tests/select_related_onetoone/tests.py
index 8bdfb83fe8..83462ed071 100644
--- a/tests/select_related_onetoone/tests.py
+++ b/tests/select_related_onetoone/tests.py
@@ -249,6 +249,9 @@ class ReverseSelectRelatedTestCase(TestCase):
self.assertEqual(p.child1.name2, "n2")
p = qs.get(name2="n2")
with self.assertNumQueries(0):
+ self.assertEqual(p.child1.value, 1)
+ self.assertEqual(p.child1.child4.value4, 4)
+ with self.assertNumQueries(2):
self.assertEqual(p.child1.name1, "n1")
self.assertEqual(p.child1.child4.name1, "n1")