diff options
Diffstat (limited to 'tests/ordering/tests.py')
| -rw-r--r-- | tests/ordering/tests.py | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/tests/ordering/tests.py b/tests/ordering/tests.py index 37106aa5dd..e4f7d75992 100644 --- a/tests/ordering/tests.py +++ b/tests/ordering/tests.py @@ -14,7 +14,16 @@ from django.db.models import ( from django.db.models.functions import Upper from django.test import TestCase -from .models import Article, Author, ChildArticle, OrderedByFArticle, Reference +from .models import ( + Article, + Author, + ChildArticle, + OrderedByExpression, + OrderedByExpressionChild, + OrderedByExpressionGrandChild, + OrderedByFArticle, + Reference, +) class OrderingTests(TestCase): @@ -550,3 +559,30 @@ class OrderingTests(TestCase): {"author": self.author_2.pk, "count": 1}, ], ) + + def test_order_by_parent_fk_with_expression_in_default_ordering(self): + p3 = OrderedByExpression.objects.create(name="oBJ 3") + p2 = OrderedByExpression.objects.create(name="OBJ 2") + p1 = OrderedByExpression.objects.create(name="obj 1") + c3 = OrderedByExpressionChild.objects.create(parent=p3) + c2 = OrderedByExpressionChild.objects.create(parent=p2) + c1 = OrderedByExpressionChild.objects.create(parent=p1) + self.assertSequenceEqual( + OrderedByExpressionChild.objects.order_by("parent"), + [c1, c2, c3], + ) + + def test_order_by_grandparent_fk_with_expression_in_default_ordering(self): + p3 = OrderedByExpression.objects.create(name="oBJ 3") + p2 = OrderedByExpression.objects.create(name="OBJ 2") + p1 = OrderedByExpression.objects.create(name="obj 1") + c3 = OrderedByExpressionChild.objects.create(parent=p3) + c2 = OrderedByExpressionChild.objects.create(parent=p2) + c1 = OrderedByExpressionChild.objects.create(parent=p1) + g3 = OrderedByExpressionGrandChild.objects.create(parent=c3) + g2 = OrderedByExpressionGrandChild.objects.create(parent=c2) + g1 = OrderedByExpressionGrandChild.objects.create(parent=c1) + self.assertSequenceEqual( + OrderedByExpressionGrandChild.objects.order_by("parent"), + [g1, g2, g3], + ) |
