blob: c3118a7c03b74d3eee7a47bd4e29ff152d8a15d4 [file] [log] [blame]
from director_protected import *
class FooBar(Bar):
def ping(self):
return "FooBar::ping();"
class FooBar2(Bar):
def ping(self):
return "FooBar2::ping();"
def pang(self):
return "FooBar2::pang();"
class FooBar3(Bar):
def cheer(self):
return "FooBar3::cheer();"
b = Bar()
f = b.create()
fb = FooBar()
fb2 = FooBar2()
fb3 = FooBar3()
try:
s = fb.used()
if s != "Foo::pang();Bar::pong();Foo::pong();FooBar::ping();":
raise RuntimeError
pass
except:
raise RuntimeError, "bad FooBar::used"
try:
s = fb2.used()
if s != "FooBar2::pang();Bar::pong();Foo::pong();FooBar2::ping();":
raise RuntimeError
pass
except:
raise RuntimeError, "bad FooBar2::used"
try:
s = b.pong()
if s != "Bar::pong();Foo::pong();Bar::ping();":
raise RuntimeError
pass
except:
raise RuntimeError, "bad Bar::pong"
try:
s = f.pong()
if s != "Bar::pong();Foo::pong();Bar::ping();":
raise RuntimeError
pass
except:
raise RuntimeError, " bad Foo::pong"
try:
s = fb.pong()
if s != "Bar::pong();Foo::pong();FooBar::ping();":
raise RuntimeError
pass
except:
raise RuntimeError, " bad FooBar::pong"
protected = 1
try:
b.ping()
protected = 0
except:
pass
if not protected:
raise RuntimeError, "Foo::ping is protected"
protected = 1
try:
f.ping()
protected = 0
except:
pass
if not protected:
raise RuntimeError, "Foo::ping is protected"
protected = 1
try:
f.pang()
protected = 0
except:
pass
if not protected:
raise RuntimeError, "FooBar::pang is protected"
protected = 1
try:
b.cheer()
protected = 0
except:
pass
if not protected:
raise RuntimeError, "Bar::cheer is protected"
protected = 1
try:
f.cheer()
protected = 0
except:
pass
if not protected:
raise RuntimeError, "Foo::cheer is protected"
if fb3.cheer() != "FooBar3::cheer();":
raise RuntimeError, "bad fb3::cheer"
if fb2.callping() != "FooBar2::ping();":
raise RuntimeError, "bad fb2.callping"
if fb2.callcheer() != "FooBar2::pang();Bar::pong();Foo::pong();FooBar2::ping();":
raise RuntimeError, "bad fb2.callcheer"
if fb3.callping() != "Bar::ping();":
raise RuntimeError, "bad fb3.callping"
if fb3.callcheer() != "FooBar3::cheer();":
raise RuntimeError, "bad fb3.callcheer"