19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:30:27 +01:00
parent d1963a3c3a
commit 2d3ee4855a
7430 changed files with 2687981 additions and 2965473 deletions

View file

@ -19,5 +19,5 @@ class TestUTMCommon(common.TransactionCase):
'name': 'User Employee',
'login': 'user_employee_utm',
'email': 'user_employee_utm@test.com',
'groups_id': [(6, 0, [cls.env.ref('base.group_user').id])],
'group_ids': [(6, 0, [cls.env.ref('base.group_user').id])],
})

View file

@ -11,5 +11,5 @@ class TestRoutes(HttpCaseWithUserDemo):
def test_01_web_session_destroy(self):
base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
self.authenticate('demo', 'demo')
res = self.opener.post(url=base_url + '/web/session/destroy', json={})
res = self.url_open(url=base_url + '/web/session/destroy', json={})
self.assertEqual(res.status_code, 200)

View file

@ -57,6 +57,52 @@ class TestUtm(TestUTMCommon):
self.assertNotIn(source_4, source_1 | source_2 | source_3 | source_3_2 | source_4_2)
self.assertEqual(source_4.name, 'Source 4')
def test_fetch_or_create_medium(self):
new_medium = self.env['utm.medium'].create({'name': 'New Medium'})
self.env['ir.model.data'].create({
'model': 'utm.medium',
'module': 'utm',
'name': 'utm_medium_new_medium',
'res_id': new_medium.id,
})
# fetch existing medium
self.assertEqual(new_medium, self.env.ref('utm.utm_medium_new_medium'))
self.assertEqual(new_medium, self.env['utm.medium']._fetch_or_create_utm_medium('New Medium'))
self.assertEqual(new_medium, self.env['utm.medium']._fetch_or_create_utm_medium('new medium'))
self.assertEqual(new_medium, self.env['utm.medium']._fetch_or_create_utm_medium('new_medium'))
self.assertEqual(new_medium, self.env['utm.medium']._fetch_or_create_utm_medium('new.Medium'))
# create and fetch medium
other_medium = self.env['utm.medium']._fetch_or_create_utm_medium('Another Medium')
self.assertEqual(other_medium, self.env['utm.medium']._fetch_or_create_utm_medium('Another Medium'))
self.assertEqual(other_medium, self.env.ref('utm.utm_medium_another_medium'))
self.assertEqual(other_medium, self.env['utm.medium']._fetch_or_create_utm_medium('another medium'))
def test_find_or_create_record_case(self):
""" Find-or-create should be case insensitive to avoid useless duplication """
name = "LinkedIn Plus"
source = self.env["utm.mixin"]._find_or_create_record("utm.source", name)
self.assertEqual(source.name, name)
# case insensitive equal (also strip spaces)
for src in ("linkedin plus", "Linkedin plus", "LINKEDIN PLUS", f"{name} ", f" {name}"):
with self.subTest(src=src):
found = self.env['utm.mixin']._find_or_create_record("utm.source", src)
self.assertEqual(found, source)
# not equal, just to be sure we don't do a pure ilike
for src in ("LinkedIn", "Plus"):
with self.subTest(src=src):
found = self.env['utm.mixin']._find_or_create_record("utm.source", src)
self.assertNotEqual(found, source)
def test_find_or_create_with_archived_record(self):
archived_campaign = self.env['utm.campaign'].create([{
'active': False,
'name': 'Archived Campaign',
}])
campaign = self.env['utm.mixin']._find_or_create_record('utm.campaign', 'Archived Campaign')
self.assertEqual(archived_campaign, campaign, "An archived record must be found instead of re-created.")
def test_name_generation(self):
"""Test that the name is always unique. A counter must be added at the
end of the name if it's not the case."""