swig/Examples/test-suite/python/default_args_runme.py
William S Fulton 38ba81811e Fix Python default argument handing broken since swig-3.0.3
Default values are no longer generated as Python code by default.
They must be explicitly turned on using the "python:defaultargs" feature.

Closes #294
Closes #296

The problems in these two issues when "python:defaultargs" is turned
on still need to be fixed and should be addressed in separate patches.
The important thing is the default code generation is now fixed.
2015-01-09 00:34:17 +00:00

91 lines
2.1 KiB
Python

# Note that this test is also used by python_default_args_runme.py hence the use of __main__ and the run function
def run(module_name):
default_args = __import__(module_name)
print "running...."
ec = default_args.EnumClass()
if not ec.blah():
raise RuntimeError,"EnumClass::blah() default arguments don't work"
de = default_args.DerivedEnumClass()
de.accelerate()
de.accelerate(default_args.EnumClass.SLOW)
if default_args.Statics_staticMethod() != 60:
raise RuntimeError
if default_args.cfunc1(1) != 2:
raise RuntimeError
if default_args.cfunc2(1) != 3:
raise RuntimeError
if default_args.cfunc3(1) != 4:
raise RuntimeError
f = default_args.Foo()
f.newname()
f.newname(1)
try:
f = default_args.Foo(1)
error = 1
except:
error = 0
if error: raise RuntimeError,"Foo::Foo ignore is not working"
try:
f = default_args.Foo(1,2)
error = 1
except:
error = 0
if error: raise RuntimeError,"Foo::Foo ignore is not working"
try:
f = default_args.Foo(1,2,3)
error = 1
except:
error = 0
if error: raise RuntimeError,"Foo::Foo ignore is not working"
try:
m = f.meth(1)
error = 1
except:
error = 0
if error: raise RuntimeError,"Foo::meth ignore is not working"
try:
m = f.meth(1,2)
error = 1
except:
error = 0
if error: raise RuntimeError,"Foo::meth ignore is not working"
try:
m = f.meth(1,2,3)
error = 1
except:
error = 0
if error: raise RuntimeError,"Foo::meth ignore is not working"
if default_args.Klass.inc(100, default_args.Klass(22)).val != 122:
raise RuntimeError, "Klass::inc failed"
if default_args.Klass.inc(100).val != 99:
raise RuntimeError, "Klass::inc failed"
if default_args.Klass.inc().val != 0:
raise RuntimeError, "Klass::inc failed"
default_args.trickyvalue1(10); default_args.trickyvalue1(10, 10)
default_args.trickyvalue2(10); default_args.trickyvalue2(10, 10)
default_args.trickyvalue3(10); default_args.trickyvalue3(10, 10)
default_args.seek(); default_args.seek(10)
if __name__=="__main__":
run('default_args')