Merge "Use hash path lookup vs path finding"

This commit is contained in:
Jenkins
2015-06-15 23:22:52 +00:00
committed by Gerrit Code Review

View File

@@ -274,14 +274,13 @@ class FakeFilesystem(object):
"""Link the destionation path to the source path.""" """Link the destionation path to the source path."""
dest_path = self.normpath(dest_path) dest_path = self.normpath(dest_path)
src_path = self.normpath(src_path) src_path = self.normpath(src_path)
dirname, basename = self.split(dest_path) try:
parent_node = self._fetch_node(dirname, normalized=True) dest_node = self._fetch_node(dest_path, normalized=True)
child_node = parent_node.find(basename, except exc.NotFound:
only_direct=True, parent_path, basename = self.split(dest_path)
include_self=False) parent_node = self._fetch_node(parent_path, normalized=True)
if child_node is None: dest_node = self._insert_child(parent_node, basename)
child_node = self._insert_child(parent_node, basename) dest_node.metadata['target'] = src_path
child_node.metadata['target'] = src_path
def __getitem__(self, path): def __getitem__(self, path):
return self._get_item(self.normpath(path)) return self._get_item(self.normpath(path))
@@ -290,11 +289,11 @@ class FakeFilesystem(object):
path = self.normpath(path) path = self.normpath(path)
value = self._copier(value) value = self._copier(value)
try: try:
item_node = self._fetch_node(path, normalized=True) node = self._fetch_node(path, normalized=True)
item_node.metadata.update(value=value) node.metadata.update(value=value)
except exc.NotFound: except exc.NotFound:
dirname, basename = self.split(path) parent_path, basename = self.split(path)
parent_node = self._fetch_node(dirname, normalized=True) parent_node = self._fetch_node(parent_path, normalized=True)
self._insert_child(parent_node, basename, value=value) self._insert_child(parent_node, basename, value=value)