forked from django-nonrel/djangoappengine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathorder.py
56 lines (47 loc) · 2.22 KB
/
order.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from .testmodels import OrderedModel
from django.test import TestCase
class OrderTest(TestCase):
def create_ordered_model_items(self):
pks = []
priorities = [5, 2, 9, 1]
for pk, priority in enumerate(priorities):
pk += 1
model = OrderedModel(pk=pk, priority=priority)
model.save()
pks.append(model.pk)
return pks, priorities
def test_default_order(self):
pks, priorities = self.create_ordered_model_items()
self.assertEquals([item.priority
for item in OrderedModel.objects.all()],
sorted(priorities, reverse=True))
def test_override_default_order(self):
pks, priorities = self.create_ordered_model_items()
self.assertEquals([item.priority
for item in OrderedModel.objects.all().order_by('priority')],
sorted(priorities))
def test_remove_default_order(self):
pks, priorities = self.create_ordered_model_items()
self.assertEquals([item.pk
for item in OrderedModel.objects.all().order_by()],
sorted(pks))
def test_order_with_pk_filter(self):
pks, priorities = self.create_ordered_model_items()
self.assertEquals([item.priority
for item in OrderedModel.objects.filter(pk__in=pks)],
sorted(priorities, reverse=True))
# test with id__in
self.assertEquals([item.priority
for item in OrderedModel.objects.filter(id__in=pks)],
sorted(priorities, reverse=True))
# test reverse
self.assertEquals([item.priority
for item in OrderedModel.objects.filter(
pk__in=pks).reverse()], sorted(priorities,
reverse=False))
def test_remove_default_order_with_pk_filter(self):
pks, priorities = self.create_ordered_model_items()
self.assertEquals([item.priority
for item in OrderedModel.objects.filter(pk__in=pks).order_by()],
priorities)
# TODO: test multiple orders