Using patcher.start() can easily lead to incorrect cleanup. -> after a copy paste, patcher is working, but stop is forgotten -> stop is present, but won't be called if something fails during the test This commit add an utility `start(patcher)` to always have the add cleanup. Using a standard way to start the patcher with an automated addCleanup should prevent this kind of mistake. This is why this commit also replaces all valid patch.start() (followed immediately by a addCleanup) closes odoo/odoo#102873 X-original-commit: 7d5a193d86316965a0908c65cfacfb607dc3f3ad Related: odoo/enterprise#32618 Signed-off-by: Christophe Monniez (moc) <moc@odoo.com> Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
28 lines
884 B
Python
28 lines
884 B
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from unittest.mock import patch
|
|
|
|
import odoo.tests
|
|
|
|
|
|
@odoo.tests.common.tagged('post_install', '-at_install')
|
|
class TestUi(odoo.tests.HttpCase):
|
|
|
|
def setUp(self):
|
|
super(TestUi, self).setUp()
|
|
|
|
def _get_title_from_url(addr, **kw):
|
|
return 'Contact Us | My Website'
|
|
|
|
patcher = patch('odoo.addons.link_tracker.models.link_tracker.LinkTracker._get_title_from_url', wraps=_get_title_from_url)
|
|
self.startPatcher(patcher)
|
|
|
|
def test_01_test_ui(self):
|
|
self.env['link.tracker'].search_or_create({
|
|
'campaign_id': 2,
|
|
'medium_id': 2,
|
|
'source_id': 2,
|
|
'url': self.env["ir.config_parameter"].sudo().get_param("web.base.url") + '/contactus',
|
|
})
|
|
self.start_tour("/", 'website_links_tour', login="admin")
|