if (obj.__init__ is object.__init__ and
obj.__new__ is object.__new__):
# Return a signature of 'object' builtin.
- return signature(object)
+ return sigcls.from_callable(object)
else:
raise ValueError(
'no signature found for builtin type {!r}'.format(obj))
class MySignature(inspect.Signature): pass
def foo(a, *, b:1): pass
foo_sig = MySignature.from_callable(foo)
- self.assertTrue(isinstance(foo_sig, MySignature))
+ self.assertIsInstance(foo_sig, MySignature)
+
+ def test_signature_from_callable_class(self):
+ # A regression test for a class inheriting its signature from `object`.
+ class MySignature(inspect.Signature): pass
+ class foo: pass
+ foo_sig = MySignature.from_callable(foo)
+ self.assertIsInstance(foo_sig, MySignature)
@unittest.skipIf(MISSING_C_DOCSTRINGS,
"Signature information for builtins requires docstrings")
def test_signature_from_callable_builtin_obj(self):
class MySignature(inspect.Signature): pass
sig = MySignature.from_callable(_pickle.Pickler)
- self.assertTrue(isinstance(sig, MySignature))
+ self.assertIsInstance(sig, MySignature)
def test_signature_definition_order_preserved_on_kwonly(self):
for fn in signatures_with_lexicographic_keyword_only_parameters():