1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
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()
|