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 5a4d7285bd.

Fixed in 5a4d7285bd.
This commit is contained in:
Mariusz Felisiak 2019-12-23 12:17:56 +01:00 committed by GitHub
parent 67ea35df52
commit 45bcc6feac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 0 deletions

View File

@ -538,6 +538,21 @@ class BasicExpressionsTests(TestCase):
) )
self.assertCountEqual(contrived.values_list(), outer.values_list()) 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): def test_nested_subquery_outer_ref_2(self):
first = Time.objects.create(time='09:00') first = Time.objects.create(time='09:00')
second = Time.objects.create(time='17:00') second = Time.objects.create(time='17:00')