summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGian Mario Tagliaretti <gianmt@gnome.org>2009-12-30 14:07:52 +0100
committerGian Mario Tagliaretti <gianmt@gnome.org>2009-12-30 14:07:52 +0100
commitde7a359e81792ae8573ac944455ea289985449ed (patch)
tree540715383dc3fb3d1be7bd17da60d58e5910ad9d
parent308421789ce849040d645077c41c80b6e2e65e83 (diff)
downloadpygobject-de7a359e81792ae8573ac944455ea289985449ed.tar.gz
pygobject-de7a359e81792ae8573ac944455ea289985449ed.tar.xz
pygobject-de7a359e81792ae8573ac944455ea289985449ed.zip
Wrap gio.Resolver.lookup_service_finish() and add a test
-rw-r--r--gio/gresolver.override37
-rw-r--r--tests/test_gresolver.py13
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()
+