From d98906c411403f2bb60cb93b284f6d5f51bc5ac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 2 Sep 2021 11:43:49 +0000 Subject: [PATCH] [REF] test_mail_full: remove unnecessary mock of link tracker Another one already exists. Let us clean some code. Part-of: odoo/odoo#75895 --- addons/link_tracker/tests/common.py | 3 ++ .../tests/test_mailing_controllers.py | 2 + addons/test_mail_full/tests/test_sms_sms.py | 51 +++++-------------- 3 files changed, 17 insertions(+), 39 deletions(-) diff --git a/addons/link_tracker/tests/common.py b/addons/link_tracker/tests/common.py index eda2229178c..f4c13c3e4d5 100644 --- a/addons/link_tracker/tests/common.py +++ b/addons/link_tracker/tests/common.py @@ -14,6 +14,9 @@ class MockLinkTracker(common.BaseCase): def setUp(self): super(MockLinkTracker, self).setUp() + self._web_base_url = self.env['mail.mail'].get_base_url() + self.env['ir.config_parameter'].sudo().set_param('web.base.url', 'https://test.odoo.com') + def _get_title_from_url(url): return "Test_TITLE" diff --git a/addons/mass_mailing/tests/test_mailing_controllers.py b/addons/mass_mailing/tests/test_mailing_controllers.py index 30b5f653482..fefe7796738 100644 --- a/addons/mass_mailing/tests/test_mailing_controllers.py +++ b/addons/mass_mailing/tests/test_mailing_controllers.py @@ -10,6 +10,8 @@ from odoo.tests.common import HttpCase class TestMassMailingControllers(MassMailCommon, HttpCase): def test_tracking_url_token(self): + self.env['ir.config_parameter'].sudo().set_param('web.base.url', self._web_base_url) + mail_mail = self.env['mail.mail'].create({}) response = self.url_open(mail_mail._get_tracking_url()) diff --git a/addons/test_mail_full/tests/test_sms_sms.py b/addons/test_mail_full/tests/test_sms_sms.py index f79e0556750..20682517fbb 100644 --- a/addons/test_mail_full/tests/test_sms_sms.py +++ b/addons/test_mail_full/tests/test_sms_sms.py @@ -7,47 +7,12 @@ from unittest.mock import patch from unittest.mock import DEFAULT from odoo import exceptions +from odoo.addons.link_tracker.tests.common import MockLinkTracker from odoo.addons.sms.models.sms_sms import SmsSms as SmsSms from odoo.addons.test_mail_full.tests.common import TestMailFullCommon -from odoo.tests import common -class LinkTrackerMock(common.BaseCase): - - def setUp(self): - super(LinkTrackerMock, self).setUp() - - def _get_title_from_url(u): - return "Test_TITLE" - - self.env['ir.config_parameter'].sudo().set_param('web.base.url', 'https://test.odoo.com') - - link_tracker_title_patch = patch('odoo.addons.link_tracker.models.link_tracker.LinkTracker._get_title_from_url', wraps=_get_title_from_url) - link_tracker_title_patch.start() - self.addCleanup(link_tracker_title_patch.stop) - - self.utm_c = self.env.ref('utm.utm_campaign_fall_drive') - self.utm_m = self.env.ref('mass_mailing_sms.utm_medium_sms') - self.tracker_values = { - 'campaign_id': self.utm_c.id, - 'medium_id': self.utm_m.id, - } - - def assertLinkTracker(self, url, url_params): - links = self.env['link.tracker'].sudo().search([('url', '=', url)]) - self.assertEqual(len(links), 1) - - # check UTMS are correctly set on redirect URL - original_url = werkzeug.urls.url_parse(url) - redirect_url = werkzeug.urls.url_parse(links.redirected_url) - redirect_params = redirect_url.decode_query().to_dict(flat=True) - self.assertEqual(redirect_url.scheme, original_url.scheme) - self.assertEqual(redirect_url.decode_netloc(), original_url.decode_netloc()) - self.assertEqual(redirect_url.path, original_url.path) - self.assertEqual(redirect_params, url_params) - - -class TestSMSPost(TestMailFullCommon, LinkTrackerMock): +class TestSMSPost(TestMailFullCommon, MockLinkTracker): @classmethod def setUpClass(cls): @@ -61,12 +26,20 @@ class TestSMSPost(TestMailFullCommon, LinkTrackerMock): 'body': cls._test_body, }) + # tracking info + cls.utm_c = cls.env.ref('utm.utm_campaign_fall_drive') + cls.utm_m = cls.env.ref('mass_mailing_sms.utm_medium_sms') + cls.tracker_values = { + 'campaign_id': cls.utm_c.id, + 'medium_id': cls.utm_m.id, + } + def test_body_link_shorten(self): link = 'http://www.example.com' self.env['link.tracker'].search([('url', '=', link)]).unlink() new_body = self.env['mail.render.mixin']._shorten_links_text('Welcome to %s !' % link, self.tracker_values) self.assertNotIn(link, new_body) - self.assertLinkTracker(link, {'utm_campaign': self.utm_c.name, 'utm_medium': self.utm_m.name}) + self.assertLinkShortenedText(new_body, (link, True), {'utm_campaign': self.utm_c.name, 'utm_medium': self.utm_m.name}) link = self.env['link.tracker'].search([('url', '=', link)]) self.assertIn(link.short_url, new_body) @@ -74,7 +47,7 @@ class TestSMSPost(TestMailFullCommon, LinkTrackerMock): self.env['link.tracker'].search([('url', '=', link)]).unlink() new_body = self.env['mail.render.mixin']._shorten_links_text('Welcome to %s !' % link, self.tracker_values) self.assertNotIn(link, new_body) - self.assertLinkTracker(link, { + self.assertLinkShortenedText(new_body, (link, True), { 'utm_campaign': self.utm_c.name, 'utm_medium': self.utm_m.name, 'test[0]': '42',