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"