@@ -2600,20 +2600,33 @@ def test_order_by(self):
26002600 assert ages == [40 , 20 , 30 ]
26012601
26022602 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 ."""
26042604 person1 = self .Person (name = "User B" , age = 40 ).save ()
26052605 person2 = self .Person (name = "User A" , age = 20 ).save ()
26062606 person3 = self .Person (name = "User C" , age = 30 ).save ()
26072607
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
26092610
26102611 person2 .age = 31
26112612 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
26132615
26142616 person1 .age = 41
26152617 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
26172630
26182631 def test_order_by_optional (self ):
26192632 class BlogPost (Document ):
0 commit comments