From a2ed17f2a0d69ec35785d7478deebd763a287d7a Mon Sep 17 00:00:00 2001 From: david-sarah <david-sarah@jacaranda.org> Date: Wed, 24 Feb 2010 20:18:24 -0800 Subject: [PATCH] Additional test for DIR2-LIT directories in test_web.py, fixed version (#948) --- src/allmydata/test/common.py | 16 ++++++++++++---- src/allmydata/test/test_web.py | 9 +++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/allmydata/test/common.py b/src/allmydata/test/common.py index 6c37f8c6..f1bfe3dc 100644 --- a/src/allmydata/test/common.py +++ b/src/allmydata/test/common.py @@ -113,6 +113,8 @@ class FakeCHKFileNode: pass def get_size(self): + if isinstance(self.my_uri, uri.LiteralFileURI): + return self.my_uri.get_size() try: data = self.all_contents[self.my_uri.to_string()] except KeyError, le: @@ -131,9 +133,12 @@ class FakeCHKFileNode: return d def _read(self, ignored, consumer, offset, size): - if self.my_uri.to_string() not in self.all_contents: - raise NotEnoughSharesError(None, 0, 3) - data = self.all_contents[self.my_uri.to_string()] + if isinstance(self.my_uri, uri.LiteralFileURI): + data = self.my_uri.data + else: + if self.my_uri.to_string() not in self.all_contents: + raise NotEnoughSharesError(None, 0, 3) + data = self.all_contents[self.my_uri.to_string()] start = offset if size is not None: end = offset + size @@ -288,9 +293,12 @@ class FakeMutableFileNode: return d def download_best_version(self): + if isinstance(self.my_uri, uri.LiteralFileURI): + return defer.succeed(self.my_uri.data) if self.storage_index not in self.all_contents: return defer.fail(NotEnoughSharesError(None, 0, 3)) return defer.succeed(self.all_contents[self.storage_index]) + def overwrite(self, new_contents): if len(new_contents) > self.MUTABLE_SIZELIMIT: raise FileTooLargeError("SDMF is limited to one segment, and " @@ -464,7 +472,7 @@ class SystemTestMixin(pollmixin.PollMixin, testutil.StallMixin): if self.stats_gatherer_furl: write("stats_gatherer.furl", self.stats_gatherer_furl) - # give subclasses a chance to append liens to the node's tahoe.cfg + # give subclasses a chance to append lines to the node's tahoe.cfg # files before they are launched. self._set_up_nodes_extra_config() diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py index f9e37513..b1485981 100644 --- a/src/allmydata/test/test_web.py +++ b/src/allmydata/test/test_web.py @@ -994,6 +994,15 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase): self.failUnless(MKDIR_BUTTON_RE.search(res), res) d.addCallback(_check4) + # and at a literal directory + tiny_litdir_uri = "URI:DIR2-LIT:gqytunj2onug64tufqzdcosvkjetutcjkq5gw4tvm5vwszdgnz5hgyzufqydulbshj5x2lbm" # contains one child which is itself also LIT + d.addCallback(lambda res: + self.GET("/uri/" + tiny_litdir_uri + "/", followRedirect=True)) + def _check5(res): + self.failUnless('(immutable)' in res, res) + self.failUnless(re.search('<td>FILE</td>' + r'\s+<td><a href="[\.\/]+/file/URI%3ALIT%3Akrugkidfnzsc4/@@named=/short">short</a></td>', res), res) + d.addCallback(_check5) return d def test_GET_DIRURL_badtype(self): -- 2.45.2