Skip to content

Commit 1d1ff5c

Browse files
committed
Update tests
1 parent 71a9bba commit 1d1ff5c

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

mongoengine/queryset/base.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -301,14 +301,16 @@ def first(self):
301301
def last(self):
302302
"""Retrieve the latest object matching the query."""
303303
if not self._ordering:
304-
raise OperationError("Cannot use `last()` without ordering. Use `order_by()` on the queryset first.")
304+
raise OperationError(
305+
"Cannot use `last()` without ordering. Use `order_by()` on the queryset first."
306+
)
305307

306308
queryset = self.clone()
307309
if self._none or self._empty:
308310
return None
309311

310312
try:
311-
result = queryset[-1]
313+
result = queryset[self.count() - 1]
312314
except IndexError:
313315
result = None
314316
return result

tests/queryset/test_queryset.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -2605,28 +2605,28 @@ def test_last(self):
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.order_by('age').last() == person1
2609-
assert self.Person.objects.order_by('-age').last() == person2
2608+
assert self.Person.objects.order_by("age").last() == person1
2609+
assert self.Person.objects.order_by("-age").last() == person2
26102610

26112611
person2.age = 31
26122612
person2.save()
2613-
assert self.Person.objects.order_by('-age').last() == person3
2614-
assert self.Person.objects.order_by('age').last() == person1
2613+
assert self.Person.objects.order_by("-age").last() == person3
2614+
assert self.Person.objects.order_by("age").last() == person1
26152615

26162616
person1.age = 41
26172617
person1.save()
2618-
assert self.Person.objects.order_by('age').last() == person1
2618+
assert self.Person.objects.order_by("age").last() == person1
26192619

2620-
assert self.Person.objects.order_by('name').last() == person3
2620+
assert self.Person.objects.order_by("name").last() == person3
26212621

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
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
26242624

26252625
with pytest.raises(OperationError):
26262626
self.Person.objects.last()
26272627

2628-
person4 = self.Person(name="User D", age=30).save()
2629-
assert self.Person.objects.order_by('-age').last() == person4
2628+
self.Person(name="User D", age=30).save()
2629+
assert self.Person.objects.order_by("-age").last() == person3
26302630

26312631
def test_order_by_optional(self):
26322632
class BlogPost(Document):

0 commit comments

Comments
 (0)