def testClassMethodCallable(self): #{{{ '''Initializing with a class method callable sets weakref on class and stores method's internal function''' A = DummyClass w = CallableWrapper(A.DummyMethod) self.assert_(w._object is not None) self.assert_(isinstance(w._object, cref)) self.assert_(w._object() is A) self.assert_(w._function is A.DummyMethod.im_func)
def testClassMethod(self): #{{{ '''Class method gets class soft reference and function hard reference''' class _(object): #{{{ def me(self): #{{{ pass # End def #}}} # End class #}}} cw = CallableWrapper(_.me) self.assertTrue(cw._object) self.assertTrue(isinstance(cw._object, cref)) self.assertEqual(cw._object(), _) self.assertEqual(cw._function, _.me.im_func) self.assertEqual(cw._methodtype, METHODTYPE_CLASS)
def testInstanceMethod(self): #{{{ '''Instance method gets instance soft reference and function hard reference''' class _(object): #{{{ def me(self): #{{{ pass # End def #}}} # End class #}}} t = _() cw = CallableWrapper(t.me) self.assertTrue(cw._object) self.assertTrue(isinstance(cw._object, cref)) self.assertEqual(cw._object(), t) self.assertEqual(cw._function, _.me.im_func) self.assertEqual(cw._function, t.me.im_func) self.assertEqual(cw._methodtype, METHODTYPE_INSTANCE)