mirror of https://github.com/OCA/social.git
74 lines
2.8 KiB
Python
74 lines
2.8 KiB
Python
from odoo.tests.common import TransactionCase
|
|
from odoo import exceptions, tools
|
|
from mock import patch
|
|
import base64
|
|
|
|
|
|
class TestMailDropTarget(TransactionCase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.partner = self.env['res.partner'].create({
|
|
'name': 'TEST PARTNER'
|
|
})
|
|
self.partner.message_subscribe(partner_ids=self.partner.ids)
|
|
|
|
def test_eml(self):
|
|
message = tools.file_open(
|
|
'sample.eml',
|
|
subdir="addons/mail_drop_target/tests"
|
|
).read()
|
|
comments = len(self.partner.message_ids)
|
|
self.partner.message_process(
|
|
self.partner._name, message, thread_id=self.partner.id)
|
|
self.partner.refresh()
|
|
self.assertEqual(comments+1, len(self.partner.message_ids))
|
|
with self.assertRaises(exceptions.Warning):
|
|
self.partner.message_drop(
|
|
self.partner._name, message, thread_id=self.partner.id)
|
|
|
|
def test_msg(self):
|
|
message = base64.b64encode(tools.file_open(
|
|
'sample.msg',
|
|
mode='rb',
|
|
subdir="addons/mail_drop_target/tests"
|
|
).read())
|
|
comments = len(self.partner.message_ids)
|
|
self.partner.message_process_msg(
|
|
self.partner._name, message, thread_id=self.partner.id)
|
|
self.partner.refresh()
|
|
self.assertEqual(comments+1, len(self.partner.message_ids))
|
|
msg = self.partner.message_ids.filtered(
|
|
lambda m: m.subject == 'Test')
|
|
self.assertIsNotNone(msg.needaction_partner_ids)
|
|
with self.assertRaises(exceptions.Warning):
|
|
self.partner.message_process_msg(
|
|
self.partner._name, message, thread_id=self.partner.id)
|
|
|
|
def test_no_msgextract(self):
|
|
with self.assertRaises(exceptions.UserError), patch(
|
|
'odoo.addons.mail_drop_target.models.mail_thread.Message',
|
|
new=False,
|
|
):
|
|
self.test_msg()
|
|
|
|
def test_msg_no_notification(self):
|
|
message = base64.b64encode(tools.file_open(
|
|
'sample.msg',
|
|
mode='rb',
|
|
subdir="addons/mail_drop_target/tests"
|
|
).read())
|
|
settings = self.env['res.config.settings'].create({})
|
|
settings.disable_notify_mail_drop_target = True
|
|
settings.execute()
|
|
comments = len(self.partner.message_ids)
|
|
self.partner.message_process_msg(
|
|
self.partner._name, message, thread_id=self.partner.id)
|
|
self.partner.refresh()
|
|
self.assertEqual(comments+1, len(self.partner.message_ids))
|
|
msg = self.partner.message_ids.filtered(
|
|
lambda m: m.subject == 'Test')
|
|
self.assertEqual(len(msg.needaction_partner_ids), 0)
|
|
with self.assertRaises(exceptions.Warning):
|
|
self.partner.message_process_msg(
|
|
self.partner._name, message, thread_id=self.partner.id)
|