summaryrefslogtreecommitdiff
path: root/tests/aggregation_regress/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/aggregation_regress/tests.py')
-rw-r--r--tests/aggregation_regress/tests.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/aggregation_regress/tests.py b/tests/aggregation_regress/tests.py
index 3e1a6a71f9..5f17169dc6 100644
--- a/tests/aggregation_regress/tests.py
+++ b/tests/aggregation_regress/tests.py
@@ -171,6 +171,25 @@ class AggregationTests(TestCase):
for attr, value in kwargs.items():
self.assertEqual(getattr(obj, attr), value)
+ def test_count_preserve_group_by(self):
+ # new release of the same book
+ Book.objects.create(
+ isbn="113235613",
+ name=self.b4.name,
+ pages=self.b4.pages,
+ rating=4.0,
+ price=Decimal("39.69"),
+ contact=self.a5,
+ publisher=self.p3,
+ pubdate=datetime.date(2018, 11, 3),
+ )
+ qs = Book.objects.values("contact__name", "publisher__name").annotate(
+ publications=Count("id")
+ )
+ self.assertEqual(qs.count(), Book.objects.count() - 1)
+ self.assertEqual(qs.order_by("id").count(), Book.objects.count())
+ self.assertEqual(qs.extra(order_by=["id"]).count(), Book.objects.count())
+
def test_annotation_with_value(self):
values = (
Book.objects.filter(