summaryrefslogtreecommitdiff
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
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.
-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')