RATIONALE Channel model is a mail.thread enabled model behaving strangely with followers, notifications and discuss. Its code should however be simplified to be more self contained and avoid unwanted side effects on other models. SPECIFICATIONS Remove ``message_channel_ids`` field from ``mail.thread``. As we removed support of (un)subscribing channel-based followers there is no need anymore to have a field to access them. We can now safely remove this field as it has no use anymore. LINKS Task ID-2070632 (main task) Task ID-2419762 (followup task) COM PR odoo/odoo#62859 ENT PR odoo/enterprise#15172 UPG PR odoo/upgrade#2005
42 lines
2.1 KiB
Python
42 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.base.tests.test_ir_actions import TestServerActionsBase
|
|
from odoo.addons.test_mail.tests.common import TestMailCommon
|
|
|
|
|
|
class TestServerActionsEmail(TestMailCommon, TestServerActionsBase):
|
|
|
|
def test_action_email(self):
|
|
email_template = self._create_template('res.partner', {'partner_to': '%s' % self.test_partner.id})
|
|
self.action.write({'state': 'email', 'template_id': email_template.id})
|
|
self.action.with_context(self.context).run()
|
|
# check an email is waiting for sending
|
|
mail = self.env['mail.mail'].sudo().search([('subject', '=', 'About TestingPartner')])
|
|
self.assertEqual(len(mail), 1)
|
|
# check email content
|
|
self.assertEqual(mail.body, '<p>Hello TestingPartner</p>')
|
|
|
|
def test_action_followers(self):
|
|
self.test_partner.message_unsubscribe(self.test_partner.message_partner_ids.ids)
|
|
random_partner = self.env['res.partner'].create({'name': 'Thierry Wololo'})
|
|
self.action.write({
|
|
'state': 'followers',
|
|
'partner_ids': [(4, self.env.ref('base.partner_admin').id), (4, random_partner.id)],
|
|
})
|
|
self.action.with_context(self.context).run()
|
|
self.assertEqual(self.test_partner.message_partner_ids, self.env.ref('base.partner_admin') | random_partner)
|
|
|
|
def test_action_next_activity(self):
|
|
self.action.write({
|
|
'state': 'next_activity',
|
|
'activity_user_type': 'specific',
|
|
'activity_type_id': self.env.ref('mail.mail_activity_data_meeting').id,
|
|
'activity_summary': 'TestNew',
|
|
})
|
|
before_count = self.env['mail.activity'].search_count([])
|
|
run_res = self.action.with_context(self.context).run()
|
|
self.assertFalse(run_res, 'ir_actions_server: create next activity action correctly finished should return False')
|
|
self.assertEqual(self.env['mail.activity'].search_count([]), before_count + 1)
|
|
self.assertEqual(self.env['mail.activity'].search_count([('summary', '=', 'TestNew')]), 1)
|