| from python_flatstaticmethod import * |
| import inspect |
| |
| # This testcase tests C++ class static functions when using legacy "flattened" |
| # staticmethod access, A_bar, as well as the normal staticmethod access, A.bar. |
| |
| |
| def check(got, expected): |
| if got != expected: |
| raise RuntimeError("\ngot :{}\nwant:{}\n".format(got, expected)) |
| |
| if A_bar(2) != 4: |
| raise RuntimeError |
| |
| if A.bar(2) != 4: |
| raise RuntimeError |
| |
| # %callback |
| if foobar(3, A_bar) != A_bar(3): |
| raise RuntimeError |
| |
| if foobar(3, A.bar) != A_bar(3): |
| raise RuntimeError |
| |
| # kwargs |
| if A_pub() != 1: |
| raise RuntimeError |
| |
| if A_pub(b=2) != 3: |
| raise RuntimeError |
| |
| if A_pub(b=10,a=20) != 30: |
| raise RuntimeError |
| |
| if A.pub() != 1: |
| raise RuntimeError |
| |
| if A.pub(b=2) != 3: |
| raise RuntimeError |
| |
| if A.pub(b=10,a=20) != 30: |
| raise RuntimeError |
| |
| check(inspect.getdoc(A_func0static), |
| "A_func0static(e, arg2, hello, f=2) -> int") |
| check(inspect.getdoc(A_func1static), |
| "A_func1static(A e, short arg2, Tuple hello, double f=2) -> int") |
| |
| # overloaded static functions |
| if A_over(3) != "over:int": |
| raise RuntimeError("A::over(int)") |
| |
| if A_over(3.0) != "over:double": |
| raise RuntimeError("A::over(double)") |
| |
| if A_over("hello") != "over:char *": |
| raise RuntimeError("A::over(char *)") |
| |
| if A.over(3) != "over:int": |
| raise RuntimeError("A::over(int)") |
| |
| if A.over(3.0) != "over:double": |
| raise RuntimeError("A::over(double)") |
| |
| if A.over("hello") != "over:char *": |
| raise RuntimeError("A::over(char *)") |
| |
| # default args |
| if A_defargs() != 30: |
| raise RuntimeError |
| |
| if A_defargs(1) != 21: |
| raise RuntimeError |
| |
| if A_defargs(1, 2) != 3: |
| raise RuntimeError |
| |
| if A.defargs() != 30: |
| raise RuntimeError |
| |
| if A.defargs(1) != 21: |
| raise RuntimeError |
| |
| if A.defargs(1, 2) != 3: |
| raise RuntimeError |
| |
| # %extend |
| if A_staticextended(11) != 11: |
| raise RuntimeError |
| |
| if A.staticextended(11) != 11: |
| raise RuntimeError |