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

  1. # Copyright (C) 2015 Therp BV <http://therp.nl>
  2. # Copyright (C) 2017 Komit <http://www.komit-consulting.com>
  3. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
  4. from lxml import etree
  5. from odoo.tests.common import TransactionCase
  6. class TestMailRestrictFollowerSelection(TransactionCase):
  7. def setUp(self):
  8. super().setUp()
  9. self.partner = self.env['res.partner'].create({
  10. 'name': 'Partner',
  11. 'customer': True,
  12. 'email': 'test@test.com',
  13. })
  14. def test_fields_view_get(self):
  15. result = self.env['mail.wizard.invite'].fields_view_get(
  16. view_type='form')
  17. for field in etree.fromstring(result['arch']).xpath(
  18. '//field[@name="partner_ids"]'):
  19. self.assertTrue(field.get('domain'))
  20. def send_action(self):
  21. compose = self.env['mail.compose.message'].with_context({
  22. 'mail_post_autofollow': True,
  23. 'default_composition_mode': 'comment',
  24. 'default_model': 'res.partner',
  25. 'default_use_active_domain': True,
  26. }).create({
  27. 'subject': 'From Composer Test',
  28. 'body': '${object.description}',
  29. 'res_id': self.partner.id,
  30. 'partner_ids': [(4, id) for id in self.partner.ids],
  31. })
  32. self.assertEqual(compose.partner_ids, self.partner)
  33. compose.send_mail_action()
  34. def test_followers_meet(self):
  35. self.partner.write({'customer': True})
  36. self.assertTrue(self.partner.customer)
  37. self.send_action()
  38. self.assertIn(
  39. self.partner,
  40. self.partner.message_follower_ids.mapped('partner_id')
  41. )
  42. def test_followers_not_meet(self):
  43. self.partner.write({'customer': False})
  44. self.assertFalse(self.partner.customer)
  45. self.send_action()
  46. self.assertNotIn(
  47. self.partner,
  48. self.partner.message_follower_ids.mapped('partner_id')
  49. )