From 6b7bd079a6fc4e84553262b65074dbe0af456b03 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Mon, 23 Sep 2019 15:51:43 -0400 Subject: [3.0.x] Fixed #30796 -- Prevented select_related() from mutating a queryset on chaining. Thanks Darren Maki for the report. Backport of 37f8f293775d0b672da8ae369d9a4e17f1db7851 from master --- tests/queries/test_query.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tests') diff --git a/tests/queries/test_query.py b/tests/queries/test_query.py index c6a659fe97..f0d3a6260a 100644 --- a/tests/queries/test_query.py +++ b/tests/queries/test_query.py @@ -106,3 +106,10 @@ class TestQuery(SimpleTestCase): self.assertIsInstance(b_isnull, RelatedIsNull) self.assertIsInstance(b_isnull.lhs, SimpleCol) self.assertEqual(b_isnull.lhs.target, ObjectC._meta.get_field('objectb')) + + def test_clone_select_related(self): + query = Query(Item) + query.add_select_related(['creator']) + clone = query.clone() + clone.add_select_related(['note', 'creator__extra']) + self.assertEqual(query.select_related, {'creator': {}}) -- cgit v1.3