You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.9 KiB
57 lines
1.9 KiB
# Copyright (C) 2015 Therp BV <http://therp.nl>
|
|
# Copyright (C) 2017 Komit <http://www.komit-consulting.com>
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
|
|
from lxml import etree
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
|
|
class TestMailRestrictFollowerSelection(TransactionCase):
|
|
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.partner = self.env['res.partner'].create({
|
|
'name': 'Partner',
|
|
'customer': True,
|
|
'email': 'test@test.com',
|
|
})
|
|
|
|
def test_fields_view_get(self):
|
|
result = self.env['mail.wizard.invite'].fields_view_get(
|
|
view_type='form')
|
|
for field in etree.fromstring(result['arch']).xpath(
|
|
'//field[@name="partner_ids"]'):
|
|
self.assertTrue(field.get('domain'))
|
|
|
|
def send_action(self):
|
|
compose = self.env['mail.compose.message'].with_context({
|
|
'mail_post_autofollow': True,
|
|
'default_composition_mode': 'comment',
|
|
'default_model': 'res.partner',
|
|
'default_use_active_domain': True,
|
|
}).create({
|
|
'subject': 'From Composer Test',
|
|
'body': '${object.description}',
|
|
'res_id': self.partner.id,
|
|
'partner_ids': [(4, id) for id in self.partner.ids],
|
|
})
|
|
self.assertEqual(compose.partner_ids, self.partner)
|
|
compose.send_mail_action()
|
|
|
|
def test_followers_meet(self):
|
|
self.partner.write({'customer': True})
|
|
self.assertTrue(self.partner.customer)
|
|
self.send_action()
|
|
self.assertIn(
|
|
self.partner,
|
|
self.partner.message_follower_ids.mapped('partner_id')
|
|
)
|
|
|
|
def test_followers_not_meet(self):
|
|
self.partner.write({'customer': False})
|
|
self.assertFalse(self.partner.customer)
|
|
self.send_action()
|
|
self.assertNotIn(
|
|
self.partner,
|
|
self.partner.message_follower_ids.mapped('partner_id')
|
|
)
|