swig/Examples/test-suite/python/director_classic_runme.py
William S Fulton 7c2c142a68 new director test
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9213 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-07-12 20:18:08 +00:00

81 lines
1.7 KiB
Python

from director_classic import *
class TargetLangPerson(Person):
def __init__(self):
Person.__init__(self)
def id(self):
identifier = "TargetLangPerson"
return identifier
class TargetLangChild(Child):
def __init__(self):
Child.__init__(self)
def id(self):
identifier = "TargetLangChild"
return identifier
class TargetLangGrandChild(GrandChild):
def __init__(self):
GrandChild.__init__(self)
def id(self):
identifier = "TargetLangGrandChild"
return identifier
def check(person, expected):
debug = 0
# Normal target language polymorphic call
ret = person.id()
if (debug):
print(ret)
if (ret != expected):
raise ("Failed. Received: " + ret + " Expected: " + expected)
# Polymorphic call from C++
caller = Caller()
caller.setCallback(person)
ret = caller.call()
if (debug):
print(ret)
if (ret != expected):
raise ("Failed. Received: " + ret + " Expected: " + expected)
# Polymorphic call of object created in target language and passed to C++ and back again
baseclass = caller.baseClass()
ret = baseclass.id()
if (debug):
print(ret)
if (ret != expected):
raise ("Failed. Received: " + ret + " Expected: " + expected)
caller.resetCallback()
if (debug):
print("----------------------------------------")
person = Person();
check(person, "Person");
del person
person = Child();
check(person, "Child");
del person
person = GrandChild();
check(person, "GrandChild");
del person
person = TargetLangPerson();
check(person, "TargetLangPerson");
del person
person = TargetLangChild();
check(person, "TargetLangChild");
del person
person = TargetLangGrandChild();
check(person, "TargetLangGrandChild");
del person