diff --git a/tests/regressiontests/aggregation_regress/tests.py b/tests/regressiontests/aggregation_regress/tests.py
index 1498f19..a8f3fcd 100644
a
|
b
|
class AggregationTests(TestCase):
|
863 | 863 | ['Peter Norvig'], |
864 | 864 | lambda b: b.name |
865 | 865 | ) |
| 866 | |
| 867 | def test_aggregate_duplicate_columns(self): |
| 868 | # Regression test for #17144 |
| 869 | |
| 870 | results = Author.objects.annotate(num_contacts=Count('book_contact_set')) |
| 871 | |
| 872 | # There should only be one GROUP BY clause, for the `id` column. |
| 873 | # `name` and `age` should not be grouped on. |
| 874 | grouping, gb_params = results.query.get_compiler(using='default').get_grouping() |
| 875 | self.assertEqual(len(grouping), 1) |
| 876 | assert 'id' in grouping[0] |
| 877 | assert 'name' not in grouping[0] |
| 878 | assert 'age' not in grouping[0] |
| 879 | |
| 880 | # The query group_by property should also only show the `id`. |
| 881 | self.assertEqual(results.query.group_by, [('aggregation_regress', 'id')]) |
| 882 | |
| 883 | # Ensure that we get correct results. |
| 884 | self.assertEqual( |
| 885 | [(a.name, a.num_contacts) for a in results.order_by('name')], |
| 886 | [ |
| 887 | ('Adrian Holovaty', 1), |
| 888 | ('Brad Dayley', 1), |
| 889 | ('Jacob Kaplan-Moss', 0), |
| 890 | ('James Bennett', 1), |
| 891 | ('Jeffrey Forcier', 1), |
| 892 | ('Paul Bissex', 0), |
| 893 | ('Peter Norvig', 2), |
| 894 | ('Stuart Russell', 0), |
| 895 | ('Wesley J. Chun', 0), |
| 896 | ] |
| 897 | ) |