[pygobject] Wrap gio.Resolver.lookup_service_finish() and add a test



commit de7a359e81792ae8573ac944455ea289985449ed
Author: Gian Mario Tagliaretti <gianmt gnome org>
Date:   Wed Dec 30 14:07:52 2009 +0100

    Wrap gio.Resolver.lookup_service_finish() and add a test

 gio/gresolver.override  |   37 +++++++++++++++++++++++++++++++++++++
 tests/test_gresolver.py |   13 +++++++++++++
 2 files changed, 50 insertions(+), 0 deletions(-)
---
diff --git a/gio/gresolver.override b/gio/gresolver.override
index 4acd8d8..a94b8a5 100644
--- a/gio/gresolver.override
+++ b/gio/gresolver.override
@@ -273,3 +273,40 @@ _wrap_g_resolver_lookup_service_async(PyGObject *self,
     pygio_notify_free(notify);
     return NULL;
 }
+%%
+override g_resolver_lookup_service_finish kwargs
+static PyObject *
+_wrap_g_resolver_lookup_service_finish(PyGObject *self,
+                                       PyObject *args,
+                                       PyObject *kwargs)
+{
+    static char *kwlist[] = { "result", NULL };
+    PyGObject *result;
+    GList *targets;
+    PyObject *ret;
+    GError *error = NULL;
+
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+                                     "O!:gio.Resolver.lookup_service_finish",
+                                     kwlist,
+                                     &PyGAsyncResult_Type,
+                                     &result))
+        return NULL;
+    
+    targets = g_resolver_lookup_service_finish(G_RESOLVER(self->obj),
+                                               G_ASYNC_RESULT(result->obj),
+                                               &error);
+    
+    if (pyg_error_check(&error))
+        return NULL;
+
+    if (targets) {
+        PYLIST_FROMGLIST(ret, targets,
+                        pyg_boxed_new(G_TYPE_SRV_TARGET, list_item, TRUE, TRUE),
+                        g_resolver_free_targets, NULL);
+        return ret;
+    } else {
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+}
diff --git a/tests/test_gresolver.py b/tests/test_gresolver.py
index 03e79cc..4303f0f 100644
--- a/tests/test_gresolver.py
+++ b/tests/test_gresolver.py
@@ -50,3 +50,16 @@ class TestResolver(unittest.TestCase):
         targets = self.resolver.lookup_service("xmpp-client", "tcp", "google.com")
         self.failUnless(isinstance(targets[0], gio.SrvTarget))
 
+    def test_resolver_lookup_service_async(self):
+        def callback(resolver, result):
+            try:
+                targets = resolver.lookup_service_finish(result)
+                self.failUnless(isinstance(targets[0], gio.SrvTarget))
+            finally:
+                loop.quit()
+
+        self.resolver.lookup_service_async(callback, "xmpp-client", "tcp", "google.com")
+
+        loop = glib.MainLoop()
+        loop.run()
+



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