from director_finalizer import * class MyFoo(Foo): def __del__(self): self.orStatus(2) try: Foo.__del__(self) except: pass resetStatus() a = MyFoo() del a if getStatus() != 3: raise RuntimeError resetStatus() a = MyFoo() launder(a) if getStatus() != 0: raise RuntimeError del a if getStatus() != 3: raise RuntimeError resetStatus() a = MyFoo().__disown__() deleteFoo(a) if getStatus() != 3: raise RuntimeError resetStatus() a = MyFoo().__disown__() deleteFoo(launder(a)) if getStatus() != 3: raise RuntimeError resetStatus()