summaryrefslogtreecommitdiff
path: root/tests/db_functions
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2022-08-23 23:06:04 -0400
committerCarlton Gibson <carlton@noumenal.es>2022-08-24 12:30:47 +0200
commitb30c0081d4d8a31ab7dc7f72a4c7099af606ef29 (patch)
tree17623c1b07e639bcfc104c931390f4be08ee36d3 /tests/db_functions
parent5f5401b1149dca4a487eec6b1008124eacc7d29f (diff)
downloaddjango-b30c0081d4d8a31ab7dc7f72a4c7099af606ef29.tar.gz
Refs #27412 -- Confirmed support for executing Coalesce(subquery).
This has been supported for subqueries wrapped in Subquery since the expression was introduced and for Queryset directly since Subquery resolves to sql.Query. Piggy-backed on the existing tests covering Coalesce handling of EmptyResultSet as it seemed like a proper location to combine testing.
Diffstat (limited to 'tests/db_functions')
-rw-r--r--tests/db_functions/comparison/test_coalesce.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/tests/db_functions/comparison/test_coalesce.py b/tests/db_functions/comparison/test_coalesce.py
index 9125923847..d5f6a7a6a2 100644
--- a/tests/db_functions/comparison/test_coalesce.py
+++ b/tests/db_functions/comparison/test_coalesce.py
@@ -64,11 +64,14 @@ class CoalesceTests(TestCase):
def test_empty_queryset(self):
Author.objects.create(name="John Smith")
+ queryset = Author.objects.values("id")
tests = [
- Author.objects.none(),
- Subquery(Author.objects.none()),
+ (queryset.none(), "QuerySet.none()"),
+ (queryset.filter(id=0), "QuerySet.filter(id=0)"),
+ (Subquery(queryset.none()), "Subquery(QuerySet.none())"),
+ (Subquery(queryset.filter(id=0)), "Subquery(Queryset.filter(id=0)"),
]
- for empty_query in tests:
- with self.subTest(empty_query.__class__.__name__):
+ for empty_query, description in tests:
+ with self.subTest(description), self.assertNumQueries(1):
qs = Author.objects.annotate(annotation=Coalesce(empty_query, 42))
self.assertEqual(qs.first().annotation, 42)