From 77f9e6bcd3302eda1a2f9f9e2ce5ac8983b37951 Mon Sep 17 00:00:00 2001 From: sharonwoo <29156885+sharonwoo@users.noreply.github.com> Date: Fri, 27 Sep 2024 09:17:07 +0800 Subject: [5.2.x] Fixed #35235 -- Removed caching of BaseExpression._output_field_or_none. Backport of cbb0812683cf3236e4a4003bf7f74b119d3cde0c from main. --- tests/postgres_tests/test_aggregates.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'tests/postgres_tests') diff --git a/tests/postgres_tests/test_aggregates.py b/tests/postgres_tests/test_aggregates.py index 885512cfca..ddd3b6bbd0 100644 --- a/tests/postgres_tests/test_aggregates.py +++ b/tests/postgres_tests/test_aggregates.py @@ -334,6 +334,22 @@ class TestGeneralAggregate(PostgreSQLTestCase): ) self.assertCountEqual(qs, [[], [5]]) + def test_array_agg_with_empty_filter_and_default_values(self): + for filter_value in ([-1], []): + for default_value in ([], Value([])): + with self.subTest(filter=filter_value, default=default_value): + queryset = AggregateTestModel.objects.annotate( + test_array_agg=ArrayAgg( + "stattestmodel__int1", + filter=Q(pk__in=filter_value), + default=default_value, + ) + ) + self.assertSequenceEqual( + queryset.values_list("test_array_agg", flat=True), + [[], [], [], []], + ) + def test_bit_and_general(self): values = AggregateTestModel.objects.filter(integer_field__in=[0, 1]).aggregate( bitand=BitAnd("integer_field") -- cgit v1.3