- def test_append(self):
- # We should be able to append data to the middle of a mutable
- # file and get what we expect.
- new_data = self.data + "appended"
- for node in (self.mdmf_node, self.mdmf_max_shares_node):
- d = node.get_best_mutable_version()
- d.addCallback(lambda mv:
- mv.update(MutableData("appended"), len(self.data)))
- d.addCallback(lambda ignored, node=node:
- node.download_best_version())
- d.addCallback(lambda results:
- self.failUnlessEqual(results, new_data))
- return d
-
- def test_replace(self):
- # We should be able to replace data in the middle of a mutable
- # file and get what we expect back.
- new_data = self.data[:100]
- new_data += "appended"
- new_data += self.data[108:]
- for node in (self.mdmf_node, self.mdmf_max_shares_node):
- d = node.get_best_mutable_version()
- d.addCallback(lambda mv:
- mv.update(MutableData("appended"), 100))
- d.addCallback(lambda ignored, node=node:
- node.download_best_version())
- d.addCallback(lambda results:
- self.failUnlessEqual(results, new_data))
- return d
-
- def test_replace_beginning(self):
- # We should be able to replace data at the beginning of the file
- # without truncating the file
- B = "beginning"
- new_data = B + self.data[len(B):]
- for node in (self.mdmf_node, self.mdmf_max_shares_node):
- d = node.get_best_mutable_version()
- d.addCallback(lambda mv: mv.update(MutableData(B), 0))
- d.addCallback(lambda ignored, node=node:
- node.download_best_version())
- d.addCallback(lambda results: self.failUnlessEqual(results, new_data))
- return d