Skip to content
Snippets Groups Projects
Commit 8900a919 authored by Nicolas Dandrimont's avatar Nicolas Dandrimont
Browse files

from_disk.Directory: fix some random bugs found when using the API

parent a8e919ab
No related branches found
No related tags found
No related merge requests found
...@@ -309,7 +309,7 @@ class Directory(MerkleNode): ...@@ -309,7 +309,7 @@ class Directory(MerkleNode):
return super().__getitem__(key) return super().__getitem__(key)
else: else:
key1, key2 = key.split(b'/', 1) key1, key2 = key.split(b'/', 1)
return super().__getitem__(key1)[key2] return self.__getitem__(key1)[key2]
def __setitem__(self, key, value): def __setitem__(self, key, value):
if not isinstance(key, bytes): if not isinstance(key, bytes):
...@@ -327,7 +327,7 @@ class Directory(MerkleNode): ...@@ -327,7 +327,7 @@ class Directory(MerkleNode):
return super().__setitem__(key, value) return super().__setitem__(key, value)
else: else:
key1, key2 = key.rsplit(b'/', 1) key1, key2 = key.rsplit(b'/', 1)
self[key1].add_child(key2, value) self[key1].__setitem__(key2, value)
def __delitem__(self, key): def __delitem__(self, key):
if not isinstance(key, bytes): if not isinstance(key, bytes):
...@@ -337,10 +337,10 @@ class Directory(MerkleNode): ...@@ -337,10 +337,10 @@ class Directory(MerkleNode):
super().__delitem__(key) super().__delitem__(key)
else: else:
key1, key2 = key.rsplit(b'/', 1) key1, key2 = key.rsplit(b'/', 1)
del super().__getitem__(key1)[key2] del self[key1][key2]
def __repr__(self): def __repr__(self):
return 'Directory(%s, id=%s)' % ( return 'Directory(id=%s, entries=[%s])' % (
self.data['name'], id_to_str(self.hash),
id_to_str(self.hash) if self.hash else '?', ', '.join(str(entry) for entry in self),
) )
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment