diff options
| author | Laurent Tramoy <laurenttramoy@gmail.com> | 2020-05-26 09:11:11 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-05-26 21:14:45 +0200 |
| commit | 2aac176e86204785f0f2ec4838049d8fed70870e (patch) | |
| tree | 812f2d026f8b528567df9e7579f2e1c9d492875c /tests | |
| parent | 51ad767d0b31fcaa0e4ffefa2938b9184c59928a (diff) | |
Fixed #31614 -- Fixed aliases ordering by OrderBy() expressions of combined queryset.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/queries/test_qs_combinators.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/queries/test_qs_combinators.py b/tests/queries/test_qs_combinators.py index c93ce80300..8e2e14403d 100644 --- a/tests/queries/test_qs_combinators.py +++ b/tests/queries/test_qs_combinators.py @@ -123,6 +123,21 @@ class QuerySetSetOperationTests(TestCase): qs2 = Number.objects.filter(num__gte=2, num__lte=3) self.assertNumbersEqual(qs1.union(qs2).order_by(F('num').desc()), [3, 2, 1, 0]) + def test_ordering_by_f_expression_and_alias(self): + qs1 = Number.objects.filter(num__lte=1).values(alias=F('other_num')) + qs2 = Number.objects.filter(num__gte=2, num__lte=3).values(alias=F('other_num')) + self.assertQuerysetEqual( + qs1.union(qs2).order_by(F('alias').desc()), + [10, 9, 8, 7], + operator.itemgetter('alias'), + ) + Number.objects.create(num=-1) + self.assertQuerysetEqual( + qs1.union(qs2).order_by(F('alias').desc(nulls_last=True)), + [10, 9, 8, 7, None], + operator.itemgetter('alias'), + ) + def test_union_with_values(self): ReservedName.objects.create(name='a', order=2) qs1 = ReservedName.objects.all() |
