summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2019-05-08 11:29:17 +0200
committerGitHub <noreply@github.com>2019-05-08 11:29:17 +0200
commitef9f2eb69c9396683cefa742bc7d0a0792090e8d (patch)
treeef158999fca3f62af9eddb6bf101e05cb578385d
parentf9c1d1884eb3b5328901453389b2519149935a7c (diff)
Refs #30462 -- Added test for conditional aggregation on annotated subquery.
-rw-r--r--tests/aggregation/test_filter_argument.py14
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)