summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--gio/gfileenumerator.override46
-rw-r--r--tests/test_gio.py15
3 files changed, 69 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c5e3b00..59795bf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-03-22 Gian Mario Tagliaretti <gianmt@gnome.org>
+
+ * gio/gfileenumerator.override (_wrap_g_file_enumerator_close_async)
+ wrap new method.
+
+ * tests/test_gio.py (TestGFileEnumerator.testCloseFilesAsync):
+ Test the above.
+
2009-03-09 Gian Mario Tagliaretti <gianmt@gnome.org>
* docs/reference/Changelog: Create a dedicated Changelog for the docs
diff --git a/gio/gfileenumerator.override b/gio/gfileenumerator.override
index 2044e44..876aca6 100644
--- a/gio/gfileenumerator.override
+++ b/gio/gfileenumerator.override
@@ -136,3 +136,49 @@ _wrap_g_file_enumerator_next_files_finish(PyGObject *self, PyObject *args, PyObj
return ret;
}
+%%
+override g_file_enumerator_close_async kwargs
+static PyObject *
+_wrap_g_file_enumerator_close_async(PyGObject *self,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ static char *kwlist[] = { "callback", "io_priority", "cancellable",
+ "user_data", NULL };
+ int io_priority = G_PRIORITY_DEFAULT;
+ PyGObject *pycancellable = NULL;
+ GCancellable *cancellable;
+ PyGIONotify *notify;
+
+ notify = pygio_notify_new();
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "O|iOO:GFileEnumerator.close_async",
+ kwlist,
+ &notify->callback,
+ &io_priority,
+ &pycancellable,
+ &notify->data))
+ goto error;
+
+ if (!pygio_notify_callback_is_valid(notify))
+ goto error;
+
+ if (!pygio_check_cancellable(pycancellable, &cancellable))
+ goto error;
+
+ pygio_notify_reference_callback(notify);
+
+ g_file_enumerator_close_async(G_FILE_ENUMERATOR(self->obj),
+ io_priority,
+ cancellable,
+ (GAsyncReadyCallback)async_result_callback_marshal,
+ notify);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+
+ error:
+ pygio_notify_free(notify);
+ return NULL;
+}
diff --git a/tests/test_gio.py b/tests/test_gio.py
index ba05f83..a9b273b 100644
--- a/tests/test_gio.py
+++ b/tests/test_gio.py
@@ -500,6 +500,21 @@ class TestGFileEnumerator(unittest.TestCase):
loop = glib.MainLoop()
loop.run()
+ def testCloseFilesAsync(self):
+ def callback(enumerator, result):
+ try:
+ enumerator.close_finish(result)
+ finally:
+ loop.quit()
+
+ enumerator = self.file.enumerate_children(
+ "standard::*", gio.FILE_QUERY_INFO_NOFOLLOW_SYMLINKS)
+
+ enumerator.close_async(callback)
+
+ loop = glib.MainLoop()
+ loop.run()
+
class TestInputStream(unittest.TestCase):
def setUp(self):