Skip to content

Commit f01b56c

Browse files
authored
gh-94808: Cover PyEval_GetFuncName (#98246)
1 parent 120b4ab commit f01b56c

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Lib/test/test_capi.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -880,6 +880,21 @@ def __init__(self):
880880
_testcapi.clear_managed_dict(c)
881881
self.assertEqual(c.__dict__, {})
882882

883+
def test_eval_get_func_name(self):
884+
def function_example(): ...
885+
886+
class A:
887+
def method_example(self): ...
888+
889+
self.assertEqual(_testcapi.eval_get_func_name(function_example),
890+
"function_example")
891+
self.assertEqual(_testcapi.eval_get_func_name(A.method_example),
892+
"method_example")
893+
self.assertEqual(_testcapi.eval_get_func_name(A().method_example),
894+
"method_example")
895+
self.assertEqual(_testcapi.eval_get_func_name(sum), "sum") # c function
896+
self.assertEqual(_testcapi.eval_get_func_name(A), "type")
897+
883898

884899
class TestPendingCalls(unittest.TestCase):
885900

Modules/_testcapimodule.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5469,6 +5469,12 @@ frame_getlasti(PyObject *self, PyObject *frame)
54695469
return PyLong_FromLong(lasti);
54705470
}
54715471

5472+
static PyObject *
5473+
eval_get_func_name(PyObject *self, PyObject *func)
5474+
{
5475+
return PyUnicode_FromString(PyEval_GetFuncName(func));
5476+
}
5477+
54725478
static PyObject *
54735479
get_feature_macros(PyObject *self, PyObject *Py_UNUSED(args))
54745480
{
@@ -5925,6 +5931,7 @@ static PyMethodDef TestMethods[] = {
59255931
{"frame_getgenerator", frame_getgenerator, METH_O, NULL},
59265932
{"frame_getbuiltins", frame_getbuiltins, METH_O, NULL},
59275933
{"frame_getlasti", frame_getlasti, METH_O, NULL},
5934+
{"eval_get_func_name", eval_get_func_name, METH_O, NULL},
59285935
{"get_feature_macros", get_feature_macros, METH_NOARGS, NULL},
59295936
{"test_code_api", test_code_api, METH_NOARGS, NULL},
59305937
{"settrace_to_record", settrace_to_record, METH_O, NULL},

0 commit comments

Comments
 (0)