[ADD] add new test for onchange on one2many field
This commit is contained in:
parent
e95aeb659c
commit
919869907d
|
@ -85,11 +85,16 @@ class Discussion(models.Model):
|
||||||
'test_new_api_discussion_category', 'discussion', 'category')
|
'test_new_api_discussion_category', 'discussion', 'category')
|
||||||
participants = fields.Many2many('res.users')
|
participants = fields.Many2many('res.users')
|
||||||
messages = fields.One2many('test_new_api.message', 'discussion')
|
messages = fields.One2many('test_new_api.message', 'discussion')
|
||||||
|
message_changes = fields.Integer('Message changes')
|
||||||
|
|
||||||
@api.onchange('moderator')
|
@api.onchange('moderator')
|
||||||
def _onchange_moderator(self):
|
def _onchange_moderator(self):
|
||||||
self.participants |= self.moderator
|
self.participants |= self.moderator
|
||||||
|
|
||||||
|
@api.onchange('messages')
|
||||||
|
def _onchange_messages(self):
|
||||||
|
self.message_changes = len(self.messages)
|
||||||
|
|
||||||
|
|
||||||
class Message(models.Model):
|
class Message(models.Model):
|
||||||
_name = 'test_new_api.message'
|
_name = 'test_new_api.message'
|
||||||
|
|
|
@ -163,3 +163,24 @@ class TestOnChange(common.TransactionCase):
|
||||||
|
|
||||||
self.assertLessEqual(set(['participants']), set(result['value']))
|
self.assertLessEqual(set(['participants']), set(result['value']))
|
||||||
self.assertItemsEqual(result['value']['participants'], participants + [(4, demo.id)])
|
self.assertItemsEqual(result['value']['participants'], participants + [(4, demo.id)])
|
||||||
|
|
||||||
|
def test_onchange_one2many(self):
|
||||||
|
discussion = self.env.ref('test_new_api.discussion_0')
|
||||||
|
demo = self.env.ref('base.user_demo')
|
||||||
|
|
||||||
|
field_onchange = self.Discussion._onchange_spec()
|
||||||
|
self.assertEqual(field_onchange.get('messages'), '1')
|
||||||
|
|
||||||
|
self.assertEqual(len(discussion.messages), 3)
|
||||||
|
messages = [(4, msg.id) for msg in discussion.messages]
|
||||||
|
messages[0] = (1, messages[0][1], {'body': 'test onchange'})
|
||||||
|
values = {
|
||||||
|
'name': discussion.name,
|
||||||
|
'moderator': demo.id,
|
||||||
|
'categories': [(4, cat.id) for cat in discussion.categories],
|
||||||
|
'messages': messages,
|
||||||
|
'participants': [(4, usr.id) for usr in discussion.participants],
|
||||||
|
'message_changes': len(discussion.messages)
|
||||||
|
}
|
||||||
|
result = discussion.onchange(values, 'messages', field_onchange)
|
||||||
|
self.assertEqual(result['value'].get('message_changes', 0), len(discussion.messages))
|
||||||
|
|
Loading…
Reference in New Issue