From 621c8b4bb76414375eec15cfe4822ac33513256c Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 7 Nov 2012 11:27:45 +0100 Subject: [PATCH] [IMP] email_template: add test: The fields email_to, email_to_partner and email_cc return the good list of partner_id bzr revid: chm@openerp.com-20121107102745-9d0dt1fkzauvfyjs --- addons/email_template/tests/test_mail.py | 82 +++++++++++++++++------- 1 file changed, 59 insertions(+), 23 deletions(-) diff --git a/addons/email_template/tests/test_mail.py b/addons/email_template/tests/test_mail.py index 7af05f38b0e..5db90504db3 100644 --- a/addons/email_template/tests/test_mail.py +++ b/addons/email_template/tests/test_mail.py @@ -32,6 +32,8 @@ class test_message_compose(test_mail.TestMailMockups): self.mail_message = self.registry('mail.message') self.res_users = self.registry('res.users') self.res_partner = self.registry('res.partner') + self.mail_compose = self.registry('mail.compose.message') + self.email_template = self.registry('email.template') # create a 'pigs' and 'bird' groups that will be used through the various tests self.group_pigs_id = self.mail_group.create(self.cr, self.uid, @@ -40,9 +42,8 @@ class test_message_compose(test_mail.TestMailMockups): {'name': 'Bird', 'description': 'I am angry !'}) def test_00_message_compose_wizard(self): - """ Tests designed for the mail.compose.message wizard updated by email_template. """ + """ Tests designed for the mail.compose.message wizard updated by self.email_template. """ cr, uid = self.cr, self.uid - mail_compose = self.registry('mail.compose.message') self.res_users.write(cr, uid, [uid], {'signature': 'Admin', 'email': 'a@a.a'}) user_admin = self.res_users.browse(cr, uid, uid) p_a_id = user_admin.partner_id.id @@ -62,8 +63,7 @@ class test_message_compose(test_mail.TestMailMockups): # Create template on mail.group, with attachments group_model_id = self.registry('ir.model').search(cr, uid, [('model', '=', 'mail.group')])[0] - email_template = self.registry('email.template') - email_template_id = email_template.create(cr, uid, {'model_id': group_model_id, + self.email_template_id = self.email_template.create(cr, uid, {'model_id': group_model_id, 'name': 'Pigs Template', 'subject': '${object.name}', 'body_html': '${object.description}', 'user_signature': True, 'attachment_ids': [(0, 0, _attachments[0]), (0, 0, _attachments[1])], @@ -74,37 +74,37 @@ class test_message_compose(test_mail.TestMailMockups): # ---------------------------------------- # 1. Comment on pigs - compose_id = mail_compose.create(cr, uid, + compose_id = self.mail_compose.create(cr, uid, {'subject': 'Forget me subject', 'body': '

Dummy body

'}, {'default_composition_mode': 'comment', 'default_model': 'mail.group', 'default_res_id': self.group_pigs_id, - 'default_template_id': email_template_id, + 'default_template_id': self.email_template_id, 'active_ids': [self.group_pigs_id, self.group_bird_id]}) - compose = mail_compose.browse(cr, uid, compose_id) + compose = self.mail_compose.browse(cr, uid, compose_id) # 2. Save current composition form as a template - mail_compose.save_as_template(cr, uid, [compose_id], context={'default_model': 'mail.group'}) - # Test: email_template subject, body_html, model - last_template_id = email_template.search(cr, uid, [('model', '=', 'mail.group'), ('subject', '=', 'Forget me subject')], limit=1)[0] - self.assertTrue(last_template_id, 'email_template not found for model mail.group, subject Forget me subject') - last_template = email_template.browse(cr, uid, last_template_id) - self.assertEqual(last_template.body_html, '

Dummy body

', 'email_template incorrect body_html') + self.mail_compose.save_as_template(cr, uid, [compose_id], context={'default_model': 'mail.group'}) + # Test: self.email_template subject, body_html, model + last_template_id = self.email_template.search(cr, uid, [('model', '=', 'mail.group'), ('subject', '=', 'Forget me subject')], limit=1)[0] + self.assertTrue(last_template_id, 'self.email_template not found for model mail.group, subject Forget me subject') + last_template = self.email_template.browse(cr, uid, last_template_id) + self.assertEqual(last_template.body_html, '

Dummy body

