From 05bcd5baafc0a5783923e32d2b7e2b7fff7d152a Mon Sep 17 00:00:00 2001 From: sarahboyce Date: Sat, 14 Jan 2023 14:36:23 +0100 Subject: [PATCH] Refs #30129 -- Added test for create() with F() expression in Subquery. Fixed in 35431298226165986ad07e91f9d3aca721ff38ec. --- tests/expressions/tests.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py index 465edc54b5..7db6013819 100644 --- a/tests/expressions/tests.py +++ b/tests/expressions/tests.py @@ -776,6 +776,24 @@ class BasicExpressionsTests(TestCase): # contain nested aggregates. self.assertNotIn("GROUP BY", sql) + def test_object_create_with_f_expression_in_subquery(self): + Company.objects.create( + name="Big company", num_employees=100000, num_chairs=1, ceo=self.max + ) + biggest_company = Company.objects.create( + name="Biggest company", + num_chairs=1, + ceo=self.max, + num_employees=Subquery( + Company.objects.order_by("-num_employees") + .annotate(max_num_employees=Max("num_employees")) + .annotate(new_num_employees=F("max_num_employees") + 1) + .values("new_num_employees")[:1] + ), + ) + biggest_company.refresh_from_db() + self.assertEqual(biggest_company.num_employees, 100001) + @skipUnlessDBFeature("supports_over_clause") def test_aggregate_rawsql_annotation(self): with self.assertNumQueries(1) as ctx: