From 732cf4c5b40def413a143b9449a9a9991fe0244f Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Thu, 18 Feb 2021 21:32:38 +0100 Subject: [PATCH] [3.2.x] Refs #32455 -- Added tests for left combining an empty Q() with boolean expressions. Backport of efce21497cc21140c5fe2b133064cd815c97b3f5 from master --- tests/expressions/tests.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py index 463150f8a1..bb8aeda8b0 100644 --- a/tests/expressions/tests.py +++ b/tests/expressions/tests.py @@ -804,6 +804,18 @@ class BasicExpressionsTests(TestCase): [self.example_inc.ceo, self.max], ) + def test_boolean_expression_combined_with_empty_Q(self): + is_poc = Company.objects.filter(point_of_contact=OuterRef('pk')) + self.gmbh.point_of_contact = self.max + self.gmbh.save() + tests = [ + Exists(is_poc) & Q(), + Exists(is_poc) | Q(), + ] + for conditions in tests: + with self.subTest(conditions): + self.assertCountEqual(Employee.objects.filter(conditions), [self.max]) + class IterableLookupInnerExpressionsTests(TestCase): @classmethod