# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. import werkzeug from lxml import etree from unittest.mock import patch from odoo.tests import common class MockLinkTracker(common.BaseCase): def setUp(self): super(MockLinkTracker, self).setUp() def _get_title_from_url(url): return "Test_TITLE" 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) def _get_href_from_anchor_id(self, body, anchor_id): html = etree.fromstring(body) return html.xpath("//*[@id='%s']" % anchor_id)[0].attrib.get('href') def _get_tracker_from_short_url(self, short_url): code = self.env['link.tracker.code'].sudo().search([ ('code', '=', short_url.split('/r/')[-1]) ]) return code.link_id def assertLinkShortenedHtml(self, body, link_info, link_params=None): """ Find shortened links in an HTML content. Usage : self.assertLinkShortenedHtml( message.body, ('url0', 'http://www.odoo.com', True), {'utm_campaign': self.utm_c.name, 'utm_medium': self.utm_m.name} ) """ (anchor_id, url, is_shortened) = link_info anchor_href = self._get_href_from_anchor_id("