summaryrefslogtreecommitdiff
path: root/tests/aggregation
diff options
context:
space:
mode:
Diffstat (limited to 'tests/aggregation')
-rw-r--r--tests/aggregation/tests.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/aggregation/tests.py b/tests/aggregation/tests.py
index 6ea10278f2..b1b6199ffa 100644
--- a/tests/aggregation/tests.py
+++ b/tests/aggregation/tests.py
@@ -88,6 +88,31 @@ class BaseAggregateTestCase(TestCase):
)
self.assertEqual(b.mean_age, 34.5)
+ def test_annotate_defer(self):
+ qs = Book.objects.annotate(
+ page_sum=Sum("pages")).defer('name').filter(pk=1)
+
+ rows = [
+ (1, "159059725", 447, "The Definitive Guide to Django: Web Development Done Right")
+ ]
+ self.assertQuerysetEqual(
+ qs.order_by('pk'), rows,
+ lambda r: (r.id, r.isbn, r.page_sum, r.name)
+ )
+
+ def test_annotate_defer_select_related(self):
+ qs = Book.objects.select_related('contact').annotate(
+ page_sum=Sum("pages")).defer('name').filter(pk=1)
+
+ rows = [
+ (1, "159059725", 447, "Adrian Holovaty",
+ "The Definitive Guide to Django: Web Development Done Right")
+ ]
+ self.assertQuerysetEqual(
+ qs.order_by('pk'), rows,
+ lambda r: (r.id, r.isbn, r.page_sum, r.contact.name, r.name)
+ )
+
def test_annotate_m2m(self):
books = Book.objects.filter(rating__lt=4.5).annotate(Avg("authors__age")).order_by("name")
self.assertQuerysetEqual(