From f2bef2b7bc6c817af0f5fa77e1052a1f5ce12f71 Mon Sep 17 00:00:00 2001 From: Hasan Ramezani Date: Thu, 18 Feb 2021 14:01:48 +0100 Subject: Fixed #32455 -- Allowed right combining Q() with boolean expressions. --- tests/expressions/tests.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tests') diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py index 770a57d66e..9ecc033b6b 100644 --- a/tests/expressions/tests.py +++ b/tests/expressions/tests.py @@ -815,6 +815,14 @@ class BasicExpressionsTests(TestCase): Employee.objects.filter(Exists(is_poc) | Q(salary__lt=15)), [self.example_inc.ceo, self.max], ) + self.assertCountEqual( + Employee.objects.filter(Q(salary__gte=30) & Exists(is_ceo)), + [self.max], + ) + self.assertCountEqual( + Employee.objects.filter(Q(salary__lt=15) | Exists(is_poc)), + [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')) @@ -822,7 +830,9 @@ class BasicExpressionsTests(TestCase): self.gmbh.save() tests = [ Exists(is_poc) & Q(), + Q() & Exists(is_poc), Exists(is_poc) | Q(), + Q() | Exists(is_poc), ] for conditions in tests: with self.subTest(conditions): -- cgit v1.3