summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJonathan Matthew <jonathan@d14n.org>2008-08-10 03:28:03 +0000
committerJonathan Matthew <jmatthew@src.gnome.org>2008-08-10 03:28:03 +0000
commitfa274210cccf8db816a24f1d55195fa79c9a2ad4 (patch)
tree08ce01d42e8e9808229db768dd6e69357144cda7 /tests
parent6ec9a71b8ae621203fa546b60867f1198bf723bc (diff)
downloadpygobject-fa274210cccf8db816a24f1d55195fa79c9a2ad4.tar.gz
pygobject-fa274210cccf8db816a24f1d55195fa79c9a2ad4.tar.xz
pygobject-fa274210cccf8db816a24f1d55195fa79c9a2ad4.zip
Bug 547067 – add File.replace_contents, replace_contents_async,
2008-08-10 Jonathan Matthew <jonathan@d14n.org> Bug 547067 – add File.replace_contents, replace_contents_async, replace_contents_finish. * gio/gfile.override: * gio/gio.defs: * tests/test_gio.py: Add overrides, docs, and tests for File.replace_contents, replace_contents_async, and replace_contents_finish. svn path=/trunk/; revision=935
Diffstat (limited to 'tests')
-rw-r--r--tests/test_gio.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/test_gio.py b/tests/test_gio.py
index ad186fe..8244852 100644
--- a/tests/test_gio.py
+++ b/tests/test_gio.py
@@ -373,6 +373,47 @@ class TestFile(unittest.TestCase):
10, gio.FILE_QUERY_INFO_NONE)
self.assertEqual(ret, True)
+ def testReplaceContents(self):
+ self.file.replace_contents("testing replace_contents")
+ cont, leng, etag = self.file.load_contents()
+ self.assertEqual(cont, "testing replace_contents")
+
+ caught = False
+ try:
+ self.file.replace_contents("this won't work", etag="wrong")
+ except gio.Error, e:
+ self.assertEqual(e.code, gio.ERROR_WRONG_ETAG)
+ caught = True
+ self.failUnless(caught)
+
+ self.file.replace_contents("testing replace_contents again", etag=etag)
+ cont, leng, etag = self.file.load_contents()
+ self.assertEqual(cont, "testing replace_contents again")
+
+ self.file.replace_contents("testing replace_contents yet again", etag=None)
+ cont, leng, etag = self.file.load_contents()
+ self.assertEqual(cont, "testing replace_contents yet again")
+
+ def testReplaceContentsAsync(self):
+
+ def callback(contents, result):
+ try:
+ newetag = contents.replace_contents_finish(result)
+ cont, leng, etag = self.file.load_contents()
+ self.assertEqual(cont, "testing replace_contents_async")
+ self.assertEqual(leng, 30)
+ self.assertEqual(etag, newetag)
+ self.assertNotEqual(newetag, '')
+ finally:
+ loop.quit()
+
+ canc = gio.Cancellable()
+ self.file.replace_contents_async("testing replace_contents_async", callback, cancellable=canc)
+
+ loop = glib.MainLoop()
+ loop.run()
+
+
class TestGFileEnumerator(unittest.TestCase):
def setUp(self):