# 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 """
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)
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),
}
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),
}
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!"
# }
# 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),
}
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),
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):
'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))