| import director_detect | |
| class MyBar(director_detect.Bar): | |
| def __init__(self, val=2): | |
| director_detect.Bar.__init__(self) | |
| self.val = val | |
| def get_value(self): | |
| self.val = self.val + 1 | |
| return self.val | |
| def get_class(self): | |
| self.val = self.val + 1 | |
| return director_detect.A() | |
| def just_do_it(self): | |
| self.val = self.val + 1 | |
| def clone(self): | |
| return MyBar(self.val) | |
| pass | |
| b = MyBar() | |
| f = b.baseclass() | |
| v = f.get_value() | |
| a = f.get_class() | |
| f.just_do_it() | |
| c = b.clone() | |
| vc = c.get_value() | |
| if (v != 3) or (b.val != 5) or (vc != 6): | |
| raise RuntimeError("Bad virtual detection") |