Add Python testcase for testing flatstaticmethod syntax
For testing legacy flattened static method access for when issue #2137 is applied.
This commit is contained in:
parent
3aa302c08f
commit
2272d00c1a
4 changed files with 123 additions and 4 deletions
85
Examples/test-suite/python/python_flatstaticmethod_runme.py
Normal file
85
Examples/test-suite/python/python_flatstaticmethod_runme.py
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue