From: Brian Warner Date: Thu, 8 Nov 2007 11:31:00 +0000 (-0700) Subject: mutable: add basic test coverage of new-dirnodes-using-mutable-files X-Git-Tag: allmydata-tahoe-0.7.0~242 X-Git-Url: https://git.rkrishnan.org/%5B/%5D%20//%22?a=commitdiff_plain;h=2eaa4195cf555e4f88cd691ae2488bea2aa9f3c9;p=tahoe-lafs%2Ftahoe-lafs.git mutable: add basic test coverage of new-dirnodes-using-mutable-files --- diff --git a/src/allmydata/mutable.py b/src/allmydata/mutable.py index 89422e9d..20b0429a 100644 --- a/src/allmydata/mutable.py +++ b/src/allmydata/mutable.py @@ -1264,6 +1264,9 @@ class MutableFileNode: def is_mutable(self): return self._uri.is_mutable() + def is_readonly(self): + # but maybe not you + return self._uri.is_readonly() def __hash__(self): return hash((self.__class__, self.uri)) diff --git a/src/allmydata/test/test_system.py b/src/allmydata/test/test_system.py index 6c309d11..26161893 100644 --- a/src/allmydata/test/test_system.py +++ b/src/allmydata/test/test_system.py @@ -378,8 +378,26 @@ class SystemTest(testutil.SignalMixin, unittest.TestCase): def _check_download_5(res): log.msg("finished replace2") self.failUnlessEqual(res, NEWERDATA) + # make sure we can create empty files, this usually screws up the + # segsize math + d1 = self.clients[2].create_mutable_file("") + d1.addCallback(lambda newnode: newnode.download_to_data()) + d1.addCallback(lambda res: self.failUnlessEqual("", res)) + return d1 d.addCallback(_check_download_5) + d.addCallback(lambda res: self.clients[0].create_empty_dirnode()) + def _created_dirnode(dnode): + d1 = dnode.list() + d1.addCallback(lambda children: self.failUnlessEqual(children, {})) + d1.addCallback(lambda res: dnode.has_child("edgar")) + d1.addCallback(lambda answer: self.failUnlessEqual(answer, False)) + d1.addCallback(lambda res: dnode.set_node("see recursive", dnode)) + d1.addCallback(lambda res: dnode.has_child("see recursive")) + d1.addCallback(lambda answer: self.failUnlessEqual(answer, True)) + return d1 + d.addCallback(_created_dirnode) + return d def flip_bit(self, good):