def test_bound_method_callback(): # Bound Python method: class MyClass: def double(self, val): return 2 * val z = MyClass() assert m.test_callback3(z.double) == "func(43) = 86" z = m.CppBoundMethodTest() assert m.test_callback3(z.triple) == "func(43) = 129"
def test_callbacks(): from functools import partial def func1(): return "func1" def func2(a, b, c, d): return "func2", a, b, c, d def func3(a): return "func3({})".format(a) assert m.test_callback1(func1) == "func1" assert m.test_callback2(func2) == ("func2", "Hello", "x", True, 5) assert m.test_callback1(partial(func2, 1, 2, 3, 4)) == ( "func2", 1, 2, 3, 4, ) assert m.test_callback1(partial(func3, "partial")) == "func3(partial)" assert m.test_callback3(lambda i: i + 1) == "func(43) = 44" f = m.test_callback4() assert f(43) == 44 f = m.test_callback5() assert f(number=43) == 44