diff options
author | Simon Charette <charette.s@gmail.com> | 2022-08-23 23:06:04 -0400 |
---|---|---|
committer | Carlton Gibson <carlton@noumenal.es> | 2022-08-24 12:30:47 +0200 |
commit | b30c0081d4d8a31ab7dc7f72a4c7099af606ef29 (patch) | |
tree | 17623c1b07e639bcfc104c931390f4be08ee36d3 /tests/db_functions | |
parent | 5f5401b1149dca4a487eec6b1008124eacc7d29f (diff) | |
download | django-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.py | 11 |
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) |