summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_inspect.py
diff options
context:
space:
mode:
authorYury Selivanov <yselivanov@sprymix.com>2014-03-27 16:09:24 (GMT)
committerYury Selivanov <yselivanov@sprymix.com>2014-03-27 16:09:24 (GMT)
commitda39645ad300a097decc4e35bb3ea6dbf0633886 (patch)
tree07ccb20f627b8c26a84851df3ebe035d9f0a401c /Lib/test/test_inspect.py
parenta5d63dd7b880dd38282ad52f52e3579f965b20e0 (diff)
downloadcpython-da39645ad300a097decc4e35bb3ea6dbf0633886.zip
cpython-da39645ad300a097decc4e35bb3ea6dbf0633886.tar.gz
cpython-da39645ad300a097decc4e35bb3ea6dbf0633886.tar.bz2
inspect.Signature: Add 'Signature.from_callable' classmethod. Closes #17373
Diffstat (limited to 'Lib/test/test_inspect.py')
-rw-r--r--Lib/test/test_inspect.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
index 373bd4c..5bdd327 100644
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -2517,6 +2517,19 @@ class TestSignatureObject(unittest.TestCase):
self.assertEqual(self.signature(Spam.foo),
self.signature(Ham.foo))
+ def test_signature_from_callable_python_obj(self):
+ class MySignature(inspect.Signature): pass
+ def foo(a, *, b:1): pass
+ foo_sig = MySignature.from_callable(foo)
+ self.assertTrue(isinstance(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))
+
class TestParameterObject(unittest.TestCase):
def test_signature_parameter_kinds(self):