diff --git a/addons/mass_mailing/models/mailing.py b/addons/mass_mailing/models/mailing.py index 393743155f4..25e5f271d58 100644 --- a/addons/mass_mailing/models/mailing.py +++ b/addons/mass_mailing/models/mailing.py @@ -793,7 +793,7 @@ class MassMailing(models.Model): 'type': 'ir.actions.act_window', 'view_mode': 'tree,kanban,form,calendar,graph', 'res_model': 'mailing.mailing', - 'domain': [('campaign_id', '=', self.campaign_id.id), ('ab_testing_enabled', '=', True)], + 'domain': [('campaign_id', '=', self.campaign_id.id), ('ab_testing_enabled', '=', True), ('mailing_type', '=', self.mailing_type)], } if self.mailing_type == 'mail': action['views'] = [ diff --git a/addons/mass_mailing/tests/test_mailing_ab_testing.py b/addons/mass_mailing/tests/test_mailing_ab_testing.py index da89ee73e47..5d950598088 100644 --- a/addons/mass_mailing/tests/test_mailing_ab_testing.py +++ b/addons/mass_mailing/tests/test_mailing_ab_testing.py @@ -132,6 +132,16 @@ class TestMailingABTesting(MassMailCommon): self.assertTrue(ab_mailing.ab_testing_winner_selection, "The selection winner has been set to default value") self.assertTrue(ab_mailing.ab_testing_schedule_datetime, "The schedule date has been set to default value") + @users('user_marketing') + def test_mailing_ab_testing_compare(self): + # compare version feature should returns all mailings of the same + # campaign having a/b testing enabled. + compare_version = self.ab_testing_mailing_1.action_compare_versions() + self.assertEqual( + self.env['mailing.mailing'].search(compare_version.get('domain')), + self.ab_testing_mailing_1 + self.ab_testing_mailing_2 + ) + @mute_logger('odoo.addons.mail.models.mail_mail') @users('user_marketing') def test_mailing_ab_testing_manual_flow(self): diff --git a/addons/mass_mailing_sms/tests/__init__.py b/addons/mass_mailing_sms/tests/__init__.py index d5339f146a7..9e64be10168 100644 --- a/addons/mass_mailing_sms/tests/__init__.py +++ b/addons/mass_mailing_sms/tests/__init__.py @@ -4,3 +4,4 @@ from . import common from . import test_mailing_internals from . import test_mailing_retry +from . import test_mailing_sms_ab_testing diff --git a/addons/mass_mailing_sms/tests/test_mailing_sms_ab_testing.py b/addons/mass_mailing_sms/tests/test_mailing_sms_ab_testing.py new file mode 100644 index 00000000000..1282d80db72 --- /dev/null +++ b/addons/mass_mailing_sms/tests/test_mailing_sms_ab_testing.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from datetime import datetime + +from odoo.addons.mass_mailing_sms.tests.common import MassSMSCommon +from odoo.addons.mass_mailing.tests.test_mailing_ab_testing import TestMailingABTesting +from odoo.tests import tagged + + +@tagged('post_install', '-at_install') +class TestMailingSMSABTesting(MassSMSCommon, TestMailingABTesting): + def setUp(self): + super().setUp() + self.ab_testing_mailing_sms_1 = self.env['mailing.mailing'].create({ + 'subject': 'A/B Testing SMS V1', + 'contact_list_ids': self.mailing_list.ids, + 'ab_testing_enabled': True, + 'ab_testing_pc': 10, + 'ab_testing_schedule_datetime': datetime.now(), + 'mailing_type': 'sms' + }) + self.ab_testing_mailing_sms_2 = self.ab_testing_mailing_sms_1.copy({ + 'subject': 'A/B Testing SMS V2', + 'ab_testing_pc': 20, + }) + + def test_mailing_sms_ab_testing_compare(self): + # compare version feature should returns all mailings of the same + # campaign having a/b testing enabled and of mailing_type 'sms'. + compare_version = self.ab_testing_mailing_sms_1.action_compare_versions() + self.assertEqual( + self.env['mailing.mailing'].search(compare_version.get('domain')), + self.ab_testing_mailing_sms_1 + self.ab_testing_mailing_sms_2 + )