def test_load_func_passed_is_load_only(self):
        def func(value, context):
            pass

        field = fields.Function(load_func=func)
        self.assertEqual(field.dump_only, False)
        self.assertEqual(field.load_only, True)
    def test_func_with_wrong_parameters(self):
        def func(value):
            pass

        field = fields.Function(dump_func=func, load_func=func)
        self._dump_raises(
            field, 'value',
            'func() takes 1 positional argument but 2 were given')
        self._load_raises(
            field, 'value',
            'func() takes 1 positional argument but 2 were given')
    def test_load_func(self):
        def load_func(value, context):
            return value

        field = fields.Function(load_func=load_func)
        self._load_equal(field, 'value', 'value')
 def test_without_func(self):
     field = fields.Function()
     self._load_equal(field, 'value', missing)
     self._dump_equal(field, 'value', missing)
    def test_dump_func(self):
        def dump_func(value, context):
            return value

        field = fields.Function(dump_func=dump_func)
        self._dump_equal(field, 'value', 'value')