]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-94808: add tests covering `PyEval_GetFuncDesc` function (GH-98300)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sat, 5 Nov 2022 13:32:46 +0000 (06:32 -0700)
committerGitHub <noreply@github.com>
Sat, 5 Nov 2022 13:32:46 +0000 (06:32 -0700)
(cherry picked from commit b5f711185bd11819566068ddf2a74a1402340e2d)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
Lib/test/test_capi.py
Modules/_testcapimodule.c

index a4d643fb056e4c3cbb48039953f98142ef3016b2..3e6549625870ebd1c7092d5a6033b635ee3c4084 100644 (file)
@@ -751,6 +751,21 @@ class CAPITest(unittest.TestCase):
         self.assertEqual(_testcapi.eval_get_func_name(sum), "sum")  # c function
         self.assertEqual(_testcapi.eval_get_func_name(A), "type")
 
+    def test_eval_get_func_desc(self):
+        def function_example(): ...
+
+        class A:
+            def method_example(self): ...
+
+        self.assertEqual(_testcapi.eval_get_func_desc(function_example),
+                         "()")
+        self.assertEqual(_testcapi.eval_get_func_desc(A.method_example),
+                         "()")
+        self.assertEqual(_testcapi.eval_get_func_desc(A().method_example),
+                         "()")
+        self.assertEqual(_testcapi.eval_get_func_desc(sum), "()")  # c function
+        self.assertEqual(_testcapi.eval_get_func_desc(A), " object")
+
     def test_function_get_code(self):
         import types
 
index 1c085a45f8c4f4bcee9c4e930ae598c155285a04..3ec91bf14cfcea22392b20292077c276f396bdde 100644 (file)
@@ -5975,6 +5975,12 @@ eval_get_func_name(PyObject *self, PyObject *func)
     return PyUnicode_FromString(PyEval_GetFuncName(func));
 }
 
+static PyObject *
+eval_get_func_desc(PyObject *self, PyObject *func)
+{
+    return PyUnicode_FromString(PyEval_GetFuncDesc(func));
+}
+
 static PyObject *
 get_feature_macros(PyObject *self, PyObject *Py_UNUSED(args))
 {
@@ -6452,6 +6458,7 @@ static PyMethodDef TestMethods[] = {
     {"frame_getbuiltins", frame_getbuiltins, METH_O, NULL},
     {"frame_getlasti", frame_getlasti, METH_O, NULL},
     {"eval_get_func_name", eval_get_func_name, METH_O, NULL},
+    {"eval_get_func_desc", eval_get_func_desc, METH_O, NULL},
     {"get_feature_macros", get_feature_macros, METH_NOARGS, NULL},
     {"test_code_api", test_code_api, METH_NOARGS, NULL},
     {"settrace_to_record", settrace_to_record, METH_O, NULL},