From bc1c4e80190de74862469017e4d8bd8123f95dd5 Mon Sep 17 00:00:00 2001 From: Xavier-Do Date: Mon, 19 Sep 2022 10:56:29 +0000 Subject: [PATCH] [FIX] test_new_api: use a proper patch The tour test_01_admin_widget_x2many was failing because of a missing discussion. This discussion was in fact coming from a patch during at install tests This wasn't detected on runbot during merge since at_install and post_install are executed in different builds. This was detected during the nightly "all no auto tag" build. Simply use a proper patch to avoid keeping the default value at the end of the test. closes odoo/odoo#100491 Signed-off-by: Christophe Monniez (moc) --- .../test_new_api/tests/test_properties.py | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/odoo/addons/test_new_api/tests/test_properties.py b/odoo/addons/test_new_api/tests/test_properties.py index d23689554c6..f62ed1fc0a9 100644 --- a/odoo/addons/test_new_api/tests/test_properties.py +++ b/odoo/addons/test_new_api/tests/test_properties.py @@ -327,33 +327,36 @@ class PropertiesCase(TransactionCase): msg='Writing None should not reset to the default value') # test the case where the definition record come from a default as well - self.env['test_new_api.message']._fields['discussion'].default = lambda __: self.discussion_2.id - message = self.env['test_new_api.message'].create({ - 'name': 'Test Message', - 'author': self.user.id, - }) - self.assertEqual(message.discussion, self.discussion_2) - self.assertEqual( - message.attributes[0]['value'], - 'draft', - msg='Should have taken the default value') + def default_discussion(_record): + return self.discussion_2.id - # the definition record come from a default value - self.discussion_2.attributes_definition = [{ - 'name': 'test', - 'type': 'char', - 'default': 'default char', - }] - message = self.env['test_new_api.message'] \ - .with_context(default_discussion=self.discussion_2) \ - .create({'name': 'Test Message', 'author': self.user.id}) - self.assertEqual(message.discussion, self.discussion_2) - self.assertEqual(message.attributes, [{ - 'name': 'test', - 'type': 'char', - 'default': 'default char', - 'value': 'default char', - }]) + with patch.object(self.env['test_new_api.message']._fields['discussion'], 'default', default_discussion): + message = self.env['test_new_api.message'].create({ + 'name': 'Test Message', + 'author': self.user.id, + }) + self.assertEqual(message.discussion, self.discussion_2) + self.assertEqual( + message.attributes[0]['value'], + 'draft', + msg='Should have taken the default value') + + # the definition record come from a default value + self.discussion_2.attributes_definition = [{ + 'name': 'test', + 'type': 'char', + 'default': 'default char', + }] + message = self.env['test_new_api.message'] \ + .with_context(default_discussion=self.discussion_2) \ + .create({'name': 'Test Message', 'author': self.user.id}) + self.assertEqual(message.discussion, self.discussion_2) + self.assertEqual(message.attributes, [{ + 'name': 'test', + 'type': 'char', + 'default': 'default char', + 'value': 'default char', + }]) # test a default many2one self.discussion_1.attributes_definition = [