summaryrefslogtreecommitdiff
path: root/tests/queries
diff options
context:
space:
mode:
authorDavid Wobrock <david.wobrock@gmail.com>2023-03-13 15:03:28 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-03-24 06:09:27 +0100
commitd6b6e5d0fd4e6b6d0183b4cf6e4bd4f9afc7bf67 (patch)
tree1e81239741fa0b7a576879c42040953ed64e9708 /tests/queries
parent39d1e45227e060746ed461fddde80fa2b6cf0dcd (diff)
downloaddjango-d6b6e5d0fd4e6b6d0183b4cf6e4bd4f9afc7bf67.tar.gz
Fixed #28553 -- Fixed annotation mismatch with QuerySet.values()/values_list() on compound queries.
Co-authored-by: Matthias Kestenholz <mk@feinheit.ch>
Diffstat (limited to 'tests/queries')
-rw-r--r--tests/queries/test_qs_combinators.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/tests/queries/test_qs_combinators.py b/tests/queries/test_qs_combinators.py
index bf127ce703..71d2418f2b 100644
--- a/tests/queries/test_qs_combinators.py
+++ b/tests/queries/test_qs_combinators.py
@@ -246,7 +246,7 @@ class QuerySetSetOperationTests(TestCase):
)
.values_list("num", "count")
)
- self.assertCountEqual(qs1.union(qs2), [(1, 0), (2, 1)])
+ self.assertCountEqual(qs1.union(qs2), [(1, 0), (1, 2)])
def test_union_with_extra_and_values_list(self):
qs1 = (
@@ -368,6 +368,20 @@ class QuerySetSetOperationTests(TestCase):
[reserved_name.pk],
)
+ def test_union_multiple_models_with_values_list_and_annotations(self):
+ ReservedName.objects.create(name="rn1", order=10)
+ Celebrity.objects.create(name="c1")
+ qs1 = ReservedName.objects.annotate(row_type=Value("rn")).values_list(
+ "name", "order", "row_type"
+ )
+ qs2 = Celebrity.objects.annotate(
+ row_type=Value("cb"), order=Value(-10)
+ ).values_list("name", "order", "row_type")
+ self.assertSequenceEqual(
+ qs1.union(qs2).order_by("order"),
+ [("c1", -10, "cb"), ("rn1", 10, "rn")],
+ )
+
def test_union_in_subquery(self):
ReservedName.objects.bulk_create(
[