diff --git a/addons/test_mail/__manifest__.py b/addons/test_mail/__manifest__.py index 52282f6746d..51d9cc7fe42 100644 --- a/addons/test_mail/__manifest__.py +++ b/addons/test_mail/__manifest__.py @@ -15,6 +15,8 @@ tests independently to functional aspects of other models. """, ], 'demo': [ 'data/demo.xml', + 'data/subtype_demo.xml', + 'data/template_demo.xml', ], 'installable': True, 'application': False, diff --git a/addons/test_mail/data/subtype_demo.xml b/addons/test_mail/data/subtype_demo.xml new file mode 100644 index 00000000000..20a486aace8 --- /dev/null +++ b/addons/test_mail/data/subtype_demo.xml @@ -0,0 +1,28 @@ + + + + + Umbrella Changed Subtype + Umbrella Changed + mail.test.full + + + + + + Umbrella Default Subtype + mail.test + + + + + + Umbrella Child Full Subtype + mail.test + + umbrella_id + + + + + diff --git a/addons/test_mail/data/template_demo.xml b/addons/test_mail/data/template_demo.xml new file mode 100644 index 00000000000..35bdbedd7a2 --- /dev/null +++ b/addons/test_mail/data/template_demo.xml @@ -0,0 +1,24 @@ + + + + Mail Test Full: Tracking Template + Test Template + ${object.customer_id.id | safe} +

Hello ${object.name}

+ + +
+ + + Mail Test: Template + Post on ${object.name} + ${object.customer_id.id} +

Adding stuff on ${object.name}

+ + +
+ + +
diff --git a/addons/test_mail/models/test_mail_models.py b/addons/test_mail/models/test_mail_models.py index ec3e712fe38..4c1fd408ddf 100644 --- a/addons/test_mail/models/test_mail_models.py +++ b/addons/test_mail/models/test_mail_models.py @@ -62,13 +62,13 @@ class MailTestFull(models.Model): if 'customer_id' in changes and record.mail_template: res['customer_id'] = (record.mail_template, {'composition_mode': 'mass_mail'}) elif 'datetime' in changes: - res['datetime'] = ('mail.track_template', {'composition_mode': 'mass_mail'}) + res['datetime'] = ('test_mail.mail_test_full_tracking_view', {'composition_mode': 'mass_mail'}) return res def _track_subtype(self, init_values): self.ensure_one() if 'umbrella_id' in init_values and self.umbrella_id: - return 'mail.track_subtype_umbrella' + return 'test_mail.st_mail_test_full_umbrella_upd' return super(MailTestFull, self)._track_subtype(init_values) @@ -82,6 +82,7 @@ class MailTestAlias(models.Model): name = fields.Char() description = fields.Text() + customer_id = fields.Many2one('res.partner', 'Customer') alias_id = fields.Many2one( 'mail.alias', 'Alias', delegate=True) diff --git a/addons/test_mail/tests/test_mail_followers.py b/addons/test_mail/tests/test_mail_followers.py index 9e3c55ee0a9..a59ef9cea3c 100644 --- a/addons/test_mail/tests/test_mail_followers.py +++ b/addons/test_mail/tests/test_mail_followers.py @@ -123,6 +123,10 @@ class AdvancedFollowersTest(common.BaseFunctionalTest): }) Subtype = cls.env['mail.message.subtype'] + + # clean demo data to avoid interferences + Subtype.search([('res_model', 'in', ['mail.test', 'mail.test.track'])]).unlink() + cls.sub_nodef = Subtype.create({'name': 'Sub NoDefault', 'default': False, 'res_model': 'mail.test'}) cls.sub_umb1 = Subtype.create({'name': 'Sub Umbrella1', 'default': False, 'res_model': 'mail.test.track'}) cls.sub_umb2 = Subtype.create({'name': 'Sub Umbrella2', 'default': False, 'res_model': 'mail.test.track'}) @@ -187,7 +191,7 @@ class AdvancedFollowersTest(common.BaseFunctionalTest): 'umbrella_id': umbrella.id, }) - all_defaults = self.env['mail.message.subtype'].search([('default', '=', True), '|', ('res_model', '=', 'mail.test.full'), ('res_model', '=', False)]) + all_defaults = self.env['mail.message.subtype'].search([('default', '=', True), '|', ('res_model', '=', 'mail.test.track'), ('res_model', '=', False)]) external_defaults = all_defaults.filtered(lambda subtype: not subtype.internal) self.assertEqual(sub1.message_partner_ids, self.user_portal.partner_id | self.user_employee.partner_id) diff --git a/addons/test_mail/tests/test_message_track.py b/addons/test_mail/tests/test_message_track.py index e66286fd406..ab8da10bd8d 100644 --- a/addons/test_mail/tests/test_message_track.py +++ b/addons/test_mail/tests/test_message_track.py @@ -26,17 +26,6 @@ class TestTracking(common.BaseFunctionalTest, common.MockEmails): def setUp(self): super(TestTracking, self).setUp() - self.track_subtype_umbrella = self.env['mail.message.subtype'].create({ - 'name': 'Umbrella', - 'description': 'Umbrella Changed', - }) - self.env['ir.model.data'].create({ - 'name': 'track_subtype_umbrella', - 'model': 'mail.message.subtype', - 'module': 'mail', - 'res_id': self.track_subtype_umbrella.id - }) - record = self.env['mail.test.full'].sudo(self.user_employee).with_context(self._quick_create_ctx).create({ 'name': 'Test', }) @@ -78,10 +67,10 @@ class TestTracking(common.BaseFunctionalTest, common.MockEmails): """ Update some tracked fields linked to some subtype -> message with onchange + always tracked values """ self.record.message_subscribe( partner_ids=[self.user_admin.partner_id.id], - subtype_ids=[self.track_subtype_umbrella.id] + subtype_ids=[self.env.ref('test_mail.st_mail_test_full_umbrella_upd').id] ) - umbrella = self.env['mail.test'].create({'name': 'Umbrella'}) + umbrella = self.env['mail.test'].with_context(mail_create_nosubscribe=True).create({'name': 'Umbrella'}) self.record.write({ 'name': 'Test2', 'email_from': 'noone@example.com', @@ -89,7 +78,7 @@ class TestTracking(common.BaseFunctionalTest, common.MockEmails): }) # one new message containing tracking; subtype linked to tracking self.assertEqual(len(self.record.message_ids), 1) - self.assertEqual(self.record.message_ids.subtype_id, self.track_subtype_umbrella) + self.assertEqual(self.record.message_ids.subtype_id, self.env.ref('test_mail.st_mail_test_full_umbrella_upd')) # no specific recipients except those following umbrella self.assertEqual(self.record.message_ids.partner_ids, self.env['res.partner']) @@ -104,13 +93,7 @@ class TestTracking(common.BaseFunctionalTest, common.MockEmails): def test_message_track_template(self): """ Update some tracked fields linked to some template -> message with onchange + always tracked values """ - mail_template = self.env['mail.template'].create({ - 'model_id': self.env.ref('test_mail.model_mail_test_full').id, - 'body_html': '

Hello ${object.name}

', - 'subject': 'Test Template', - 'partner_to': '${object.customer_id.id | safe}', - }) - self.record.write({'mail_template': mail_template.id}) + self.record.write({'mail_template': self.env.ref('test_mail.mail_test_full_tracking_tpl').id}) self.assertEqual(self.record.message_ids, self.env['mail.message']) self.record.write({