Odoo18-Base/addons/test_mass_mailing/tests/test_utm.py
2025-03-10 10:52:11 +07:00

86 lines
2.8 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.test_mass_mailing.tests import common
from odoo.tests import tagged, users
@tagged("utm")
class TestUTM(common.TestMassMailCommon):
@users("employee")
def test_utm_source_mixin_name(self):
""" Test name management with source mixin, as name should be unique
and automatically incremented """
sources = self.env["utm.test.source.mixin"].create([
{
'name': 'Test',
'title': 'Test',
}
for idx in range(5)]
)
self.assertListEqual(
sources.mapped('name'),
["Test", "Test [2]", "Test [3]", "Test [4]", "Test [5]"]
)
@users("employee")
def test_utm_source_mixin_name_brackets(self):
""" Test with brackets """
false_dupes = self.env["utm.test.source.mixin"].create([
{
'name': 'NewTest [2]',
'title': 'NewTest',
}
for idx in range(3)] + [
{
'name': 'NewTest [3]',
'title': 'NewTest',
}, {
'name': 'NewTest',
'title': 'NewTest',
}]
)
self.assertListEqual(
false_dupes.mapped('name'),
["NewTest [2]", "NewTest", "NewTest [3]", "NewTest [4]", "NewTest [5]"]
)
new_source = self.env["utm.test.source.mixin"].create({
"name": "OtherTest [2]",
})
self.assertEqual(new_source.name, "OtherTest [2]")
@users("employee")
def test_utm_source_mixin_name_cross_model(self):
""" Uniqueness of source should be ensured cross models. For this purpose
we use two models using the utm.source.mixin, allowing to check conflict
management between models. """
source_1 = self.env["utm.test.source.mixin"].create({
"name": "Test",
"title": "Test",
})
self.assertEqual(source_1.name, "Test")
self.assertEqual(source_1.title, "Test")
source_other_1 = self.env["utm.test.source.mixin.other"].create({
"name": "Test",
"title": "Test",
})
self.assertEqual(source_other_1.name, "Test [2]")
self.assertEqual(source_other_1.title, "Test")
source_other_2 = self.env["utm.test.source.mixin.other"].create({
"name": "New",
"title": "New",
})
self.assertEqual(source_other_2.name, "New")
self.assertEqual(source_other_2.title, "New")
source_other_2.write({"name": "Test"})
self.assertEqual(source_other_2.name, "Test [3]")
self.assertEqual(source_other_2.title, "New")
source_2 = source_1.copy()
self.assertEqual(source_2.name, "Test [4]")
self.assertEqual(source_2.title, "Test")