Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 48 additions & 61 deletions osmchadjango/changeset/tests/test_changeset_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -348,102 +348,89 @@ def setUp(self):
HarmfulChangesetFactory.create_batch(
24, form_create=20, modify=2, delete=40, comments_count=3
)
GoodChangesetFactory.create_batch(24, form_create=1000, modify=20)
GoodChangesetFactory.create_batch(24, form_create=1000, modify=20, create=1, delete=15)
self.url = reverse('changeset:list')

def test_ordering(self):
# default ordering is by descending id
response = self.client.get(self.url)
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.all()]
)
ids = [i['id'] for i in response.data.get('features')]
self.assertTrue(ids[0] > ids[1])

# ascending id
response = self.client.get(self.url, {'order_by': 'id'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('id')]
)
ids = [i['id'] for i in response.data.get('features')]
self.assertTrue(ids[0] < ids[1])

# ascending date ordering
response = self.client.get(self.url, {'order_by': 'date'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('date')]
)
dates = [i['properties']['date'] for i in response.data.get('features')]
self.assertTrue(dates[0] < dates[1])

# descending date ordering
response = self.client.get(self.url, {'order_by': '-date'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('-date')]
)
dates = [i['properties']['date'] for i in response.data.get('features')]
self.assertTrue(dates[0] > dates[1])

# ascending check_date
response = self.client.get(self.url, {'order_by': 'check_date'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('check_date')]
)
check_dates = [i['properties']['check_date'] for i in response.data.get('features')]
self.assertTrue(check_dates[0] < check_dates[1])

# descending check_date ordering
response = self.client.get(self.url, {'order_by': '-check_date'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('-check_date')]
)
check_dates = [i['properties']['check_date'] for i in response.data.get('features')]
self.assertTrue(check_dates[0] > check_dates[1])

# ascending create ordering
response = self.client.get(self.url, {'order_by': 'create'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('create')]
)
create = [i['properties']['create'] for i in response.data.get('features')]
self.assertTrue(create[0] < create[-1])

# descending create ordering
response = self.client.get(self.url, {'order_by': '-create'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('-create')]
)
create = [i['properties']['create'] for i in response.data.get('features')]
self.assertTrue(create[0] > create[-1])

# ascending modify ordering
response = self.client.get(self.url, {'order_by': 'modify'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('modify')]
)
modify = [i['properties']['modify'] for i in response.data.get('features')]
self.assertTrue(modify[0] < modify[-1])

# descending modify ordering
response = self.client.get(self.url, {'order_by': '-modify'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('-modify')]
)
modify = [i['properties']['modify'] for i in response.data.get('features')]
self.assertTrue(modify[0] > modify[-1])

# ascending delete ordering
response = self.client.get(self.url, {'order_by': 'delete'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('delete')]
)
delete = [i['properties']['delete'] for i in response.data.get('features')]
self.assertTrue(delete[0] < delete[-1])

# descending delete ordering
response = self.client.get(self.url, {'order_by': '-delete'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('-delete')]
)
delete = [i['properties']['delete'] for i in response.data.get('features')]
self.assertTrue(delete[0] > delete[-1])

# ascending comments_count ordering
response = self.client.get(self.url, {'order_by': 'comments_count'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('comments_count')]
)
comments_count = [
i['properties']['comments_count'] for i in response.data.get('features')
]
self.assertTrue(comments_count[0] < comments_count[-1])

# descending comments_count ordering
response = self.client.get(self.url, {'order_by': '-comments_count'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.order_by('-comments_count')]
)
comments_count = [
i['properties']['comments_count'] for i in response.data.get('features')
]
self.assertTrue(comments_count[0] > comments_count[-1])

def test_invalid_ordering_field(self):
# default ordering is by descending id
response = self.client.get(self.url, {'order_by': 'user'})
self.assertEqual(
[i['id'] for i in response.data.get('features')],
[i.id for i in Changeset.objects.all()]
)
ids = [i['id'] for i in response.data.get('features')]
self.assertTrue(ids[0] > ids[1])

def test_number_reasons_ordering(self):
changeset_1, changeset_2 = Changeset.objects.all()[:2]
Expand Down