# Copyright 2023 ACSONE SA/NV # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo.exceptions import UserError from odoo.tests.common import Form, TransactionCase class TestWebFieldTooltip(TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() cls.Tooltip = cls.env["ir.model.fields.tooltip"] cls.partner_model_name = "res.partner" cls.partner_model = cls.env["ir.model"].search( [("model", "=", cls.partner_model_name)] ) cls.email_partner_field = cls.env["ir.model.fields"].search( [("model", "=", cls.partner_model_name), ("name", "=", "email")] ) cls.email_tooltip = cls.Tooltip.create( { "model_id": cls.partner_model.id, "field_id": cls.email_partner_field.id, "tooltip_text": "this explains a lot", } ) def test_duplicate_constrains(self): with self.assertRaises(UserError) as e: self.email_tooltip = self.Tooltip.create( { "model_id": self.partner_model.id, "field_id": self.email_partner_field.id, "tooltip_text": "this explains a lot", } ) self.assertIn(e.exception.args[0], "A tooltip already exists for this field") def test_tooltip_name(self): self.assertEqual( self.email_tooltip.name, "Tooltip for {} on {}".format("email", "Contact") ) def test_tooltip_model_id(self): res_partner_form = Form( self.Tooltip.with_context(default_model=self.partner_model_name) ) self.assertEqual(res_partner_form.model_id, self.partner_model)