| 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") |