Beispiel #1
0
 def setup_single_thread_mock(self):
     client = self.mock_helper.client_mock
     client.search.return_value = ['33', '43']
     client.fetch.return_value = {'43': {
         'RFC822.HEADER': fixture_file_content(
             'mail2_header_rfc822.txt'),
         'X-GM-MSGID': 2222
     }}
Beispiel #2
0
    def test_send_rfc822(self):
        receivers = ['*****@*****.**', '*****@*****.**',
                     '*****@*****.**', '*****@*****.**']

        client = self.mock_helper.client_mock
        mail = fixture_file_content('mail_rfc822.txt')
        self.session.send_rfc822(mail)
        client.sendmail.assert_called_once_with('*****@*****.**',
                                                receivers, mock.ANY)
Beispiel #3
0
    def test_send_draft(self):
        imap = self.imap_mock
        smtp = self.smtp_mock
        mail = gmail.Mail(fixture_file_content('mail_rfc822.txt'))
        imap.get_mail.return_value = mail

        self.mailman.send_draft(123, 'test_rfc')

        imap.get_mail.assert_called_with(123)
        self.assertTrue(smtp.send_rfc822.called)
        message = smtp.send_rfc822.call_args[0][0]
        self.assertEqual(message['Message-ID'], 'test_rfc')
        self.assertFalse(imap.delete_message.called)
Beispiel #4
0
    def test_get_thread(self):
        """
        Should search mails by thread id and fetch their headers and gmail
        message ids.
        """
        client = self.mock_helper.client_mock
        client.search.return_value = ['33', '43']
        client.fetch.return_value = {
            '43': {
                'RFC822.HEADER': fixture_file_content(
                    'mail2_header_rfc822.txt'),
                'X-GM-MSGID': 200
            },
            '33': {
                'RFC822.HEADER': fixture_file_content(
                    'mail1_header_rfc822.txt'),
                'X-GM-MSGID': 110
            },
        }
        msgs = self.session.get_thread(1234)
        client.search.assert_called_with('X-GM-THRID 1234')
        client.fetch.assert_called_with(['33', '43'],
                                        ['X-GM-MSGID', 'RFC822.HEADER'])
        self.assertEqual(2, len(msgs))
        mail1 = msgs[0]
        self.assertDictContainsSubset({
                                          'message_id': '6e',
                                          'rfc_message_id': '<msg-id-mail1>',
                                          'subject': 'Mail1 Subject',
                                          'from_email': '*****@*****.**',
                                          'in_reply_to': '<in-reply-to-mail1>',
                                          'references': 'ref1 ref2'
                                      }, mail1)
        self.assertEqual(mail1['date'].isoformat(), '2013-10-17T13:20:06')

        mail2 = msgs[1]
        self.assertDictContainsSubset({'subject': 'Mail2 Subject',
                                       'from_name': 'Example'}, mail2)
Beispiel #5
0
 def test_get_mail(self):
     """
     should search mail by message id and fetch and
     return rfc822 encoded mail
     """
     client = self.mock_helper.client_mock
     client.search.return_value = ['33']
     rfc_mail = fixture_file_content('mail_rfc822.txt')
     client.fetch.return_value = {'33': {'RFC822': rfc_mail,
                                         'X-GM-LABELS': []}}
     mail = self.session.get_mail(12345)
     client.search.assert_called_with('X-GM-MSGID 12345')
     client.fetch.assert_called_with('33', ['RFC822', 'X-GM-LABELS'])
     self.assertEqual(rfc_mail, mail.rfc_message)
Beispiel #6
0
 def test_mark_as_sent_no_bcc(self):
     """
     Mark as sent should delete the original message and copy labels to
     the sent message.
     """
     # client = self.mock_helper.client_mock
     self.session.replace_sent_msg = mock.Mock()
     self.session.delete_message = mock.Mock()
     self.session.copy_labels_to_sent = mock.Mock()
     mail = gmail.Mail(fixture_file_content('mail1_header_rfc822.txt'),
                       ['custom'])
     self.session.mark_as_sent(123, 'rfcid', mail)
     self.assertFalse(self.session.replace_sent_msg.called)
     self.session.delete_message.assert_called_with(123)
     self.session.copy_labels_to_sent.assert_called_with('rfcid',
                                                         ['custom'])
Beispiel #7
0
 def setUp(self):
     self.rewriter = gmail.MailSendRewriter(
         fixture_file_content('mail_rfc822.txt'))