| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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')) |
| OLD | NEW |