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

Side by Side Diff: appengine/findit/common/test/chromium_deps_test.py

Issue 1950123003: [Findit] Fetch DEPS from buildspec/ instead of trunk for chrome official builds. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Update doc string. Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import base64
5 import collections 6 import collections
6 7
7 from testing_utils import testing 8 from testing_utils import testing
8 9
9 from common import chromium_deps 10 from common import chromium_deps
10 from common import deps_parser 11 from common import deps_parser
11 from common import git_repository 12 from common import git_repository
12 from common import repository 13 from common import repository
14 from common import retry_http_client
15 from common import http_client_appengine
13 from common.dependency import Dependency, DependencyRoll 16 from common.dependency import Dependency, DependencyRoll
14 17
15 18
16 class DummyGitRepository(repository.Repository): 19 class DummyGitRepository(repository.Repository):
17 RESPONSES = {} 20 RESPONSES = {}
18 21
19 def __init__(self, *_): 22 def __init__(self, *_):
20 pass 23 pass
21 24
22 def GetSource(self, path, revision): 25 def GetSource(self, path, revision):
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 def testFailedToPullDEPSFile(self): 90 def testFailedToPullDEPSFile(self):
88 DummyGitRepository.RESPONSES = {} 91 DummyGitRepository.RESPONSES = {}
89 92
90 self.mock(git_repository, 'GitRepository', DummyGitRepository) 93 self.mock(git_repository, 'GitRepository', DummyGitRepository)
91 94
92 deps_downloader = chromium_deps.DEPSDownloader() 95 deps_downloader = chromium_deps.DEPSDownloader()
93 self.assertRaisesRegexp(Exception, 'Failed to pull DEPS file.', 96 self.assertRaisesRegexp(Exception, 'Failed to pull DEPS file.',
94 deps_downloader.Load, 97 deps_downloader.Load,
95 'https://src.git', 'abc', 'DEPS') 98 'https://src.git', 'abc', 'DEPS')
96 99
100 def testDEPSDownloaderForChromeVersion(self):
101
102 def _MockGet(*args):
103 url = args[1]
104 if not '50.0.1234.0' in url:
105 return 404, None
106
107 return 200, base64.b64encode('Dummy DEPS content')
108
109 self.mock(http_client_appengine.HttpClientAppengine, '_Get', _MockGet)
110
111 content = chromium_deps.DEPSDownloader().Load(
112 'http://chrome-internal', '50.0.1234.0', 'DEPS')
113 self.assertEqual(content, 'Dummy DEPS content')
114
115 self.assertRaisesRegexp(
116 Exception,
117 'Failed to pull DEPS file from http://chrome, at revision 50.0.1234.1.',
118 chromium_deps.DEPSDownloader().Load,
119 'http://chrome', '50.0.1234.1', 'DEPS')
120
97 def testGetChromeDependency(self): 121 def testGetChromeDependency(self):
98 src_path = 'src/' 122 src_path = 'src/'
99 src_repo_url = 'https://chromium.googlesource.com/chromium/src.git' 123 src_repo_url = 'https://chromium.googlesource.com/chromium/src.git'
100 src_revision = '123a' 124 src_revision = '123a'
101 os_platform = 'unix' 125 os_platform = 'unix'
102 126
103 child1_dep = Dependency('src/a/', 'https://a.git', '123a', 'DEPS') 127 child1_dep = Dependency('src/a/', 'https://a.git', '123a', 'DEPS')
104 child2_dep = Dependency('src/b/', 'https://b.git', '123b', 'DEPS') 128 child2_dep = Dependency('src/b/', 'https://b.git', '123b', 'DEPS')
105 grand_child1 = Dependency('src/a/aa/', 'https://aa.git', '123aa', 'DEPS') 129 grand_child1 = Dependency('src/a/aa/', 'https://aa.git', '123aa', 'DEPS')
106 130
(...skipping 13 matching lines...) Expand all
120 child1_dep.SetParent(root_dep) 144 child1_dep.SetParent(root_dep)
121 child2_dep.SetParent(root_dep) 145 child2_dep.SetParent(root_dep)
122 grand_child1.SetParent(child1_dep) 146 grand_child1.SetParent(child1_dep)
123 147
124 self.mock(deps_parser, 'UpdateDependencyTree', DummyUpdateDependencyTree) 148 self.mock(deps_parser, 'UpdateDependencyTree', DummyUpdateDependencyTree)
125 149
126 dependency_dict = chromium_deps.GetChromeDependency( 150 dependency_dict = chromium_deps.GetChromeDependency(
127 src_revision, os_platform) 151 src_revision, os_platform)
128 self.assertEqual(expected_dependency_dict, dependency_dict) 152 self.assertEqual(expected_dependency_dict, dependency_dict)
129 153
154 def testGetChromeDependencyForChromeVersion(self):
155 src_path = 'src/'
156 src_repo_url = 'https://chromium.googlesource.com/chromium/src.git'
157 os_platform = 'unix'
158
159 child1_dep = Dependency('src/a/', 'https://a.git', '123a', 'DEPS')
160 child2_dep = Dependency('src/b/', 'https://b.git', '123b', 'DEPS')
161 grand_child1 = Dependency('src/a/aa/', 'https://aa.git', '123aa', 'DEPS')
162
163 expected_dependency_dict = {
164 'src/a/': child1_dep,
165 'src/b/': child2_dep,
166 'src/a/aa/': grand_child1,
167 }
168
169 def DummyUpdateDependencyTree(root_dep, target_os_list, _):
170 self.assertEqual(src_path, root_dep.path)
171 self.assertEqual(src_repo_url, root_dep.repo_url)
172 self.assertEqual([os_platform], target_os_list)
173
174 expected_dependency_dict[root_dep.path] = root_dep
175 child1_dep.SetParent(root_dep)
176 child2_dep.SetParent(root_dep)
177 grand_child1.SetParent(child1_dep)
178
179 self.mock(git_repository, 'GitRepository', DummyGitRepository)
180 self.mock(deps_parser, 'UpdateDependencyTree', DummyUpdateDependencyTree)
181
182 dependency_dict = chromium_deps.GetChromeDependency(
183 '50.0.1234.0', os_platform)
184 self.assertEqual(expected_dependency_dict, dependency_dict)
185
130 def testGetChromiumDEPSRolls(self): 186 def testGetChromiumDEPSRolls(self):
131 def MockGetChromeDependency(revision, os_platform, _=False): 187 def MockGetChromeDependency(revision, os_platform, _=False):
132 self.assertEqual('unix', os_platform) 188 self.assertEqual('unix', os_platform)
133 if revision == 'rev2': 189 if revision == 'rev2':
134 return { 190 return {
135 'src/': Dependency('src/', 'https://url_src', 'rev2', 'DEPS'), 191 'src/': Dependency('src/', 'https://url_src', 'rev2', 'DEPS'),
136 'src/dep1': Dependency('src/dep1', 'https://url_dep1', '9', 'DEPS'), 192 'src/dep1': Dependency('src/dep1', 'https://url_dep1', '9', 'DEPS'),
137 'src/dep2': Dependency('src/dep2', 'https://url_dep2', '5', 'DEPS'), 193 'src/dep2': Dependency('src/dep2', 'https://url_dep2', '5', 'DEPS'),
138 'src/dep4': Dependency('src/dep4', 'https://url_dep4', '1', 'DEPS'), 194 'src/dep4': Dependency('src/dep4', 'https://url_dep4', '1', 'DEPS'),
139 } 195 }
(...skipping 27 matching lines...) Expand all
167 'old_revision': '3', 223 'old_revision': '3',
168 'new_revision': None, 224 'new_revision': None,
169 }, 225 },
170 ] 226 ]
171 227
172 deps_rolls = chromium_deps.GetChromiumDEPSRolls('rev1', 'rev2', 'unix') 228 deps_rolls = chromium_deps.GetChromiumDEPSRolls('rev1', 'rev2', 'unix')
173 self.assertEqual(expected_deps_rolls, 229 self.assertEqual(expected_deps_rolls,
174 [roll.ToDict() for roll in deps_rolls]) 230 [roll.ToDict() for roll in deps_rolls])
175 231
176 def testGetDEPSRollsDict(self): 232 def testGetDEPSRollsDict(self):
177 def _MockGetChromiumDEPSRolls(*_): 233 def _MockGetChromiumDEPSRolls(old_revision, new_revision, _, **kargs):
178 return [ 234 dependency_rolls = [
179 DependencyRoll('src/dep1', 'https://url_dep1', '7', '9'), 235 DependencyRoll('src/dep1', 'https://url_dep1', '7', '9'),
180 DependencyRoll('src/dep2', 'https://url_dep2', '3', None) 236 DependencyRoll('src/dep2', 'https://url_dep2', '3', None)
181 ] 237 ]
238 if not kargs['skip_chromium_roll']:
239 dependency_rolls.append(DependencyRoll(
240 'src/',
241 'https://chromium.googlesource.com/chromium/src.git',
242 old_revision, new_revision))
243
244 return dependency_rolls
182 245
183 self.mock(chromium_deps, 'GetChromiumDEPSRolls', 246 self.mock(chromium_deps, 'GetChromiumDEPSRolls',
184 _MockGetChromiumDEPSRolls) 247 _MockGetChromiumDEPSRolls)
185 248
249 expected_deps_rolls_skip_chromium = [
250 DependencyRoll('src/dep1', 'https://url_dep1', '7', '9'),
251 DependencyRoll('src/dep2', 'https://url_dep2', '3', None)
252 ]
253 self.assertEqual(
254 chromium_deps.GetChromiumDEPSRolls('4', '5', 'all',
255 skip_chromium_roll=True),
256 expected_deps_rolls_skip_chromium)
257
186 expected_deps_rolls_dict = { 258 expected_deps_rolls_dict = {
187 'src/dep1': DependencyRoll('src/dep1', 'https://url_dep1', '7', '9'), 259 'src/dep1': DependencyRoll('src/dep1', 'https://url_dep1', '7', '9'),
188 'src/dep2': DependencyRoll('src/dep2', 'https://url_dep2', '3', None), 260 'src/dep2': DependencyRoll('src/dep2', 'https://url_dep2', '3', None),
189 'src/': DependencyRoll( 261 'src/': DependencyRoll(
190 'src/', 262 'src/',
191 'https://chromium.googlesource.com/chromium/src.git', '4', '5'), 263 'https://chromium.googlesource.com/chromium/src.git', '4', '5'),
192 } 264 }
193
194 self.assertEqual(chromium_deps.GetDEPSRollsDict('4', '5', 'all'), 265 self.assertEqual(chromium_deps.GetDEPSRollsDict('4', '5', 'all'),
195 expected_deps_rolls_dict) 266 expected_deps_rolls_dict)
196 267
268 def testIsChromeVersion(self):
269 self.assertTrue(chromium_deps.IsChromeVersion('50.0.1234.1'))
270 self.assertFalse(chromium_deps.IsChromeVersion('a.b.c.e'))
271 self.assertFalse(chromium_deps.IsChromeVersion('502.021.2.0.123'))
OLDNEW
« no previous file with comments | « appengine/findit/common/http_client_appengine.py ('k') | appengine/findit/common/test/dependency_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698