diff options
author | Larry Hastings <larry@hastings.org> | 2013-11-23 23:37:55 (GMT) |
---|---|---|
committer | Larry Hastings <larry@hastings.org> | 2013-11-23 23:37:55 (GMT) |
commit | 44e2eaab5491881120aab43e2838da8afe7ab70e (patch) | |
tree | 92847876fa89736ab40d027431ff27e4973409c9 /Lib/test | |
parent | 7fa6e1aeea111e7d954b753fb483afc18f21add0 (diff) | |
download | cpython-44e2eaab5491881120aab43e2838da8afe7ab70e.zip cpython-44e2eaab5491881120aab43e2838da8afe7ab70e.tar.gz cpython-44e2eaab5491881120aab43e2838da8afe7ab70e.tar.bz2 |
Issue #19674: inspect.signature() now produces a correct signature
for some builtins.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_capi.py | 29 | ||||
-rw-r--r-- | Lib/test/test_inspect.py | 7 |
2 files changed, 32 insertions, 4 deletions
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index 000079e..6f75b77 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -109,6 +109,35 @@ class CAPITest(unittest.TestCase): self.assertRaises(TypeError, _posixsubprocess.fork_exec, Z(),[b'1'],3,[1, 2],5,6,7,8,9,10,11,12,13,14,15,16,17) + def test_docstring_signature_parsing(self): + + self.assertEqual(_testcapi.no_docstring.__doc__, None) + self.assertEqual(_testcapi.no_docstring.__text_signature__, None) + + self.assertEqual(_testcapi.docstring_empty.__doc__, "") + self.assertEqual(_testcapi.docstring_empty.__text_signature__, None) + + self.assertEqual(_testcapi.docstring_no_signature.__doc__, + "This docstring has no signature.") + self.assertEqual(_testcapi.docstring_no_signature.__text_signature__, None) + + self.assertEqual(_testcapi.docstring_with_invalid_signature.__doc__, + "docstring_with_invalid_signature (boo)\n" + "\n" + "This docstring has an invalid signature." + ) + self.assertEqual(_testcapi.docstring_with_invalid_signature.__text_signature__, None) + + self.assertEqual(_testcapi.docstring_with_signature.__doc__, + "This docstring has a valid signature.") + self.assertEqual(_testcapi.docstring_with_signature.__text_signature__, "(sig)") + + self.assertEqual(_testcapi.docstring_with_signature_and_extra_newlines.__doc__, + "This docstring has a valid signature and some extra newlines.") + self.assertEqual(_testcapi.docstring_with_signature_and_extra_newlines.__text_signature__, + "(parameter)") + + @unittest.skipUnless(threading, 'Threading required for this test.') class TestPendingCalls(unittest.TestCase): diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 9d34904..0258d3df 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -1588,10 +1588,9 @@ class TestSignatureObject(unittest.TestCase): with self.assertRaisesRegex(ValueError, 'not supported by signature'): # support for 'method-wrapper' inspect.signature(min.__call__) - with self.assertRaisesRegex(ValueError, - 'no signature found for builtin function'): - # support for 'method-wrapper' - inspect.signature(min) + self.assertEqual(inspect.signature(min), None) + signature = inspect.signature(os.stat) + self.assertTrue(isinstance(signature, inspect.Signature)) def test_signature_on_non_function(self): with self.assertRaisesRegex(TypeError, 'is not a callable object'): |