mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-24 07:06:41 +00:00
Add unit tests for the Adder in dirnode.py
This commit is contained in:
parent
c476c66b0e
commit
ca4de9ee97
@ -966,3 +966,70 @@ class Deleter(GridTestMixin, unittest.TestCase):
|
||||
|
||||
return d
|
||||
|
||||
class Adder(unittest.TestCase,
|
||||
testutil.ShouldFailMixin, testutil.StallMixin, ErrorMixin):
|
||||
|
||||
def setUp(self):
|
||||
self.client = FakeClient()
|
||||
|
||||
def test_overwrite(self):
|
||||
fileuri = make_chk_file_uri(1234)
|
||||
filenode = self.client.create_node_from_uri(fileuri)
|
||||
d = self.client.create_empty_dirnode()
|
||||
|
||||
def _create_directory_tree(root_node):
|
||||
# Build
|
||||
# root/file1
|
||||
# root/file2
|
||||
# root/dir1
|
||||
d = root_node.add_file(u'file1', upload.Data("Important Things",
|
||||
None))
|
||||
d.addCallback(lambda res:
|
||||
root_node.add_file(u'file2', upload.Data("Sekrit Codes",
|
||||
None)))
|
||||
d.addCallback(lambda res:
|
||||
root_node.create_empty_directory(u"dir1"))
|
||||
d.addCallback(lambda res: root_node)
|
||||
return d
|
||||
|
||||
d.addCallback(_create_directory_tree)
|
||||
|
||||
def _test_adder(root_node):
|
||||
d = root_node.set_node(u'file1', filenode)
|
||||
|
||||
# We've overwritten file1. Let's try it with a directory
|
||||
d.addCallback(lambda res:
|
||||
root_node.create_empty_directory(u'dir2'))
|
||||
|
||||
d.addCallback(lambda res:
|
||||
root_node.set_node(u'dir2', filenode))
|
||||
|
||||
# We try overwriting a file with a child while also specifying
|
||||
# overwrite=False. We should receive an ExistingChildError
|
||||
# when we do this.
|
||||
d.addCallback(lambda res:
|
||||
self.shouldFail(ExistingChildError, "set_node",
|
||||
"child 'file1' already exists",
|
||||
root_node.set_node, u"file1",
|
||||
filenode, overwrite=False))
|
||||
|
||||
# If we try with a directory, we should see the same thing
|
||||
d.addCallback(lambda res:
|
||||
self.shouldFail(ExistingChildError, "set_node",
|
||||
"child 'dir1' already exists",
|
||||
root_node.set_node, u'dir1', filenode,
|
||||
overwrite=False))
|
||||
|
||||
d.addCallback(lambda res:
|
||||
root_node.set_node(u'file1', filenode,
|
||||
overwrite="only_files"))
|
||||
|
||||
d.addCallback(lambda res:
|
||||
self.shouldFail(ExistingChildError, "set_node",
|
||||
"child 'dir1' already exists",
|
||||
root_node.set_node, u'dir1', filenode,
|
||||
overwrite="only_files"))
|
||||
return d
|
||||
|
||||
d.addCallback(_test_adder)
|
||||
return d
|
||||
|
Loading…
Reference in New Issue
Block a user