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 }}
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)
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)
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)
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)
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'])
def setUp(self): self.rewriter = gmail.MailSendRewriter( fixture_file_content('mail_rfc822.txt'))