swig/Examples/test-suite/python/callback_runme.py
William S Fulton 3aa302c08f %callback and Python class access for C++ static member functions fixes
Fix access to C++ static member functions using Python class
staticmethod syntax, such as Klass.memberfunction instead of
Klass_memberfunction, when using -fastproxy and -builtin in
combination with %callback.

The docstring containing the callback pointers were not being patched
during module initialisation.
2022-01-14 23:00:59 +00:00

38 lines
778 B
Python

import _callback
from callback import *
# callbacks are implemented by modifying docstrings, useful for debugging:
# print("A_bar doc: {}".format(A_bar.__doc__))
# print("A.bar doc: {}".format(A.bar.__doc__))
if foo(2) != 2:
raise RuntimeError
if A.bar(2) != 4:
raise RuntimeError
if foobar(3, _callback.foo) != foo(3):
raise RuntimeError
if foobar(3, foo) != foo(3):
raise RuntimeError
if foobar(3, A_bar) != A_bar(3):
raise RuntimeError
if foobar(3, A.bar) != A.bar(3):
raise RuntimeError
if foobar(3, foof) != foof(3):
raise RuntimeError
if foobar_i(3, foo_i) != foo_i(3):
raise RuntimeError
if foobar_d(3.5, foo_d) != foo_d(3.5):
raise RuntimeError
a = A()
if foobarm(3, a, A.foom_cb_ptr) != a.foom(3):
raise RuntimeError