Skip to content

Commit 93d0d9c

Browse files
[3.11] gh-94808: Cover PyEval_GetFuncName (GH-98246). (#98283)
(cherry picked from commit f01b56c) Co-authored-by: Nikita Sobolev <[email protected]>
1 parent 099620b commit 93d0d9c

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Lib/test/test_capi.py

+15
Original file line numberDiff line numberDiff line change
@@ -724,6 +724,21 @@ def test_export_symbols(self):
724724
with self.subTest(name=name):
725725
self.assertTrue(hasattr(ctypes.pythonapi, name))
726726

727+
def test_eval_get_func_name(self):
728+
def function_example(): ...
729+
730+
class A:
731+
def method_example(self): ...
732+
733+
self.assertEqual(_testcapi.eval_get_func_name(function_example),
734+
"function_example")
735+
self.assertEqual(_testcapi.eval_get_func_name(A.method_example),
736+
"method_example")
737+
self.assertEqual(_testcapi.eval_get_func_name(A().method_example),
738+
"method_example")
739+
self.assertEqual(_testcapi.eval_get_func_name(sum), "sum") # c function
740+
self.assertEqual(_testcapi.eval_get_func_name(A), "type")
741+
727742

728743
class TestPendingCalls(unittest.TestCase):
729744

Modules/_testcapimodule.c

+7
Original file line numberDiff line numberDiff line change
@@ -5935,6 +5935,12 @@ frame_getlasti(PyObject *self, PyObject *frame)
59355935
return PyLong_FromLong(lasti);
59365936
}
59375937

5938+
static PyObject *
5939+
eval_get_func_name(PyObject *self, PyObject *func)
5940+
{
5941+
return PyUnicode_FromString(PyEval_GetFuncName(func));
5942+
}
5943+
59385944
static PyObject *
59395945
get_feature_macros(PyObject *self, PyObject *Py_UNUSED(args))
59405946
{
@@ -6372,6 +6378,7 @@ static PyMethodDef TestMethods[] = {
63726378
{"frame_getgenerator", frame_getgenerator, METH_O, NULL},
63736379
{"frame_getbuiltins", frame_getbuiltins, METH_O, NULL},
63746380
{"frame_getlasti", frame_getlasti, METH_O, NULL},
6381+
{"eval_get_func_name", eval_get_func_name, METH_O, NULL},
63756382
{"get_feature_macros", get_feature_macros, METH_NOARGS, NULL},
63766383
{"test_code_api", test_code_api, METH_NOARGS, NULL},
63776384
{"settrace_to_record", settrace_to_record, METH_O, NULL},

0 commit comments

Comments
 (0)