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.

38 lines
1.6 KiB

  1. # Copyright 2015 Pedro M. Baeza <pedro.baeza@tecnativa.com>
  2. # Copyright 2015 Antonio Espinosa <antonio.espinosa@tecnativa.com>
  3. # Copyright 2015 Javier Iniesta <javieria@antiun.com>
  4. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  5. from . import base
  6. from odoo.exceptions import UserError
  7. class PartnerMailListWizardCase(base.BaseCase):
  8. def test_add_to_mail_list(self):
  9. wizard = self.env['partner.mail.list.wizard'].create(
  10. {'mail_list_id': self.mailing_list.id})
  11. wizard.partner_ids = [self.partner.id]
  12. wizard.add_to_mail_list()
  13. contacts = self.env['mail.mass_mailing.contact'].search([
  14. ('partner_id', '=', self.partner.id)])
  15. cont = contacts.filtered(lambda r: wizard.mail_list_id in r.list_ids)
  16. self.assertEqual(len(cont), 1)
  17. self.check_mailing_contact_partner(cont)
  18. # This line does not create a new contact
  19. wizard.add_to_mail_list()
  20. self.assertEqual(len(self.partner.mass_mailing_contact_ids), 1)
  21. self.assertEqual(self.partner.mass_mailing_contact_ids.list_ids,
  22. self.mailing_list)
  23. list_2 = self.create_mailing_list({'name': 'New list'})
  24. wizard.mail_list_id = list_2
  25. wizard.add_to_mail_list()
  26. self.assertEqual(len(self.partner.mass_mailing_contact_ids), 1)
  27. self.assertEqual(self.partner.mass_mailing_contact_ids.list_ids,
  28. self.mailing_list | list_2)
  29. partner = self.env['res.partner'].create({'name': 'No email partner'})
  30. wizard.partner_ids = [partner.id]
  31. with self.assertRaises(UserError):
  32. wizard.add_to_mail_list()