66
66
SUPPORTED_ORDERS = set(
67
['date', 'author', 'subject', 'thread_oldest', 'thread_subject'])
67
['date', 'author', 'subject', 'thread_newest', 'thread_oldest',
70
71
class FakeGrackleRequestHandler(BaseHTTPRequestHandler):
98
99
threaded.sort(key=lambda t: t[0]['subject'])
99
100
if order == 'thread_oldest':
100
101
threaded.sort(key=lambda t: min(m['date'] for m in t))
102
if order == 'thread_newest':
103
threaded.sort(key=lambda t: max(m['date'] for m in t))
101
104
for thread in threaded:
102
105
messages.extend(thread)
243
246
response = client.get_messages('baz', order='thread_oldest')
244
247
self.assertIDOrder(['bar', 'qux', 'foo'], response['messages'])
249
def test_get_messages_thread_newest_order(self):
250
client = GrackleClient('localhost', 8439)
251
with fake_grackle_service(client, {'baz': [
252
{'message_id': 'bar', 'date': 'x'},
253
{'message_id': 'qux', 'date': 'w'},
254
{'message_id': 'foo', 'date': 'y', 'in_reply_to': 'bar'},
255
{'message_id': 'baz', 'date': 'z', 'in_reply_to': 'qux'},
257
response = client.get_messages('baz', order='date')
259
['qux', 'bar', 'foo', 'baz'], response['messages'])
260
response = client.get_messages('baz', order='thread_newest')
262
['bar', 'foo', 'qux', 'baz'], response['messages'])
246
264
def test_get_messages_unsupported_order(self):
247
265
client = GrackleClient('localhost', 8439)
248
266
with fake_grackle_service(client,