~didrocks/unity/altf10

« back to all changes in this revision

Viewing changes to grackle/tests/test_client.py

  • Committer: Curtis Hovey
  • Date: 2012-03-16 16:12:13 UTC
  • Revision ID: curtis.hovey@canonical.com-20120316161213-htrw58db1ojtl8d9
Always use an rfc822 message in tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
def make_message(message_id, body='body', headers=None, hidden=False):
33
33
    if headers is None:
34
34
        headers = {}
35
 
    headers['Message-Id'] = message_id
36
 
    message = {
37
 
        'message_id': message_id,
38
 
        'headers': headers,
39
 
        'thread_id': message_id,
40
 
        'date': headers.get('date', '2005-01-01'),
41
 
        'subject': headers.get('subject', 'subject'),
42
 
        'author': headers.get('author', 'author'),
43
 
        'hidden': hidden,
44
 
        'attachments': [],
45
 
        'replies': headers.get('in-reply-to', None),
46
 
        'body': body,
 
35
    message_headers = {
 
36
        'Message-Id': message_id,
 
37
        'date': '2005-01-01',
 
38
        'subject': 'subject',
 
39
        'from': 'author',
 
40
        'replies': '',
47
41
        }
48
 
    return message
 
42
    message_headers.update(headers.items())
 
43
    message = Message()
 
44
    message.set_payload(body)
 
45
    for key, value in message_headers.items():
 
46
        message[key] = value
 
47
    return make_json_message(message_id, message.as_string(), hidden)
49
48
 
50
49
 
51
50
def make_mime_message(message_id, body='body', headers=None, hidden=False,
52
51
                      attachment_type=None):
53
 
    if headers is None:
54
 
        headers = {}
55
52
    parts = MIMEMultipart()
56
53
    parts.attach(MIMEText(body))
57
54
    if attachment_type is not None:
60
57
        attachment['Content-Type'] = attachment_type
61
58
        attachment['Content-Disposition'] = 'attachment; filename="file.ext"'
62
59
        parts.attach(attachment)
63
 
    message = Message()
64
 
    message.set_payload(parts.as_string())
65
 
    for key, value in headers.items():
66
 
        message[key] = value
67
 
    return make_json_message(message_id, message.as_string())
 
60
    return make_message(message_id, parts.as_string(), headers, hidden)
68
61
 
69
62
 
70
63
class ForkedFakeService:
244
237
 
245
238
    def get_messages_member_order_test(self, key):
246
239
        client = GrackleClient('localhost', 8439)
 
240
        if key == 'author':
 
241
            header_name = 'from'
 
242
        else:
 
243
            header_name = key
247
244
        archive = {
248
245
            'baz': [
249
 
                make_message('foo', headers={key: '2011-03-25'}),
250
 
                make_message('bar', headers={key: '2011-03-24'}),
 
246
                make_message('foo', headers={header_name: '2011-03-25'}),
 
247
                make_message('bar', headers={header_name: '2011-03-24'}),
251
248
             ]}
252
249
        with ForkedFakeService.from_client(client, archive):
253
250
            response = client.get_messages('baz')
400
397
        first_message = response['messages'][0]
401
398
        self.assertEqual('foo', first_message['message_id'])
402
399
        self.assertEqual(
403
 
            {'From': 'me', 'Message-Id': 'foo', 'To': 'you'},
404
 
            first_message['headers'])
 
400
            archive['baz'][0]['headers'], first_message['headers'])
405
401
        self.assertNotIn('body', first_message)
406
402
 
407
403
    def test_display_type_text_only(self):