def testReferences(self): #{{{ '''Live reference (functions always alive)''' t1 = lambda: None class t2(object): #{{{ def me(self): #{{{ pass # End def #}}} # End class #}}} t3 = t2() cw = None for f in (t1, t2.me, t3.me): cw = CallableWrapper(f, weak=True) self.assertEqual(cw._isdead(), False) del t3, f self.assertTrue(cw._isdead())
def testDeadWrapper(self): # {{{ """Calling a dead wrapper generates a warning""" A = DummyClass a = A() w = CallableWrapper(a.DummyMethod) del a self.assert_(w._isdead())
def testRemoveInstance(self): #{{{ '''Deleting an instance makes for a dead CallableWrapper''' A = DummyClass a = A() w = CallableWrapper(a.DummyMethod) del a self.assert_(w._isdead())
def testRemoveNonMethodCallable(self): #{{{ '''Deleting a non-method callable makes for a dead CallableWrapper''' def DummyFunction(): #{{{ return 'DummyFunction' # End def #}}} w = CallableWrapper(DummyFunction) del DummyFunction self.assert_(w._isdead())