mirror of https://github.com/OCA/social.git
78 lines
2.9 KiB
Python
78 lines
2.9 KiB
Python
import base64
|
|
|
|
from mock import patch
|
|
|
|
from odoo import exceptions, tools
|
|
from odoo.tests.common import SavepointCase
|
|
|
|
|
|
class TestMailDropTarget(SavepointCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True))
|
|
cls.partner = cls.env["res.partner"].create({"name": "TEST PARTNER"})
|
|
cls.partner.message_subscribe(partner_ids=cls.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.notified_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.notified_partner_ids), 0)
|
|
with self.assertRaises(exceptions.Warning):
|
|
self.partner.message_process_msg(
|
|
self.partner._name, message, thread_id=self.partner.id
|
|
)
|