@@ -597,83 +597,31 @@ get_heaptype_for_name(PyObject *self, PyObject *Py_UNUSED(ignored))
597597 return PyType_FromSpec (& HeapTypeNameType_Spec );
598598}
599599
600+
600601static PyObject *
601- test_get_type_name (PyObject * self , PyObject * Py_UNUSED ( ignored ) )
602+ get_type_name (PyObject * self , PyObject * type )
602603{
603- PyObject * tp_name = PyType_GetName (& PyLong_Type );
604- assert (strcmp (PyUnicode_AsUTF8 (tp_name ), "int" ) == 0 );
605- Py_DECREF (tp_name );
606-
607- tp_name = PyType_GetName (& PyModule_Type );
608- assert (strcmp (PyUnicode_AsUTF8 (tp_name ), "module" ) == 0 );
609- Py_DECREF (tp_name );
610-
611- PyObject * HeapTypeNameType = PyType_FromSpec (& HeapTypeNameType_Spec );
612- if (HeapTypeNameType == NULL ) {
613- Py_RETURN_NONE ;
614- }
615- tp_name = PyType_GetName ((PyTypeObject * )HeapTypeNameType );
616- assert (strcmp (PyUnicode_AsUTF8 (tp_name ), "HeapTypeNameType" ) == 0 );
617- Py_DECREF (tp_name );
618-
619- PyObject * name = PyUnicode_FromString ("test_name" );
620- if (name == NULL ) {
621- goto done ;
622- }
623- if (PyObject_SetAttrString (HeapTypeNameType , "__name__" , name ) < 0 ) {
624- Py_DECREF (name );
625- goto done ;
626- }
627- tp_name = PyType_GetName ((PyTypeObject * )HeapTypeNameType );
628- assert (strcmp (PyUnicode_AsUTF8 (tp_name ), "test_name" ) == 0 );
629- Py_DECREF (name );
630- Py_DECREF (tp_name );
631-
632- done :
633- Py_DECREF (HeapTypeNameType );
634- Py_RETURN_NONE ;
604+ assert (PyType_Check (type ));
605+ return PyType_GetName ((PyTypeObject * )type );
635606}
636607
637608
638609static PyObject *
639- test_get_type_qualname (PyObject * self , PyObject * Py_UNUSED ( ignored ) )
610+ get_type_qualname (PyObject * self , PyObject * type )
640611{
641- PyObject * tp_qualname = PyType_GetQualName (& PyLong_Type );
642- assert (strcmp (PyUnicode_AsUTF8 (tp_qualname ), "int" ) == 0 );
643- Py_DECREF (tp_qualname );
644-
645- tp_qualname = PyType_GetQualName (& PyODict_Type );
646- assert (strcmp (PyUnicode_AsUTF8 (tp_qualname ), "OrderedDict" ) == 0 );
647- Py_DECREF (tp_qualname );
648-
649- PyObject * HeapTypeNameType = PyType_FromSpec (& HeapTypeNameType_Spec );
650- if (HeapTypeNameType == NULL ) {
651- Py_RETURN_NONE ;
652- }
653- tp_qualname = PyType_GetQualName ((PyTypeObject * )HeapTypeNameType );
654- assert (strcmp (PyUnicode_AsUTF8 (tp_qualname ), "HeapTypeNameType" ) == 0 );
655- Py_DECREF (tp_qualname );
612+ assert (PyType_Check (type ));
613+ return PyType_GetQualName ((PyTypeObject * )type );
614+ }
656615
657- PyObject * spec_name = PyUnicode_FromString (HeapTypeNameType_Spec .name );
658- if (spec_name == NULL ) {
659- goto done ;
660- }
661- if (PyObject_SetAttrString (HeapTypeNameType ,
662- "__qualname__" , spec_name ) < 0 ) {
663- Py_DECREF (spec_name );
664- goto done ;
665- }
666- tp_qualname = PyType_GetQualName ((PyTypeObject * )HeapTypeNameType );
667- assert (strcmp (PyUnicode_AsUTF8 (tp_qualname ),
668- "_testcapi.HeapTypeNameType" ) == 0 );
669- Py_DECREF (spec_name );
670- Py_DECREF (tp_qualname );
671616
672- done :
673- Py_DECREF (HeapTypeNameType );
674- Py_RETURN_NONE ;
617+ static PyObject *
618+ get_type_fullyqualname (PyObject * self , PyObject * type )
619+ {
620+ assert (PyType_Check (type ));
621+ return PyType_GetFullyQualifiedName ((PyTypeObject * )type );
675622}
676623
624+
677625static PyObject *
678626test_get_type_dict (PyObject * self , PyObject * Py_UNUSED (ignored ))
679627{
@@ -3317,8 +3265,9 @@ static PyMethodDef TestMethods[] = {
33173265 {"test_buildvalue_N" , test_buildvalue_N , METH_NOARGS },
33183266 {"test_get_statictype_slots" , test_get_statictype_slots , METH_NOARGS },
33193267 {"get_heaptype_for_name" , get_heaptype_for_name , METH_NOARGS },
3320- {"test_get_type_name" , test_get_type_name , METH_NOARGS },
3321- {"test_get_type_qualname" , test_get_type_qualname , METH_NOARGS },
3268+ {"get_type_name" , get_type_name , METH_O },
3269+ {"get_type_qualname" , get_type_qualname , METH_O },
3270+ {"get_type_fullyqualname" , get_type_fullyqualname , METH_O },
33223271 {"test_get_type_dict" , test_get_type_dict , METH_NOARGS },
33233272 {"_test_thread_state" , test_thread_state , METH_VARARGS },
33243273#ifndef MS_WINDOWS
0 commit comments