summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/expressions/tests.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py
index 66e19291b2..58682afd82 100644
--- a/tests/expressions/tests.py
+++ b/tests/expressions/tests.py
@@ -512,6 +512,25 @@ class BasicExpressionsTests(TestCase):
Employee.objects.exclude(company_point_of_contact_set=None).values('pk')
)
+ def test_subquery_eq(self):
+ qs = Employee.objects.annotate(
+ is_ceo=Exists(Company.objects.filter(ceo=OuterRef('pk'))),
+ is_point_of_contact=Exists(
+ Company.objects.filter(point_of_contact=OuterRef('pk')),
+ ),
+ small_company=Exists(
+ queryset=Company.objects.filter(num_employees__lt=200),
+ ),
+ ).filter(is_ceo=True, is_point_of_contact=False, small_company=True)
+ self.assertNotEqual(
+ qs.query.annotations['is_ceo'],
+ qs.query.annotations['is_point_of_contact'],
+ )
+ self.assertNotEqual(
+ qs.query.annotations['is_ceo'],
+ qs.query.annotations['small_company'],
+ )
+
def test_in_subquery(self):
# This is a contrived test (and you really wouldn't write this query),
# but it is a succinct way to test the __in=Subquery() construct.