@@ -2600,20 +2600,33 @@ def test_order_by(self):
2600
2600
assert ages == [40 , 20 , 30 ]
2601
2601
2602
2602
def test_last (self ):
2603
- """Ensure the retieval of the latest object from the QuerySet."""
2603
+ """Ensure the retrieval of the latest object from the QuerySet based on the specified ordering ."""
2604
2604
person1 = self .Person (name = "User B" , age = 40 ).save ()
2605
2605
person2 = self .Person (name = "User A" , age = 20 ).save ()
2606
2606
person3 = self .Person (name = "User C" , age = 30 ).save ()
2607
2607
2608
- assert self .Person .objects .last () == person3
2608
+ assert self .Person .objects .order_by ('age' ).last () == person1
2609
+ assert self .Person .objects .order_by ('-age' ).last () == person2
2609
2610
2610
2611
person2 .age = 31
2611
2612
person2 .save ()
2612
- assert self .Person .objects .last () == person3
2613
+ assert self .Person .objects .order_by ('-age' ).last () == person3
2614
+ assert self .Person .objects .order_by ('age' ).last () == person1
2613
2615
2614
2616
person1 .age = 41
2615
2617
person1 .save ()
2616
- assert self .Person .objects .last () == person3
2618
+ assert self .Person .objects .order_by ('age' ).last () == person1
2619
+
2620
+ assert self .Person .objects .order_by ('name' ).last () == person3
2621
+
2622
+ assert self .Person .objects .filter (age__lt = 40 ).order_by ('age' ).last () == person2
2623
+ assert self .Person .objects .filter (age__gt = 50 ).order_by ('age' ).last () is None
2624
+
2625
+ with pytest .raises (OperationError ):
2626
+ self .Person .objects .last ()
2627
+
2628
+ person4 = self .Person (name = "User D" , age = 30 ).save ()
2629
+ assert self .Person .objects .order_by ('-age' ).last () == person4
2617
2630
2618
2631
def test_order_by_optional (self ):
2619
2632
class BlogPost (Document ):
0 commit comments