diff options
| author | Raphael Collet <rco@odoo.com> | 2019-04-11 07:19:38 +0000 |
|---|---|---|
| committer | Raphael Collet <rco@odoo.com> | 2019-05-20 11:00:40 +0000 |
| commit | 6ad43a44a2fd254c8f768003e6d2f12816eb017e (patch) | |
| tree | 79a2d8d76cb3e67f4a735eaf3918f0891e9a400f /odoo/addons/test_new_api/tests/test_new_fields.py | |
| parent | 7f1a1fee49ec37fd4e5fb9506ba9ccdb5528dc0b (diff) | |
[IMP] models: new records return default values
Diffstat (limited to 'odoo/addons/test_new_api/tests/test_new_fields.py')
| -rw-r--r-- | odoo/addons/test_new_api/tests/test_new_fields.py | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py index 578ad04d6f1..de9bc11dcaf 100644 --- a/odoo/addons/test_new_api/tests/test_new_fields.py +++ b/odoo/addons/test_new_api/tests/test_new_fields.py @@ -928,25 +928,38 @@ class TestFields(common.TransactionCase): with self.assertRaises(AccessError): cat1.name - def test_40_new(self): - """ test new records. """ + def test_40_new_defaults(self): + """ Test new records with defaults. """ + user = self.env.user discussion = self.env.ref('test_new_api.discussion_0') - # create a new message - message = self.env['test_new_api.message'].new() - self.assertFalse(message.id) + # create a new message; fields have their default value if not given + new_msg = self.env['test_new_api.message'].new({'body': "XXX"}) + self.assertFalse(new_msg.id) + self.assertEqual(new_msg.body, "XXX") + self.assertEqual(new_msg.author, user) # assign some fields; should have no side effect - message.discussion = discussion - message.body = BODY = "May the Force be with you." - self.assertEqual(message.discussion, discussion) - self.assertEqual(message.body, BODY) - self.assertFalse(message.author) - self.assertNotIn(message, discussion.messages) + new_msg.discussion = discussion + new_msg.body = "YYY" + self.assertEqual(new_msg.discussion, discussion) + self.assertEqual(new_msg.body, "YYY") + self.assertNotIn(new_msg, discussion.messages) # check computed values of fields - self.assertEqual(message.name, "[%s] %s" % (discussion.name, '')) - self.assertEqual(message.size, len(BODY)) + self.assertEqual(new_msg.name, "[%s] %s" % (discussion.name, user.name)) + self.assertEqual(new_msg.size, 3) + + # extra tests for x2many fields with default + cat1 = self.env['test_new_api.category'].create({'name': "Cat1"}) + cat2 = self.env['test_new_api.category'].create({'name': "Cat2"}) + discussion = discussion.with_context(default_categories=[(4, cat1.id)]) + # no value gives the default value + new_disc = discussion.new({'name': "Foo"}) + self.assertEqual(new_disc.categories, cat1) + # value is combined with default value + new_disc = discussion.new({'name': "Foo", 'categories': [(4, cat2.id)]}) + self.assertEqual(new_disc.categories, cat1 + cat2) @mute_logger('odoo.addons.base.models.ir_model') def test_41_new_related(self): |
