diff options
| author | Christophe Simonis <chs@odoo.com> | 2018-03-09 16:25:58 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2018-03-09 16:25:58 +0100 |
| commit | 0f57bdba72b592ca097d4cd3da99a75883d8c623 (patch) | |
| tree | 94eef0c9aaf885c7f717bab5e468ca72b59a219d /odoo/addons/test_new_api | |
| parent | 35f0797002e44ce5673e9fab63710d2764329694 (diff) | |
| parent | 42659dc70c2b9b124e7e4fdc0449f660c3de5c76 (diff) | |
[MERGE] forward port branch saas-11.2 up to 42659dc70c2
Diffstat (limited to 'odoo/addons/test_new_api')
| -rw-r--r-- | odoo/addons/test_new_api/models.py | 4 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/tests/test_new_fields.py | 36 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/tests/test_onchange.py | 29 |
3 files changed, 51 insertions, 18 deletions
diff --git a/odoo/addons/test_new_api/models.py b/odoo/addons/test_new_api/models.py index 026159bbf00..eb1c6532814 100644 --- a/odoo/addons/test_new_api/models.py +++ b/odoo/addons/test_new_api/models.py @@ -324,6 +324,9 @@ class Related(models.Model): related_name = fields.Char(related='name', string='A related on Name') related_related_name = fields.Char(related='related_name', string='A related on a related on Name') + message = fields.Many2one('test_new_api.message') + message_name = fields.Text(related="message.body", related_sudo=False, string='Message Body') + message_currency = fields.Many2one(related="message.author", string='Message Author') class ComputeProtected(models.Model): _name = 'test_new_api.compute.protected' @@ -336,7 +339,6 @@ class ComputeProtected(models.Model): for record in self: record.bar = record.foo - class ComputeInverse(models.Model): _name = 'test_new_api.compute.inverse' 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 c1bf14fd05c..bd33123af89 100644 --- a/odoo/addons/test_new_api/tests/test_new_fields.py +++ b/odoo/addons/test_new_api/tests/test_new_fields.py @@ -733,16 +733,17 @@ class TestFields(common.TransactionCase): env = self.env(user=self.env.ref('base.user_demo')) self.assertEqual(env.user.login, "demo") - # create a new message as demo user - discussion = self.env.ref('test_new_api.discussion_0') - message = env['test_new_api.message'].new({'discussion': discussion}) - self.assertEqual(message.discussion, discussion) - - # read the related field discussion_name - self.assertEqual(message.discussion.env, env) - self.assertEqual(message.discussion_name, discussion.name) - with self.assertRaises(AccessError): - message.discussion.name + with self.env.do_in_onchange(): + # create a new message as demo user + discussion = self.env.ref('test_new_api.discussion_0') + message = env['test_new_api.message'].new({'discussion': discussion}) + self.assertEqual(message.discussion, discussion) + + # read the related field discussion_name + self.assertEqual(message.discussion.env, env) + self.assertEqual(message.discussion_name, discussion.name) + with self.assertRaises(AccessError): + message.discussion.name @mute_logger('odoo.addons.base.models.ir_model') def test_42_new_related(self): @@ -755,14 +756,15 @@ class TestFields(common.TransactionCase): env = self.env(user=self.env.ref('base.user_demo')) self.assertEqual(env.user.login, "demo") - # create a new discussion and a new message as demo user - discussion = env['test_new_api.discussion'].new({'name': 'Stuff'}) - message = env['test_new_api.message'].new({'discussion': discussion}) - self.assertEqual(message.discussion, discussion) + with self.env.do_in_onchange(): + # create a new discussion and a new message as demo user + discussion = env['test_new_api.discussion'].new({'name': 'Stuff'}) + message = env['test_new_api.message'].new({'discussion': discussion}) + self.assertEqual(message.discussion, discussion) - # read the related field discussion_name - self.assertNotEqual(message.sudo().env, message.env) - self.assertEqual(message.discussion_name, discussion.name) + # read the related field discussion_name + self.assertNotEqual(message.sudo().env, message.env) + self.assertEqual(message.discussion_name, discussion.name) def test_50_defaults(self): """ test default values. """ diff --git a/odoo/addons/test_new_api/tests/test_onchange.py b/odoo/addons/test_new_api/tests/test_onchange.py index a87006c76cb..7caf433a467 100644 --- a/odoo/addons/test_new_api/tests/test_onchange.py +++ b/odoo/addons/test_new_api/tests/test_onchange.py @@ -425,3 +425,32 @@ class TestOnChange(common.TransactionCase): 'size': email.size, })] ) + + def test_onchange_related(self): + value = { + 'message': 1, + 'message_name': False, + 'message_currency': 2, + } + field_onchange = { + 'message': '1', + 'message_name': None, + 'message_currency': None, + } + + onchange_result = { + 'message_name': 'Hey dude!', + 'message_currency': (1, 'Administrator') + } + + self.env.cache.invalidate() + Message = self.env['test_new_api.related'] + result = Message.onchange(value, ['message', 'message_name', 'message_currency'], field_onchange) + + self.assertEqual(result['value'], onchange_result) + + self.env.cache.invalidate() + Message = self.env(user=self.env.ref('base.user_demo').id)['test_new_api.related'] + result = Message.onchange(value, ['message', 'message_name', 'message_currency'], field_onchange) + + self.assertEqual(result['value'], onchange_result) |
