summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Tramoy <laurenttramoy@gmail.com>2020-05-26 08:58:44 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-05-26 21:14:40 +0200
commit51ad767d0b31fcaa0e4ffefa2938b9184c59928a (patch)
treeb0435f4e93f806697c50f51c0876ffcb852e2926
parent50f71ccb366cc0642d5a78447b46037b2e0a66da (diff)
Refs #31614 -- Added test for aliases ordering on combined querysets.
-rw-r--r--tests/queries/test_qs_combinators.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/queries/test_qs_combinators.py b/tests/queries/test_qs_combinators.py
index d034261e64..c93ce80300 100644
--- a/tests/queries/test_qs_combinators.py
+++ b/tests/queries/test_qs_combinators.py
@@ -109,6 +109,15 @@ class QuerySetSetOperationTests(TestCase):
qs2 = Number.objects.filter(num__gte=2, num__lte=3)
self.assertNumbersEqual(qs1.union(qs2).order_by('-num'), [3, 2, 1, 0])
+ def test_ordering_by_alias(self):
+ qs1 = Number.objects.filter(num__lte=1).values(alias=F('num'))
+ qs2 = Number.objects.filter(num__gte=2, num__lte=3).values(alias=F('num'))
+ self.assertQuerysetEqual(
+ qs1.union(qs2).order_by('-alias'),
+ [3, 2, 1, 0],
+ operator.itemgetter('alias'),
+ )
+
def test_ordering_by_f_expression(self):
qs1 = Number.objects.filter(num__lte=1)
qs2 = Number.objects.filter(num__gte=2, num__lte=3)
@@ -242,6 +251,8 @@ class QuerySetSetOperationTests(TestCase):
# 'num' got realiased to num2
with self.assertRaisesMessage(DatabaseError, msg):
list(qs1.union(qs2).order_by('num'))
+ with self.assertRaisesMessage(DatabaseError, msg):
+ list(qs1.union(qs2).order_by(F('num')))
# switched order, now 'exists' again:
list(qs2.union(qs1).order_by('num'))