Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Unified Diff: tracing/third_party/tvcm/tvcm/fake_fs.py

Issue 1376953005: Move tracing/third_party/tvcm -> third_party/py_vulcanize. (Closed) Base URL: git@github.com:catapult-project/catapult.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tracing/third_party/tvcm/tvcm/fake_fs.py
diff --git a/tracing/third_party/tvcm/tvcm/fake_fs.py b/tracing/third_party/tvcm/tvcm/fake_fs.py
deleted file mode 100644
index 965cb8b08b87257416a8a8daa41a385d2d77698e..0000000000000000000000000000000000000000
--- a/tracing/third_party/tvcm/tvcm/fake_fs.py
+++ /dev/null
@@ -1,147 +0,0 @@
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import codecs
-import os
-import sys
-import collections
-import StringIO
-
-
-class WithableStringIO(StringIO.StringIO):
-
- def __enter__(self, *args):
- return self
-
- def __exit__(self, *args):
- pass
-
-
-class FakeFS(object):
-
- def __init__(self, initial_filenames_and_contents=None):
- self._file_contents = {}
- if initial_filenames_and_contents:
- for k, v in initial_filenames_and_contents.iteritems():
- self._file_contents[k] = v
-
- self._bound = False
- self._real_codecs_open = codecs.open
- self._real_open = sys.modules['__builtin__'].open
- self._real_abspath = os.path.abspath
- self._real_exists = os.path.exists
- self._real_walk = os.walk
- self._real_listdir = os.listdir
-
- def __enter__(self):
- self.Bind()
- return self
-
- def __exit__(self, *args):
- self.Unbind()
-
- def Bind(self):
- assert not self._bound
- codecs.open = self._FakeCodecsOpen
- sys.modules['__builtin__'].open = self._FakeOpen
- os.path.abspath = self._FakeAbspath
- os.path.exists = self._FakeExists
- os.walk = self._FakeWalk
- os.listdir = self._FakeListDir
- self._bound = True
-
- def Unbind(self):
- assert self._bound
- codecs.open = self._real_codecs_open
- sys.modules['__builtin__'].open = self._real_open
- os.path.abspath = self._real_abspath
- os.path.exists = self._real_exists
- os.walk = self._real_walk
- os.listdir = self._real_listdir
- self._bound = False
-
- def AddFile(self, path, contents):
- assert path not in self._file_contents
- path = os.path.normpath(path)
- self._file_contents[path] = contents
-
- def _FakeOpen(self, path, mode=None):
- if mode is None:
- mode = 'r'
- if mode == 'r' or mode == 'rU' or mode == 'rb':
- if path not in self._file_contents:
- return self._real_open(path, mode)
- return WithableStringIO(self._file_contents[path])
-
- raise NotImplementedError()
-
- def _FakeCodecsOpen(self, path, mode=None,
- encoding=None): # pylint: disable=unused-argument
- if mode is None:
- mode = 'r'
- if mode == 'r' or mode == 'rU' or mode == 'rb':
- if path not in self._file_contents:
- return self._real_open(path, mode)
- return WithableStringIO(self._file_contents[path])
-
- raise NotImplementedError()
-
- def _FakeAbspath(self, path):
- """Normalize the path and ensure it starts with os.path.sep.
-
- The tests all assume paths start with things like '/my/project',
- and this abspath implementaion makes that assumption work correctly
- on Windows.
- """
- normpath = os.path.normpath(path)
- if not normpath.startswith(os.path.sep):
- normpath = os.path.sep + normpath
- return normpath
-
- def _FakeExists(self, path):
- if path in self._file_contents:
- return True
- return self._real_exists(path)
-
- def _FakeWalk(self, top):
- assert os.path.isabs(top)
- all_filenames = self._file_contents.keys()
- pending_prefixes = collections.deque()
- pending_prefixes.append(top)
- visited_prefixes = set()
- while len(pending_prefixes):
- prefix = pending_prefixes.popleft()
- if prefix in visited_prefixes:
- continue
- visited_prefixes.add(prefix)
- if prefix.endswith(os.path.sep):
- prefix_with_trailing_sep = prefix
- else:
- prefix_with_trailing_sep = prefix + os.path.sep
-
- dirs = set()
- files = []
- for filename in all_filenames:
- if not filename.startswith(prefix_with_trailing_sep):
- continue
- relative_to_prefix = os.path.relpath(filename, prefix)
-
- dirpart = os.path.dirname(relative_to_prefix)
- if len(dirpart) == 0:
- files.append(relative_to_prefix)
- continue
- parts = dirpart.split(os.sep)
- if len(parts) == 0:
- dirs.add(dirpart)
- else:
- pending = os.path.join(prefix, parts[0])
- dirs.add(parts[0])
- pending_prefixes.appendleft(pending)
-
- dirs = list(dirs)
- dirs.sort()
- yield prefix, dirs, files
-
- def _FakeListDir(self, dirname):
- raise NotImplementedError()

Powered by Google App Engine
This is Rietveld 408576698