summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2019-12-23 12:17:56 +0100
committerGitHub <noreply@github.com>2019-12-23 12:17:56 +0100
commit45bcc6feac68165eb3642d3c308c74b4828e679e (patch)
treedfe350a5a720c32fbfd86e7512666727ef567d13 /tests
parent67ea35df52f2e29bafca8881e4f356934061644e (diff)
Refs #31115 -- Added test for nested subquery that references related fields.
Thanks Dmitriy Gunchenko for the report and Simon Charette for the analysis and tests. Regression in 5a4d7285bd10bd40d9f7e574a7c421eb21094858. Fixed in 5a4d7285bd10bd40d9f7e574a7c421eb21094858.
Diffstat (limited to 'tests')
-rw-r--r--tests/expressions/tests.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py
index ee8b246966..1e6d4c967c 100644
--- a/tests/expressions/tests.py
+++ b/tests/expressions/tests.py
@@ -538,6 +538,21 @@ class BasicExpressionsTests(TestCase):
)
self.assertCountEqual(contrived.values_list(), outer.values_list())
+ def test_nested_subquery_join_outer_ref(self):
+ inner = Employee.objects.filter(pk=OuterRef('ceo__pk')).values('pk')
+ qs = Employee.objects.annotate(
+ ceo_company=Subquery(
+ Company.objects.filter(
+ ceo__in=inner,
+ ceo__pk=OuterRef('pk'),
+ ).values('pk'),
+ ),
+ )
+ self.assertSequenceEqual(
+ qs.values_list('ceo_company', flat=True),
+ [self.example_inc.pk, self.foobar_ltd.pk, self.gmbh.pk],
+ )
+
def test_nested_subquery_outer_ref_2(self):
first = Time.objects.create(time='09:00')
second = Time.objects.create(time='17:00')