From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sat, 5 Nov 2022 13:32:46 +0000 (-0700) Subject: gh-94808: add tests covering `PyEval_GetFuncDesc` function (GH-98300) X-Git-Tag: v3.11.1~142 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=46a493e2db942cada2dd1abd468d52725ceba992;p=thirdparty%2FPython%2Fcpython.git gh-94808: add tests covering `PyEval_GetFuncDesc` function (GH-98300) (cherry picked from commit b5f711185bd11819566068ddf2a74a1402340e2d) Co-authored-by: Nikita Sobolev --- diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index a4d643fb056e..3e6549625870 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -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 diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 1c085a45f8c4..3ec91bf14cfc 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -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},