blob: 94eab69a6cc671ce75a1689bf6be153a0ecbb2ea [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")