Merge branch 'acsone-8.0-onchange-one2many-test': add test for onchange on one2many...
authorRaphael Collet <rco@openerp.com>
Tue, 16 Sep 2014 08:56:43 +0000 (10:56 +0200)
committerRaphael Collet <rco@openerp.com>
Tue, 16 Sep 2014 08:56:43 +0000 (10:56 +0200)
1  2 
openerp/addons/test_new_api/models.py
openerp/addons/test_new_api/tests/test_onchange.py

@@@ -85,6 -85,7 +85,7 @@@ class Discussion(models.Model)
          'test_new_api_discussion_category', 'discussion', 'category')
      participants = fields.Many2many('res.users')
      messages = fields.One2many('test_new_api.message', 'discussion')
 -    message_changes = fields.Integer('Message changes')
++    message_changes = fields.Integer(string='Message changes')
  
      @api.onchange('moderator')
      def _onchange_moderator(self):
@@@ -20,7 -20,7 +20,7 @@@ class TestOnChange(common.TransactionCa
          with self.assertRaises(AttributeError):
              self.Discussion.not_really_a_method()
  
--    def test_new_onchange(self):
++    def test_onchange(self):
          """ test the effect of onchange() """
          discussion = self.env.ref('test_new_api.discussion_0')
          BODY = "What a beautiful day!"
@@@ -55,7 -55,7 +55,7 @@@
          self.assertLessEqual(set(['size']), set(result['value']))
          self.assertEqual(result['value']['size'], len(BODY))
  
--    def test_new_onchange_one2many(self):
++    def test_onchange_one2many(self):
          """ test the effect of onchange() on one2many fields """
          BODY = "What a beautiful day!"
          USER = self.env.user
              }),
          ])
  
--    def test_new_onchange_specific(self):
++    def test_onchange_specific(self):
          """ test the effect of field-specific onchange method """
          discussion = self.env.ref('test_new_api.discussion_0')
          demo = self.env.ref('base.user_demo')
  
          self.assertLessEqual(set(['participants']), set(result['value']))
          self.assertItemsEqual(result['value']['participants'], participants + [(4, demo.id)])
 -    def test_onchange_one2many(self):
++    def test_onchange_one2many_value(self):
++        """ test the value of the one2many field inside the onchange """
+         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)
++            'message_changes': 0,
+         }
+         result = discussion.onchange(values, 'messages', field_onchange)
+         self.assertEqual(result['value'].get('message_changes', 0), len(discussion.messages))