From 967f8750ab63f9ca74ce63ada580ccc5b10b3f3b Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Mon, 7 Nov 2022 09:01:50 +0100 Subject: Refs #27849 -- Fixed filtered aggregates crash on filters that match everything. --- tests/aggregation/test_filter_argument.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tests') diff --git a/tests/aggregation/test_filter_argument.py b/tests/aggregation/test_filter_argument.py index caf2cd3d6f..3ef0401d4d 100644 --- a/tests/aggregation/test_filter_argument.py +++ b/tests/aggregation/test_filter_argument.py @@ -205,3 +205,16 @@ class FilteredAggregateTests(TestCase): max_rating=Max("rating", filter=Q(rating__in=[])) ) self.assertEqual(aggregate, {"max_rating": None}) + + def test_filtered_aggregate_full_condition(self): + book = Book.objects.annotate( + authors_count=Count( + "authors", + filter=~Q(authors__in=[]), + ), + ).get(pk=self.b1.pk) + self.assertEqual(book.authors_count, 2) + aggregate = Book.objects.aggregate( + max_rating=Max("rating", filter=~Q(rating__in=[])) + ) + self.assertEqual(aggregate, {"max_rating": 4.5}) -- cgit v1.3