diff options
author | Gian Mario Tagliaretti <gianmt@gnome.org> | 2009-12-30 14:07:52 +0100 |
---|---|---|
committer | Gian Mario Tagliaretti <gianmt@gnome.org> | 2009-12-30 14:07:52 +0100 |
commit | de7a359e81792ae8573ac944455ea289985449ed (patch) | |
tree | 540715383dc3fb3d1be7bd17da60d58e5910ad9d | |
parent | 308421789ce849040d645077c41c80b6e2e65e83 (diff) | |
download | pygobject-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.override | 37 | ||||
-rw-r--r-- | 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() + |