~didrocks/unity/altf10

« back to all changes in this revision

Viewing changes to grackle/tests/test_client.py

  • Committer: Aaron Bentley
  • Date: 2012-01-13 11:46:14 UTC
  • Revision ID: aaron@canonical.com-20120113114614-lw5t8rcn4cidlb3o
Support thread_newest threading.

Show diffs side-by-side

added added

removed removed

Lines of Context:
64
64
 
65
65
 
66
66
SUPPORTED_ORDERS = set(
67
 
    ['date', 'author', 'subject', 'thread_oldest', 'thread_subject'])
 
67
    ['date', 'author', 'subject', 'thread_newest', 'thread_oldest',
 
68
     'thread_subject'])
68
69
 
69
70
 
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)
103
106
            else:
243
246
            response = client.get_messages('baz', order='thread_oldest')
244
247
            self.assertIDOrder(['bar', 'qux', 'foo'], response['messages'])
245
248
 
 
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'},
 
256
            ]}):
 
257
            response = client.get_messages('baz', order='date')
 
258
            self.assertIDOrder(
 
259
                ['qux', 'bar', 'foo', 'baz'], response['messages'])
 
260
            response = client.get_messages('baz', order='thread_newest')
 
261
            self.assertIDOrder(
 
262
                ['bar', 'foo', 'qux', 'baz'], response['messages'])
 
263
 
246
264
    def test_get_messages_unsupported_order(self):
247
265
        client = GrackleClient('localhost', 8439)
248
266
        with fake_grackle_service(client,