def testNullary(self): class Unary(object): def __call__(self): pass cb = Unary() def f(): pass assert 0 == functionargs(cb) assert 0 == functionargs(f)
def testUnaryFunction(self): class Unary(object): def __call__(self, a): pass cb = Unary() def f(a): pass assert 1 == functionargs(cb) assert 1 == functionargs(f)
def testBinaryFunction(self): class Binary(object): def __call__(self, a, b): pass cb = Binary() def f(a, b): pass assert 2 == functionargs(cb) assert 2 == functionargs(f)
def testManyArguments(self): class Many(object): def __call__(self, a, b, c, d, e, f, g): pass cb = Many() def f(a, b, c, d, e, f, g): pass assert 7 == functionargs(cb) assert 7 == functionargs(f)
def testVarArgs(self): class VarArg(object): def __call__(self, *args): pass cb = VarArg() def f(*args): pass assert -1 == functionargs(cb) assert -1 == functionargs(f)
def testFunctoolsPartial(self): import functools def f(a, b, c): return 2 * a + 3 * b + c p = functools.partial(f, 1, 2) assert 1 == functionargs(p)
def testNotFunc(self): """Test for bad functions""" with self.assertRaises(TypeError): functionargs(None) with self.assertRaises(TypeError): functionargs(1.0) with self.assertRaises(TypeError): functionargs("a") with self.assertRaises(TypeError): functionargs(object()) with self.assertRaises(TypeError): functionargs(sum)