summaryrefslogtreecommitdiffstats
path: root/tests/test_gio.py
diff options
context:
space:
mode:
authorJohan Dahlin <johan@gnome.org>2008-01-21 20:10:30 +0000
committerJohan Dahlin <johan@src.gnome.org>2008-01-21 20:10:30 +0000
commit6d441aad5c3b56535f8383ebe7cff10a50289de9 (patch)
treefe716701c5d0bf5c6eb21e47783992ab18dc99b5 /tests/test_gio.py
parent8c31e35473f8d50cbb3cb832029f5ddc64022649 (diff)
downloadpygobject-6d441aad5c3b56535f8383ebe7cff10a50289de9.tar.gz
pygobject-6d441aad5c3b56535f8383ebe7cff10a50289de9.tar.xz
pygobject-6d441aad5c3b56535f8383ebe7cff10a50289de9.zip
Don't assume the buffer is set, use Py_XINCREF instead of Py_INCREF.
2008-01-21 Johan Dahlin <johan@gnome.org> * gio/gio.override (async_result_callback_marshal): Don't assume the buffer is set, use Py_XINCREF instead of Py_INCREF. * gio/Makefile.am: * gio/ginputstream.override: * gio/goutputstream.override: * gio/gvolumemonitor.override: * gio/gfile.override: * tests/test_gio.py: Implement and test GFile.read_async. Use try/finally to always quit the mainloop, even if the test fail. Update source comment headers. svn path=/trunk/; revision=744
Diffstat (limited to 'tests/test_gio.py')
-rw-r--r--tests/test_gio.py53
1 files changed, 42 insertions, 11 deletions
diff --git a/tests/test_gio.py b/tests/test_gio.py
index d083361..b45e92f 100644
--- a/tests/test_gio.py
+++ b/tests/test_gio.py
@@ -6,6 +6,33 @@ import unittest
from common import gio, gobject
+class TestFile(unittest.TestCase):
+ def setUp(self):
+ self._f = open("file.txt", "w+")
+ self.file = gio.file_new_for_path("file.txt")
+
+ def tearDown(self):
+ self._f.close()
+ os.unlink("file.txt")
+
+ def testReadAsync(self):
+ self._f.write("testing")
+ self._f.seek(0)
+
+ def callback(file, result):
+ try:
+ stream = file.read_finish(result)
+ self.failUnless(isinstance(stream, gio.InputStream))
+ self.assertEquals(stream.read(), "testing")
+ finally:
+ loop.quit()
+
+ self.file.read_async(0, None, callback)
+
+ loop = gobject.MainLoop()
+ loop.run()
+
+
class TestInputStream(unittest.TestCase):
def setUp(self):
self._f = open("inputstream.txt", "w+")
@@ -22,11 +49,13 @@ class TestInputStream(unittest.TestCase):
def testReadAsync(self):
def callback(stream, result):
- read = stream.read_finish(result)
- self.assertEquals(read, len("testing"))
- self.assertEquals(result.get_buffer(), "testing")
- stream.close()
- loop.quit()
+ try:
+ read = stream.read_finish(result)
+ self.assertEquals(read, len("testing"))
+ self.assertEquals(result.get_buffer(), "testing")
+ stream.close()
+ finally:
+ loop.quit()
self.stream.read_async(7, 0, None, callback)
@@ -36,12 +65,14 @@ class TestInputStream(unittest.TestCase):
def testReadAsyncError(self):
self.count = 0
def callback(stream, result):
- #self.assertEquals(result.get_buffer(), None)
- self.count += 1
- if self.count == 1:
- return
- self.assertRaises(gobject.GError, stream.read_finish, result)
- loop.quit()
+ try:
+ #self.assertEquals(result.get_buffer(), None)
+ self.count += 1
+ if self.count == 1:
+ return
+ self.assertRaises(gobject.GError, stream.read_finish, result)
+ finally:
+ loop.quit()
self.stream.read_async(10240, 0, None, callback)
self.stream.read_async(10240, 0, None, callback)