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

Unified Diff: appengine/findit/common/chrome_dependency_fetcher.py

Issue 2605943002: Removing the mutation in the factories for getting dep repositories (Closed)
Patch Set: Added the Factory method to CachedGitilesRepository Created 4 years 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: appengine/findit/common/chrome_dependency_fetcher.py
diff --git a/appengine/findit/common/chrome_dependency_fetcher.py b/appengine/findit/common/chrome_dependency_fetcher.py
index 80ec79dc10cffe140fdd7a7083a899b46ecd9967..2d9e2f76800c77a13a98e852c549668e045bff61 100644
--- a/appengine/findit/common/chrome_dependency_fetcher.py
+++ b/appengine/findit/common/chrome_dependency_fetcher.py
@@ -18,31 +18,30 @@ _BUILDSPEC_REPO = ('https://chrome-internal.googlesource.com/chrome/tools/'
def IsChromeVersion(revision):
"""Determines if a revision is a chrome version."""
- if _CHROME_VERSION_PATTERN.match(revision):
- return True
-
- return False
+ return bool(_CHROME_VERSION_PATTERN.match(revision))
class DEPSDownloader(deps_parser.DEPSLoader):
"""Downloads DEPS from remote Git repo."""
- def __init__(self, repository):
- self.repository = repository
+ def __init__(self, get_repository):
+ assert callable(get_repository), (
+ 'The ``get_repository`` argument must be callable.')
+ self._get_repository = get_repository
def Load(self, repo_url, revision, deps_file):
- self.repository.repo_url = repo_url
+ repository = self._get_repository(repo_url)
content = None
if deps_file == 'DEPS' and repo_url == _CHROMIUM_REPO_MASTER:
# Try .DEPS.git instead of DEPS first, for commits during the Git chaos.
- content = self.repository.GetSource('.DEPS.git', revision)
+ content = repository.GetSource('.DEPS.git', revision)
if content is None:
- content = self.repository.GetSource(deps_file, revision)
+ content = repository.GetSource(deps_file, revision)
if content is None and deps_file != 'DEPS':
# Like gclient, fall back to raw 'DEPS' when all else fails.
- content = self.repository.GetSource('DEPS', revision)
+ content = repository.GetSource('DEPS', revision)
if content is None:
raise Exception(
@@ -54,8 +53,10 @@ class DEPSDownloader(deps_parser.DEPSLoader):
class ChromeDependencyFetcher(object):
- def __init__(self, repository):
- self.repository = repository
+ def __init__(self, get_repository):
+ assert callable(get_repository), (
+ 'The ``get_repository`` argument must be callable.')
+ self._get_repository = get_repository
def GetDependency(self, revision, platform):
"""Returns all dependencies of Chrome as a dict for given revision and OS.
@@ -82,7 +83,7 @@ class ChromeDependencyFetcher(object):
_CHROMIUM_ROOT_DIR, _CHROMIUM_REPO_MASTER, revision, **deps_repo_info)
deps_parser.UpdateDependencyTree(
- root_dep, [platform], DEPSDownloader(self.repository))
+ root_dep, [platform], DEPSDownloader(self._get_repository))
dependencies = {}

Powered by Google App Engine
This is Rietveld 408576698