[IMP] test_new_api, test_inherit: improve code of tests
authorRaphael Collet <rco@openerp.com>
Thu, 16 Oct 2014 10:32:23 +0000 (12:32 +0200)
committerRaphael Collet <rco@openerp.com>
Thu, 16 Oct 2014 10:32:23 +0000 (12:32 +0200)
openerp/addons/test_inherit/tests/test_inherit.py
openerp/addons/test_new_api/tests/test_onchange.py

index 2b383ce..e9be815 100644 (file)
@@ -10,10 +10,10 @@ class test_inherits(common.TransactionCase):
         # to verify the purpose of the inheritance computing of the class
         # in the openerp.osv.orm._build_model.
         mother = self.env['test.inherit.mother']
-        daugther = self.env['test.inherit.daughter']
+        daughter = self.env['test.inherit.daughter']
 
         self.assertIn('field_in_mother', mother._fields)
-        self.assertIn('field_in_mother', daugther._fields)
+        self.assertIn('field_in_mother', daughter._fields)
 
     def test_field_extension(self):
         """ check the extension of a field in an inherited model """
@@ -27,10 +27,10 @@ class test_inherits(common.TransactionCase):
         self.assertEqual(mother.default_get(['name']), {'name': "Bar"})
         self.assertEqual(mother._defaults.get('name'), "Bar")
 
-        # the field daugther.template_id should inherit
+        # the field daughter.template_id should inherit
         # model_name='test.inherit.mother', string='Template', required=True
-        daugther = self.env['test.inherit.daughter']
-        field = daugther._fields['template_id']
+        daughter = self.env['test.inherit.daughter']
+        field = daughter._fields['template_id']
         self.assertEqual(field.comodel_name, 'test.inherit.mother')
         self.assertEqual(field.string, "Template")
         self.assertTrue(field.required)
index 6ebc45a..da28bdf 100644 (file)
@@ -31,6 +31,7 @@ class TestOnChange(common.TransactionCase):
         self.assertEqual(field_onchange.get('body'), '1')
         self.assertEqual(field_onchange.get('discussion'), '1')
 
+        # changing 'discussion' should recompute 'name'
         values = {
             'discussion': discussion.id,
             'name': "[%s] %s" % ('', USER.name),
@@ -40,9 +41,10 @@ class TestOnChange(common.TransactionCase):
         }
         self.env.invalidate_all()
         result = self.Message.onchange(values, 'discussion', field_onchange)
-        self.assertLessEqual(set(['name']), set(result['value']))
+        self.assertIn('name', result['value'])
         self.assertEqual(result['value']['name'], "[%s] %s" % (discussion.name, USER.name))
 
+        # changing 'body' should recompute 'size'
         values = {
             'discussion': discussion.id,
             'name': "[%s] %s" % (discussion.name, USER.name),
@@ -52,9 +54,22 @@ class TestOnChange(common.TransactionCase):
         }
         self.env.invalidate_all()
         result = self.Message.onchange(values, 'body', field_onchange)
-        self.assertLessEqual(set(['size']), set(result['value']))
+        self.assertIn('size', result['value'])
         self.assertEqual(result['value']['size'], len(BODY))
 
+        # changing 'body' should not recompute 'name', even if 'discussion' and
+        # 'name' are not consistent with each other
+        values = {
+            'discussion': discussion.id,
+            'name': False,
+            'body': BODY,
+            'author': USER.id,
+            'size': 0,
+        }
+        self.env.invalidate_all()
+        result = self.Message.onchange(values, 'body', field_onchange)
+        self.assertNotIn('name', result['value'])
+
     def test_onchange_one2many(self):
         """ test the effect of onchange() on one2many fields """
         BODY = "What a beautiful day!"
@@ -87,7 +102,7 @@ class TestOnChange(common.TransactionCase):
         # }
         # self.env.invalidate_all()
         # result = self.Discussion.onchange(values, 'messages', field_onchange)
-        # self.assertLessEqual(set(['messages']), set(result['value']))
+        # self.assertIn('messages', result['value'])
         # self.assertItemsEqual(result['value']['messages'], [
         #     (0, 0, {
         #         'name': "[%s] %s" % ("Foo", USER.name),
@@ -121,7 +136,7 @@ class TestOnChange(common.TransactionCase):
         }
         self.env.invalidate_all()
         result = self.Discussion.onchange(values, 'name', field_onchange)
-        self.assertLessEqual(set(['messages']), set(result['value']))
+        self.assertIn('messages', result['value'])
         self.assertItemsEqual(result['value']['messages'], [
             (0, 0, {
                 'name': "[%s] %s" % ("Foo", USER.name),
@@ -161,7 +176,7 @@ class TestOnChange(common.TransactionCase):
         self.env.invalidate_all()
         result = discussion.onchange(values, 'moderator', field_onchange)
 
-        self.assertLessEqual(set(['participants']), set(result['value']))
+        self.assertIn('participants', result['value'])
         self.assertItemsEqual(result['value']['participants'], participants + [(4, demo.id)])
 
     def test_onchange_one2many_value(self):
@@ -184,4 +199,5 @@ class TestOnChange(common.TransactionCase):
             'message_changes': 0,
         }
         result = discussion.onchange(values, 'messages', field_onchange)
-        self.assertEqual(result['value'].get('message_changes', 0), len(discussion.messages))
+        self.assertIn('message_changes', result['value'])
+        self.assertEqual(result['value']['message_changes'], len(discussion.messages))