diff options
-rw-r--r-- | gobject/gobjectmodule.c | 2 | ||||
-rw-r--r-- | tests/test_subtype.py | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index c43d368..cd08c34 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -975,7 +975,7 @@ _wrap_pyg_type_register(PyObject *self, PyObject *args) { PyTypeObject *class; - if (!PyArg_ParseTuple(args, "O:gobject.type_register", &class)) + if (!PyArg_ParseTuple(args, "O!:gobject.type_register", &PyType_Type, &class)) return NULL; if (!PyType_IsSubtype(class, &PyGObject_Type)) { PyErr_SetString(PyExc_TypeError,"argument must be a GObject subclass"); diff --git a/tests/test_subtype.py b/tests/test_subtype.py index 630344c..b01a593 100644 --- a/tests/test_subtype.py +++ b/tests/test_subtype.py @@ -70,3 +70,6 @@ class TestSubType(unittest.TestCase): PyWindow = type('PyWindow', (gtk.Window,), dict(__gtype_name__='PyWindow2')) foo = PyWindow() self.assertEqual(foo.__grefcount__, 2) + + def testRegisterArgNotType(self): + self.assertRaises(TypeError, gobject.type_register, 1) |