[pygobject/gsoc2009: 59/160] Add support for GType arrays as arguments



commit cccc602d8fa1acbf8b64238bdc3cc76eedf3e686
Author: Simon van der Linden <svdlinden src gnome org>
Date:   Thu Jul 23 12:32:58 2009 +0200

    Add support for GType arrays as arguments

 gi/pygargument.c           |    3 +++
 tests/test_girepository.py |    6 ++++--
 2 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/gi/pygargument.c b/gi/pygargument.c
index ca6431f..56d25ac 100644
--- a/gi/pygargument.c
+++ b/gi/pygargument.c
@@ -554,6 +554,9 @@ pygi_gi_type_tag_get_size(GITypeTag type_tag)
         case GI_TYPE_TAG_DOUBLE:
             size = sizeof(gdouble);
             break;
+        case GI_TYPE_TAG_GTYPE:
+            size = sizeof(GType);
+            break;
         case GI_TYPE_TAG_UTF8:
         case GI_TYPE_TAG_FILENAME:
             size = sizeof(gchar *);
diff --git a/tests/test_girepository.py b/tests/test_girepository.py
index 63bf4d9..75b7066 100644
--- a/tests/test_girepository.py
+++ b/tests/test_girepository.py
@@ -363,8 +363,10 @@ class TestGIEverything(unittest.TestCase):
         self.assertRaises(TypeError, Everything.test_strv_in, ('1', 2, 3))
 
     def testArrayGTypeIn(self):
-        # TODO
-        pass
+        self.assertEqual('[gint,TestObj,]', Everything.test_array_gtype_in((gobject.TYPE_INT, Everything.TestObj)))
+
+        # Test type checking.
+        self.assertRaises(TypeError, Everything.test_array_gtype_in, ('gint', Everything.TestObj))
 
     def testStrvOut(self):
         self.assertEquals(("thanks", "for", "all", "the", "fish"), Everything.test_strv_out())



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]