mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-04-07 10:56:49 +00:00
dirnode: return to 'delete fails if the child wasn't actually there' semantics, to make tests pass. There's a switch to enable/disable this
This commit is contained in:
parent
d5b182c183
commit
d7b82f73c5
@ -39,12 +39,15 @@ def split_netstring(data, numstrings, allow_leftover=False):
|
||||
return tuple(elements)
|
||||
|
||||
class Deleter:
|
||||
def __init__(self, node, name):
|
||||
def __init__(self, node, name, must_exist=True):
|
||||
self.node = node
|
||||
self.name = name
|
||||
self.must_exist = True
|
||||
def modify(self, old_contents):
|
||||
children = self.node._unpack_contents(old_contents)
|
||||
if self.name not in children:
|
||||
if self.must_exist:
|
||||
raise KeyError(self.name)
|
||||
self.old_child = None
|
||||
return None
|
||||
self.old_child, metadata = children[self.name]
|
||||
|
@ -102,10 +102,12 @@ class FakeMutableFileNode:
|
||||
self.all_contents[self.storage_index] = new_contents
|
||||
return defer.succeed(None)
|
||||
def modify(self, modifier):
|
||||
return defer.maybeDeferred(self._modify, modifier)
|
||||
def _modify(self, modifier):
|
||||
assert not self.is_readonly()
|
||||
old_contents = self.all_contents[self.storage_index]
|
||||
self.all_contents[self.storage_index] = modifier(old_contents)
|
||||
return defer.succeed(None)
|
||||
return None
|
||||
|
||||
|
||||
def make_mutable_file_uri():
|
||||
|
Loading…
x
Reference in New Issue
Block a user