mirror of https://github.com/OCA/social.git
185 lines
7.0 KiB
Python
185 lines
7.0 KiB
Python
# Copyright 2018 Camptocamp SA
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
|
|
|
|
import json
|
|
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
|
|
class TestImproveTrackingValue(TransactionCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.model = cls.env["mail.tracking.value"]
|
|
cls.msg = cls.env["mail.message"].create({"message_type": "email"})
|
|
cls.mr = cls.env.ref("base.res_partner_title_mister")
|
|
cls.dr = cls.env.ref("base.res_partner_title_doctor")
|
|
cls.mm = cls.env.ref("base.res_partner_title_madam")
|
|
cls.pf = cls.env.ref("base.res_partner_title_prof")
|
|
|
|
def test_change_one2many(self):
|
|
"""Test tracking one2many changes"""
|
|
tracking = self.model.create_tracking_values(
|
|
self.mr,
|
|
self.dr,
|
|
"title",
|
|
{"string": "TestingField", "type": "one2many"},
|
|
tracking_sequence=100,
|
|
model_name="res.partner",
|
|
)
|
|
self.assertEqual(tracking["old_value_char"], self.mr.display_name)
|
|
self.assertEqual(tracking["new_value_char"], self.dr.display_name)
|
|
self.assertEqual(tracking["old_value_text"], json.dumps([self.mr.id]))
|
|
self.assertEqual(tracking["new_value_text"], json.dumps([self.dr.id]))
|
|
|
|
def test_change_one2many_empty(self):
|
|
"""Test tracking one2many changes emtpy"""
|
|
tracking = self.model.create_tracking_values(
|
|
self.mr,
|
|
None,
|
|
"title",
|
|
{"string": "TestingField", "type": "one2many"},
|
|
tracking_sequence=100,
|
|
model_name="res.partner",
|
|
)
|
|
self.assertEqual(tracking["old_value_char"], self.mr.display_name)
|
|
self.assertEqual(tracking["new_value_char"], "")
|
|
self.assertEqual(tracking["old_value_text"], json.dumps([self.mr.id]))
|
|
self.assertEqual(tracking["new_value_text"], json.dumps([]))
|
|
|
|
def test_change_many2many(self):
|
|
"""Test tracking many2many changes"""
|
|
oldvalue = self.env["res.partner.title"].browse([self.mr.id, self.dr.id])
|
|
newvalue = self.env["res.partner.title"].browse([self.mm.id, self.pf.id])
|
|
|
|
tracking = self.model.create_tracking_values(
|
|
oldvalue,
|
|
newvalue,
|
|
"title",
|
|
{"string": "TestingField", "type": "many2many"},
|
|
tracking_sequence=100,
|
|
model_name="res.partner",
|
|
)
|
|
self.assertEqual(
|
|
tracking["old_value_char"],
|
|
self.mr.display_name + ", " + self.dr.display_name,
|
|
)
|
|
self.assertEqual(
|
|
tracking["new_value_char"],
|
|
self.mm.display_name + ", " + self.pf.display_name,
|
|
)
|
|
self.assertEqual(tracking["old_value_text"], json.dumps(oldvalue.ids))
|
|
self.assertEqual(tracking["new_value_text"], json.dumps(newvalue.ids))
|
|
|
|
def test_char_tracking_value(self):
|
|
r = self.model.create(
|
|
{
|
|
"mail_message_id": self.msg.id,
|
|
"field_type": "char",
|
|
"old_value_char": "weakness",
|
|
"new_value_char": "strength",
|
|
"field": self.env["ir.model.fields"]._get("res.partner", "name").id,
|
|
"field_desc": "desc",
|
|
}
|
|
)
|
|
self.assertEqual(r.old_value_formatted, "weakness")
|
|
self.assertEqual(r.new_value_formatted, "strength")
|
|
|
|
def test_many2many_tracking_value(self):
|
|
r = self.model.create(
|
|
{
|
|
"mail_message_id": self.msg.id,
|
|
"field_type": "many2many",
|
|
"old_value_char": "123",
|
|
"new_value_char": "456",
|
|
"field": self.env["ir.model.fields"]._get("res.partner", "name").id,
|
|
"field_desc": "desc",
|
|
}
|
|
)
|
|
self.assertEqual(r.old_value_formatted, "123")
|
|
self.assertEqual(r.new_value_formatted, "456")
|
|
|
|
def test_one2many_tracking_value(self):
|
|
r = self.model.create(
|
|
{
|
|
"mail_message_id": self.msg.id,
|
|
"field_type": "one2many",
|
|
"old_value_char": "123",
|
|
"new_value_char": "456",
|
|
"field": self.env["ir.model.fields"]._get("res.partner", "name").id,
|
|
"field_desc": "desc",
|
|
}
|
|
)
|
|
self.assertEqual(r.old_value_formatted, "123")
|
|
self.assertEqual(r.new_value_formatted, "456")
|
|
|
|
def test_integer_tracking_value(self):
|
|
r = self.model.create(
|
|
{
|
|
"mail_message_id": self.msg.id,
|
|
"field_type": "integer",
|
|
"old_value_integer": 1,
|
|
"new_value_integer": 3,
|
|
"field": self.env["ir.model.fields"]._get("res.partner", "name").id,
|
|
"field_desc": "desc",
|
|
}
|
|
)
|
|
self.assertEqual(r.old_value_formatted, str(1))
|
|
self.assertEqual(r.new_value_formatted, str(3))
|
|
|
|
def test_float_tracking_value(self):
|
|
r = self.model.create(
|
|
{
|
|
"mail_message_id": self.msg.id,
|
|
"field_type": "float",
|
|
"old_value_float": 1.1,
|
|
"new_value_float": 3.14159,
|
|
"field": self.env["ir.model.fields"]._get("res.partner", "name").id,
|
|
"field_desc": "desc",
|
|
}
|
|
)
|
|
self.assertEqual(r.old_value_formatted, str(1.1))
|
|
self.assertEqual(r.new_value_formatted, str(3.14159))
|
|
|
|
def test_monetary_tracking_value(self):
|
|
r = self.model.create(
|
|
{
|
|
"mail_message_id": self.msg.id,
|
|
"field_type": "monetary",
|
|
"old_value_monetary": 3.45,
|
|
"new_value_monetary": 5.45,
|
|
"field": self.env["ir.model.fields"]._get("res.partner", "name").id,
|
|
"field_desc": "desc",
|
|
}
|
|
)
|
|
self.assertEqual(r.old_value_formatted, str(3.45))
|
|
self.assertEqual(r.new_value_formatted, str(5.45))
|
|
|
|
def test_datetime_tracking_value(self):
|
|
r = self.model.create(
|
|
{
|
|
"mail_message_id": self.msg.id,
|
|
"field_type": "datetime",
|
|
"old_value_datetime": "2018-01-01",
|
|
"new_value_datetime": "2018-01-04",
|
|
"field": self.env["ir.model.fields"]._get("res.partner", "name").id,
|
|
"field_desc": "desc",
|
|
}
|
|
)
|
|
self.assertEqual(r.old_value_formatted, "2018-01-01 00:00:00")
|
|
self.assertEqual(r.new_value_formatted, "2018-01-04 00:00:00")
|
|
|
|
def test_text_tracking_value(self):
|
|
r = self.model.create(
|
|
{
|
|
"mail_message_id": self.msg.id,
|
|
"field_type": "text",
|
|
"old_value_text": "previous",
|
|
"new_value_text": "next",
|
|
"field": self.env["ir.model.fields"]._get("res.partner", "name").id,
|
|
"field_desc": "desc",
|
|
}
|
|
)
|
|
self.assertEqual(r.old_value_formatted, "previous")
|
|
self.assertEqual(r.new_value_formatted, "next")
|