mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 13:52:05 +02:00
98 lines
3.5 KiB
Python
98 lines
3.5 KiB
Python
from odoo.exceptions import UserError
|
|
from odoo.tests import TransactionCase
|
|
|
|
|
|
class TestConfirmationWizard(TransactionCase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.partner = self.env["res.partner"].create(
|
|
{
|
|
"name": "Test Partner",
|
|
}
|
|
)
|
|
|
|
def test_confirm_message(self):
|
|
"""Test flow when create confirmation wizard with method"""
|
|
confirmation_wizard_obj = self.env["confirmation.wizard"]
|
|
|
|
# Default behavior
|
|
action = confirmation_wizard_obj.confirm_message(
|
|
"Message Test",
|
|
self.partner,
|
|
)
|
|
excepted_action = self.env["ir.actions.actions"]._for_xml_id(
|
|
"confirmation_wizard.confirmation_wizard_action"
|
|
)
|
|
excepted_action["context"] = self.env.context
|
|
|
|
# Wizard with title and context
|
|
excepted_title = "Confirm Wizard"
|
|
action = confirmation_wizard_obj.with_context(hide_cancel=True).confirm_message(
|
|
"Message Test", self.partner, title=excepted_title
|
|
)
|
|
self.assertEqual(action["name"], excepted_title, "Title must be the same")
|
|
self.assertTrue(
|
|
action["context"]["hide_cancel"], "Invisible Cancel must be True"
|
|
)
|
|
|
|
def test_confirm_no_action_message(self):
|
|
"""Test flow when create confirmation wizard with window close"""
|
|
confirmation_wizard_obj = self.env["confirmation.wizard"]
|
|
|
|
excepted_title = "Confirm Wizard"
|
|
action = confirmation_wizard_obj.confirm_message(
|
|
"Message Test", self.partner, title=excepted_title
|
|
)
|
|
self.assertEqual(action["name"], excepted_title, "Title must be the same")
|
|
|
|
def test_action_confirm_method(self):
|
|
"""Test flow when confirm wizard with return type method"""
|
|
vals = {
|
|
"message": "Message Test",
|
|
"res_ids": "",
|
|
"return_type": "method",
|
|
"res_model": "res.partner",
|
|
"callback_method": "",
|
|
"callback_params": {},
|
|
}
|
|
wizard = self.env["confirmation.wizard"].create(vals)
|
|
with self.assertRaises(UserError) as e:
|
|
wizard.action_confirm()
|
|
self.assertEqual(
|
|
str(e.exception), "Records (IDS: '') not found in model 'res.partner'."
|
|
)
|
|
|
|
vals1 = {**vals, "res_ids": ",".join(map(str, self.partner.ids))}
|
|
wizard = self.env["confirmation.wizard"].create(vals1)
|
|
with self.assertRaises(UserError) as e:
|
|
wizard.action_confirm()
|
|
self.assertEqual(
|
|
str(e.exception), "Method '' is not found on model 'res.partner'."
|
|
)
|
|
|
|
vals2 = {
|
|
**vals1,
|
|
"callback_method": "write",
|
|
"callback_params": {"vals": {"name": "New Partner #1"}},
|
|
}
|
|
wizard = self.env["confirmation.wizard"].create(vals2)
|
|
result = wizard.action_confirm()
|
|
self.assertTrue(result, "Result must be True")
|
|
self.assertEqual(
|
|
self.partner.name,
|
|
"New Partner #1",
|
|
"Partner name must be equal to 'New Partner #1'",
|
|
)
|
|
|
|
def test_action_confirm_window_close(self):
|
|
"""Test flow when confirm wizard with return type window close"""
|
|
wizard = self.env["confirmation.wizard"].create(
|
|
{
|
|
"message": "Message Confirmation Text",
|
|
"return_type": "window_close",
|
|
}
|
|
)
|
|
result = wizard.action_confirm()
|
|
self.assertDictEqual(
|
|
result, {"type": "ir.actions.act_window_close"}, "Dicts must be the same"
|
|
)
|