Merge PR #528 into 12.0

Signed-off-by pedrobaeza
pull/531/head
OCA-git-bot 2020-03-27 08:33:56 +00:00
commit f113990396
1 changed files with 69 additions and 5 deletions

View File

@ -143,7 +143,7 @@ class TestMailTracking(TransactionCase):
self.assertEqual(tracking_email.error_type, 'no_recipient')
self.assertFalse(self.recipient.email_bounced)
def _check_partner_trackings(self, message):
def _check_partner_trackings_cc(self, message):
message_dict = message.message_format()[0]
self.assertEqual(len(message_dict['partner_trackings']), 3)
# mail cc
@ -171,14 +171,14 @@ class TestMailTracking(TransactionCase):
# pylint: disable=C8107
message = self.recipient.sudo(user=sender_user).message_post(
body='<p>This is a test message</p>',
cc='unnamed@test.com, sender@example.com'
cc='Dominique Pinon <unnamed@test.com>, sender@example.com'
)
# suggested recipients
recipients = self.recipient.message_get_suggested_recipients()
suggested_mails = {
email[1] for email in recipients[self.recipient.id]
}
self.assertTrue('unnamed@test.com' in suggested_mails)
self.assertIn('unnamed@test.com', suggested_mails)
self.assertEqual(len(recipients[self.recipient.id][0]), 3)
# Repeated Cc recipients
message = self.env['mail.message'].create({
@ -189,14 +189,78 @@ class TestMailTracking(TransactionCase):
'model': 'res.partner',
'res_id': self.recipient.id,
'partner_ids': [(4, self.recipient.id)],
'email_cc': 'unnamed@test.com, sender@example.com'
'email_cc': 'Dominique Pinon <unnamed@test.com>, sender@example.com'
', recipient@example.com',
'body': '<p>This is another test message</p>',
})
message._notify(message, {}, force_send=True)
recipients = self.recipient.message_get_suggested_recipients()
self.assertEqual(len(recipients[self.recipient.id][0]), 3)
self._check_partner_trackings(message)
self._check_partner_trackings_cc(message)
def _check_partner_trackings_to(self, message):
message_dict = message.message_format()[0]
self.assertEqual(len(message_dict['partner_trackings']), 3)
# mail cc
foundPartner = False
foundNoPartner = False
for tracking in message_dict['partner_trackings']:
if tracking['partner_id'] == self.sender.id:
foundPartner = True
elif tracking['recipient'] == 'support+unnamed@test.com':
foundNoPartner = True
self.assertFalse(tracking['partner_id'])
self.assertTrue(foundPartner)
self.assertTrue(foundNoPartner)
def test_email_to(self):
sender_user = self.env['res.users'].create({
'name': 'Sender User Test',
'partner_id': self.sender.id,
'login': 'sender-test',
})
# pylint: disable=C8107
message = self.recipient.sudo(user=sender_user).message_post(
body='<p>This is a test message</p>',
to='Dominique Pinon <support+unnamed@test.com>, sender@example.com'
)
# suggested recipients
recipients = self.recipient.message_get_suggested_recipients()
suggested_mails = {
email[1] for email in recipients[self.recipient.id]
}
self.assertIn('support+unnamed@test.com', suggested_mails)
self.assertEqual(len(recipients[self.recipient.id]), 3)
# Repeated To recipients
message = self.env['mail.message'].create({
'subject': 'Message test',
'author_id': self.sender.id,
'email_from': self.sender.email,
'message_type': 'comment',
'model': 'res.partner',
'res_id': self.recipient.id,
'partner_ids': [(4, self.recipient.id)],
'email_to': 'Dominique Pinon <support+unnamed@test.com>'
', sender@example.com, recipient@example.com',
'body': '<p>This is another test message</p>',
})
message._notify(message, {}, force_send=True)
recipients = self.recipient.message_get_suggested_recipients()
self.assertEqual(len(recipients[self.recipient.id][0]), 3)
self._check_partner_trackings_to(message)
# Catchall + Alias
self.env['ir.config_parameter'].set_param(
'mail.catchall.domain', 'test.com')
self.env['mail.alias'].create({
'alias_model_id': self.env['ir.model']._get('res.partner').id,
'alias_name': 'support+unnamed',
})
recipients = self.recipient.message_get_suggested_recipients()
self.assertEqual(len(recipients[self.recipient.id]), 2)
suggested_mails = {
email[1] for email in recipients[self.recipient.id]
}
self.assertNotIn('unnamed@test.com', suggested_mails)
def test_failed_message(self):
MailMessageObj = self.env['mail.message']