diff options
| author | Simon Charette <charette.s@gmail.com> | 2023-05-31 18:04:17 -0400 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-06-01 20:27:06 +0100 |
| commit | 738386470d899c61cb1980233c1e7872ba78e679 (patch) | |
| tree | 22a61a0b82c4fbec2faf15d3527dbfcf7b92c047 /tests | |
| parent | dae052d823dd66edcd0dd7fe5542d2c6a3a498d0 (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.py | 10 | ||||
| -rw-r--r-- | tests/select_related_onetoone/tests.py | 3 |
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") |
