diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-05-08 11:29:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-08 11:29:17 +0200 |
| commit | ef9f2eb69c9396683cefa742bc7d0a0792090e8d (patch) | |
| tree | ef158999fca3f62af9eddb6bf101e05cb578385d /tests | |
| parent | f9c1d1884eb3b5328901453389b2519149935a7c (diff) | |
Refs #30462 -- Added test for conditional aggregation on annotated subquery.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/aggregation/test_filter_argument.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/aggregation/test_filter_argument.py b/tests/aggregation/test_filter_argument.py index 5848fc9a12..0339afcb51 100644 --- a/tests/aggregation/test_filter_argument.py +++ b/tests/aggregation/test_filter_argument.py @@ -1,7 +1,7 @@ import datetime from decimal import Decimal -from django.db.models import Case, Count, F, Q, Sum, When +from django.db.models import Case, Count, F, OuterRef, Q, Subquery, Sum, When from django.test import TestCase from .models import Author, Book, Publisher @@ -95,3 +95,15 @@ class FilteredAggregateTests(TestCase): cnt=Count('pk', filter=Q(double_age__gt=100)), ) self.assertEqual(aggs['cnt'], 2) + + def test_filtered_aggregate_ref_subquery_annotation(self): + aggs = Author.objects.annotate( + earliest_book_year=Subquery( + Book.objects.filter( + contact__pk=OuterRef('pk'), + ).order_by('pubdate').values('pubdate__year')[:1] + ), + ).aggregate( + cnt=Count('pk', filter=Q(earliest_book_year=2008)), + ) + self.assertEqual(aggs['cnt'], 2) |
