diff options
| author | Laurent Tramoy <laurenttramoy@gmail.com> | 2020-05-26 08:58:44 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-05-26 21:14:40 +0200 |
| commit | 51ad767d0b31fcaa0e4ffefa2938b9184c59928a (patch) | |
| tree | b0435f4e93f806697c50f51c0876ffcb852e2926 | |
| parent | 50f71ccb366cc0642d5a78447b46037b2e0a66da (diff) | |
Refs #31614 -- Added test for aliases ordering on combined querysets.
| -rw-r--r-- | tests/queries/test_qs_combinators.py | 11 |
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')) |
