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();" b = Bar() f = b.create() fb = FooBar() fb2 = FooBar2() 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,"Boo::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"