Fixed #26617 -- Added distinct argument to contrib.postgres's StringAgg.

This commit is contained in:
Rustam Kashapov 2016-05-15 12:53:16 +03:00 committed by Tim Graham
parent 149ace94df
commit df8412d2e5
4 changed files with 33 additions and 5 deletions

View file

@ -111,6 +111,24 @@ class TestGeneralAggregate(PostgreSQLTestCase):
self.assertEqual(values, {'stringagg': ''})
class TestStringAggregateDistinct(PostgreSQLTestCase):
@classmethod
def setUpTestData(cls):
AggregateTestModel.objects.create(char_field='Foo')
AggregateTestModel.objects.create(char_field='Foo')
AggregateTestModel.objects.create(char_field='Bar')
def test_string_agg_distinct_false(self):
values = AggregateTestModel.objects.aggregate(stringagg=StringAgg('char_field', delimiter=' ', distinct=False))
self.assertEqual(values['stringagg'].count('Foo'), 2)
self.assertEqual(values['stringagg'].count('Bar'), 1)
def test_string_agg_distinct_true(self):
values = AggregateTestModel.objects.aggregate(stringagg=StringAgg('char_field', delimiter=' ', distinct=True))
self.assertEqual(values['stringagg'].count('Foo'), 1)
self.assertEqual(values['stringagg'].count('Bar'), 1)
class TestStatisticsAggregate(PostgreSQLTestCase):
@classmethod
def setUpTestData(cls):