~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 15:39:22 UTC
  • Revision ID: aaron@canonical.com-20120113153922-mcratpriu5rfuxb1
implement include_hidden.

Show diffs side-by-side

added added

removed removed

Lines of Context:
61
61
            else:
62
62
                messages.sort(key=lambda m: m[order])
63
63
        messages = [m for m in messages
64
 
                    if 'message_ids' not in parameters or
65
 
                    m['message_id'] in parameters['message_ids']]
 
64
]
 
65
        new_messages = []
 
66
        for message in messages:
 
67
            if (
 
68
                not parameters['include_hidden']
 
69
                and message.get('hidden', False)):
 
70
                continue
 
71
 
 
72
            if ('message_ids' in parameters and
 
73
                message['message_id'] not in parameters['message_ids']):
 
74
                continue
 
75
            message = dict(message)
 
76
            if 'headers' in parameters:
 
77
                headers = dict(
 
78
                    (k, v) for k, v in message['headers'].iteritems()
 
79
                    if k in parameters['headers'])
 
80
                message['headers'] = headers
 
81
            max_body = parameters.get('max_body_length')
 
82
            if max_body is not None:
 
83
                message['body'] = message['body'][:max_body]
 
84
            new_messages.append(message)
 
85
        messages = new_messages
66
86
        limit = parameters.get('limit', 100)
67
87
        memo = parameters.get('memo')
68
88
        message_id_indices = dict(
81
101
        else:
82
102
            next_memo = None
83
103
        messages = messages[start:end]
84
 
        new_messages = []
85
 
        for message in messages:
86
 
            message = dict(message)
87
 
            if 'headers' in parameters:
88
 
                headers = dict(
89
 
                    (k, v) for k, v in message['headers'].iteritems()
90
 
                    if k in parameters['headers'])
91
 
                message['headers'] = headers
92
 
            max_body = parameters.get('max_body_length')
93
 
            if max_body is not None:
94
 
                message['body'] = message['body'][:max_body]
95
 
            new_messages.append(message)
 
104
 
96
105
        response = {
97
 
            'messages': new_messages,
 
106
            'messages': messages,
98
107
            'next_memo': next_memo,
99
108
            'previous_memo': previous_memo
100
109
            }
313
322
        self.assertEqual({}, first_message['headers'])
314
323
 
315
324
    def test_get_messages_headers_exclude_headers(self):
316
 
        client = GrackleClient('localhost', 8440)
 
325
        client = GrackleClient('localhost', 8441)
317
326
        with fake_grackle_service(client,
318
327
            {'baz': [
319
328
                {'message_id': 'foo', 'headers': {'From': 'me'}}
325
334
        self.assertEqual({}, first_message['headers'])
326
335
 
327
336
    def test_get_messages_headers_include_headers(self):
328
 
        client = GrackleClient('localhost', 8440)
 
337
        client = GrackleClient('localhost', 8442)
329
338
        with fake_grackle_service(client,
330
339
            {'baz': [
331
340
                {'message_id': 'foo', 'headers': {'From': 'me', 'To': 'you'}}
337
346
        self.assertEqual({'From': 'me', 'To': 'you'}, first_message['headers'])
338
347
 
339
348
    def test_get_messages_max_body_length(self):
340
 
        client = GrackleClient('localhost', 8440)
 
349
        client = GrackleClient('localhost', 8443)
341
350
        with fake_grackle_service(client,
342
351
            {'baz': [
343
352
                {'message_id': 'foo', 'body': u'abcdefghi'}
346
355
        first_message = response['messages'][0]
347
356
        self.assertEqual('abc', first_message['body'])
348
357
 
 
358
    def test_include_hidden(self):
 
359
        client = GrackleClient('localhost', 8444)
 
360
        with fake_grackle_service(client,
 
361
            {'baz': [
 
362
                {'message_id': 'foo', 'hidden': True},
 
363
                {'message_id': 'bar', 'hidden': False}
 
364
            ]}):
 
365
            response = client.get_messages('baz', include_hidden=True)
 
366
            self.assertMessageIDs(['bar', 'foo'], response['messages'])
 
367
            response = client.get_messages('baz', include_hidden=False)
 
368
            self.assertMessageIDs(['bar'], response['messages'])
 
369