def test_load_method(self): class MyContract(Contract): def load_method(self, value, context): return value field = fields.Method(load_method_name='load_method') field.bind('field', MyContract) self._load_equal(field, 'value', 'value')
def test_load_method_passed_is_load_only(self): field = fields.Method(load_method_name='method_name') self.assertEqual(field.dump_only, False) self.assertEqual(field.load_only, True)
def test_method_missing(self): class MyContract(Contract): dump_method = 'attribute' field = fields.Method(load_method_name='not_found') self.assertRaises(ValueError, field.bind, 'field', MyContract)
def test_method_not_callable(self): class MyContract(Contract): dump_method = 'attribute' field = fields.Method(dump_method_name='dump_method') self.assertRaises(ValueError, field.bind, 'field', MyContract)
def test_without_method(self): field = fields.Method() self._dump_equal(field, 'value', missing) self._load_equal(field, 'value', missing)