', 'self.email_template incorrect body_html') # ---------------------------------------- # CASE2: comment with template, save as template # ---------------------------------------- # 1. Comment on pigs - compose_id = mail_compose.create(cr, uid, + compose_id = self.mail_compose.create(cr, uid, {'subject': 'Forget me subject', 'body': 'Dummy body'}, {'default_composition_mode': 'comment', 'default_model': 'mail.group', 'default_res_id': self.group_pigs_id, - 'default_template_id': email_template_id, + 'default_template_id': self.email_template_id, 'active_ids': [self.group_pigs_id, self.group_bird_id]}) - compose = mail_compose.browse(cr, uid, compose_id) + compose = self.mail_compose.browse(cr, uid, compose_id) # 2. Perform 'toggle_template', to set use_template and use template_id - mail_compose.toggle_template(cr, uid, [compose_id], {'default_composition_mode': 'comment', 'default_model': 'mail.group'}) + self.mail_compose.toggle_template(cr, uid, [compose_id], {'default_composition_mode': 'comment', 'default_model': 'mail.group'}) compose.refresh() message_pids = [partner.id for partner in compose.partner_ids] partner_ids = self.res_partner.search(cr, uid, [('email', 'in', ['b@b.b', 'c@c.c', 'd@d.d'])]) @@ -122,7 +122,7 @@ class test_message_compose(test_mail.TestMailMockups): 'mail.message attachment name / data incorrect') # 3. Perform 'toggle_template': template is not set anymore - mail_compose.toggle_template(cr, uid, [compose_id], {'default_composition_mode': 'comment', 'default_model': 'mail.group'}) + self.mail_compose.toggle_template(cr, uid, [compose_id], {'default_composition_mode': 'comment', 'default_model': 'mail.group'}) compose.refresh() # Test: subject, body, partner_ids self.assertEqual(compose.subject, False, 'mail.compose.message subject incorrect') @@ -133,17 +133,17 @@ class test_message_compose(test_mail.TestMailMockups): # ---------------------------------------- # 1. Mass_mail on pigs and bird, with a default_partner_ids set to check he is correctly added - compose_id = mail_compose.create(cr, uid, + compose_id = self.mail_compose.create(cr, uid, {'subject': 'Forget me subject', 'body': 'Dummy body'}, {'default_composition_mode': 'mass_mail', 'default_model': 'mail.group', 'default_res_id': self.group_pigs_id, - 'default_template_id': email_template_id, + 'default_template_id': self.email_template_id, 'default_partner_ids': [p_a_id], 'active_ids': [self.group_pigs_id, self.group_bird_id]}) - compose = mail_compose.browse(cr, uid, compose_id) + compose = self.mail_compose.browse(cr, uid, compose_id) # 2. Perform 'toggle_template', to set use_template and use template_id - mail_compose.toggle_template(cr, uid, [compose_id], {'default_composition_mode': 'comment', 'default_model': 'mail.group'}) + self.mail_compose.toggle_template(cr, uid, [compose_id], {'default_composition_mode': 'comment', 'default_model': 'mail.group'}) compose.refresh() message_pids = [partner.id for partner in compose.partner_ids] partner_ids = [p_a_id] @@ -154,7 +154,7 @@ class test_message_compose(test_mail.TestMailMockups): self.assertEqual(set(message_pids), set(partner_ids), 'mail.compose.message partner_ids incorrect') # 3. Post the comment, get created message - mail_compose.send_mail(cr, uid, [compose_id], {'default_res_id': -1, 'active_ids': [self.group_pigs_id, self.group_bird_id]}) + self.mail_compose.send_mail(cr, uid, [compose_id], {'default_res_id': -1, 'active_ids': [self.group_pigs_id, self.group_bird_id]}) group_pigs.refresh() group_bird.refresh() message_pigs = group_pigs.message_ids[0] @@ -170,3 +170,39 @@ class test_message_compose(test_mail.TestMailMockups): partner_ids = self.res_partner.search(cr, uid, [('email', 'in', ['b@b.b', 'c@c.c', 'd@d.d'])]) self.assertEqual(set(message_pigs_pids), set(partner_ids), 'mail.message on pigs incorrect number of notified_partner_ids') self.assertEqual(set(message_bird_pids), set(partner_ids), 'mail.message on bird notified_partner_ids incorrect') + + + def test_10_template_email_for_composer(self): + """ Tests designed for message_post. """ + cr, uid = self.cr, self.uid + + # 1 - Bert Tartopoils, with email, object to send message, add his partner_id from email_to + u_a_id = self.res_users.create(cr, uid, {'name': 'Bert Tartopoils', 'email': 'raoul@raoul.fr', 'login': 'raoul'}) + p_a_id = self.res_users.browse(cr, uid, u_a_id).partner_id.id + # 2 - Carine Poilvache, with email, add his partner_id from email_to and email_to_partner + p_b_id = self.res_partner.create(cr, uid, {'name': 'Carine Poilvache', 'email': 'c@c'}) + # 3 - Dédé Grosbedon, without email, add his partner_id from email_to_partner + p_c_id = self.res_partner.create(cr, uid, {'name': 'Dédé Grosbedon'}) + # 4 - Truc Much, without email, add his partner_id from email_cc + p_d_id = self.res_partner.create(cr, uid, {'name': 'Truc Much', 'email': 'd@d'}) + + # Create template on res.users + user_model_id = self.registry('ir.model').search(cr, uid, [('model', '=', 'res.users')])[0] + self.email_template_id = self.email_template.create(cr, uid, { + 'model_id': user_model_id, + 'name': 'Pigs Template', + 'subject': '${object.name}', + 'body_html': '${object.login}', + 'email_to': '${object.email} c@c', + 'email_to_partner': '%i,%i' % (p_b_id, p_c_id), + 'email_cc': 'd@d' + }) + + # patner by email + partner by id (no double) + send_to = [p_a_id, p_b_id, p_c_id, p_d_id]; + + # Generate messsage with default email and partner on template + mail_value = self.mail_compose.generate_email_for_composer(cr, uid, self.email_template_id, u_a_id) + mail_value['partner_ids'].sort() + + self.assertEqual(mail_value['partner_ids'], send_to, 'mail.message the partner_ids list create by template is incorrect')