def testNonExistantInstance(self): #{{{
     '''No longer existing instance returns None '''
     A = DummyClass
     a = A()
     w = CallableWrapper(a.DummyMethod)
     del a
     self.assert_(w._getcallable() is None)
 def testNormalFunction(self): #{{{
     '''Return back normal functions and unbound methods'''
     _ = (lambda: None)
     ub_ = method(_, None, None)
     for f in (_, ub_):
         cw = CallableWrapper(f)
         ret = cw._getcallable()
         self.assertEqual(ret, f)
 def testDeadReferences(self): #{{{
     '''If the reference dies, return None'''
     class _(object): #{{{
         def me(self): #{{{
             pass
         # End def #}}}
     # End class #}}}
     t = _()
     cw = CallableWrapper(t.me, weak=True)
     del t
     self.assertTrue(cw._getcallable() is None)
 def testMethod(self): #{{{
     '''Bound and instance methods'''
     class _(object): #{{{
         def me(self): #{{{
             pass
         # End def #}}}
     # End class #}}}
     t1, i_ = _.me, _()
     t2 = i_.me
     for f in (t1, t2):
         cw = CallableWrapper(f)
         ret = cw._getcallable()
         self.assertNotEqual(ret, f)
         self.assertEqual(ret, f.im_func)
 def testNonMethodCallable(self): #{{{
     '''Non-method callable returns actual callable'''
     w = CallableWrapper(DummyFunction)
     self.assert_(w._getcallable() is DummyFunction)
 def testClassInstance(self): #{{{
     '''Class method callable's im_func returned'''
     A = DummyClass
     w = CallableWrapper(A.DummyMethod)
     self.assert_(w._getcallable() is A.DummyMethod.im_func)
 def testMethodInstance(self): #{{{
     '''Instance method callable's im_func returned'''
     A = DummyClass
     a = A()
     w = CallableWrapper(a.DummyMethod)
     self.assert_(w._getcallable() is a.DummyMethod.im_func)