OLD | NEW |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 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 unittest | 5 import unittest |
6 | 6 |
7 from catapult_base.dependency_manager import dependency_info | 7 from catapult_base.dependency_manager import dependency_info |
8 | 8 |
9 class DependencyInfoTest(unittest.TestCase): | 9 class DependencyInfoTest(unittest.TestCase): |
10 def testInitRequiredInfo(self): | 10 def testInitRequiredInfo(self): |
(...skipping 12 matching lines...) Expand all Loading... |
23 self.assertFalse(empty_di.cs_hash) | 23 self.assertFalse(empty_di.cs_hash) |
24 self.assertFalse(empty_di.download_path) | 24 self.assertFalse(empty_di.download_path) |
25 self.assertFalse(empty_di.cs_remote_path) | 25 self.assertFalse(empty_di.cs_remote_path) |
26 self.assertFalse(empty_di.local_paths) | 26 self.assertFalse(empty_di.local_paths) |
27 self.assertEqual('dep', empty_di.dependency) | 27 self.assertEqual('dep', empty_di.dependency) |
28 self.assertEqual('plat', empty_di.platform) | 28 self.assertEqual('plat', empty_di.platform) |
29 self.assertEqual(['config_file'], empty_di.config_files) | 29 self.assertEqual(['config_file'], empty_di.config_files) |
30 | 30 |
31 def testInitLocalPaths(self): | 31 def testInitLocalPaths(self): |
32 dep_info = dependency_info.DependencyInfo( | 32 dep_info = dependency_info.DependencyInfo( |
33 'dep', 'platform', 'config_file', local_paths=['path0', 'path1']) | 33 'dep', 'platform', 'config_file', |
| 34 local_paths=['path0', ['path1', 'path2']]) |
34 self.assertEqual('dep', dep_info.dependency) | 35 self.assertEqual('dep', dep_info.dependency) |
35 self.assertEqual('platform', dep_info.platform) | 36 self.assertEqual('platform', dep_info.platform) |
36 self.assertEqual(['config_file'], dep_info.config_files) | 37 self.assertEqual(['config_file'], dep_info.config_files) |
37 self.assertEqual(['path0', 'path1'], dep_info.local_paths) | 38 self.assertEqual([['path0'], ['path1', 'path2']], dep_info.local_paths) |
38 self.assertFalse(dep_info.version_in_cs) | 39 self.assertFalse(dep_info.version_in_cs) |
39 self.assertFalse(dep_info.cs_hash) | 40 self.assertFalse(dep_info.cs_hash) |
40 self.assertFalse(dep_info.cs_bucket) | 41 self.assertFalse(dep_info.cs_bucket) |
41 self.assertFalse(dep_info.cs_remote_path) | 42 self.assertFalse(dep_info.cs_remote_path) |
42 self.assertFalse(dep_info.download_path) | 43 self.assertFalse(dep_info.download_path) |
43 | 44 |
44 def testInitMinimumCloudStorageInfo(self): | 45 def testInitMinimumCloudStorageInfo(self): |
45 # Must specify cloud storage information atomically. | 46 # Must specify cloud storage information atomically. |
46 self.assertRaises(ValueError, dependency_info.DependencyInfo, 'dep', 'plat', | 47 self.assertRaises(ValueError, dependency_info.DependencyInfo, 'dep', 'plat', |
47 'config_file', cs_bucket='cs_b') | 48 'config_file', cs_bucket='cs_b') |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 cs_remote_path='cs_remote_path', version_in_cs='version_in_cs', | 115 cs_remote_path='cs_remote_path', version_in_cs='version_in_cs', |
115 local_paths=['path']) | 116 local_paths=['path']) |
116 self.assertEqual('dep', dep_info.dependency) | 117 self.assertEqual('dep', dep_info.dependency) |
117 self.assertEqual('platform', dep_info.platform) | 118 self.assertEqual('platform', dep_info.platform) |
118 self.assertEqual(['config_file'], dep_info.config_files) | 119 self.assertEqual(['config_file'], dep_info.config_files) |
119 self.assertEqual('cs_hash', dep_info.cs_hash) | 120 self.assertEqual('cs_hash', dep_info.cs_hash) |
120 self.assertEqual('cs_bucket', dep_info.cs_bucket) | 121 self.assertEqual('cs_bucket', dep_info.cs_bucket) |
121 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) | 122 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) |
122 self.assertEqual('download_path', dep_info.download_path) | 123 self.assertEqual('download_path', dep_info.download_path) |
123 self.assertEqual('version_in_cs', dep_info.version_in_cs) | 124 self.assertEqual('version_in_cs', dep_info.version_in_cs) |
124 self.assertEqual(['path'], dep_info.local_paths) | 125 self.assertEqual([['path']], dep_info.local_paths) |
125 | 126 |
126 def testInitCloudStorageInfo(self): | 127 def testInitCloudStorageInfo(self): |
127 dep_info = dependency_info.DependencyInfo( | 128 dep_info = dependency_info.DependencyInfo( |
128 'dep', 'platform', 'config_file', cs_bucket='cs_bucket', | 129 'dep', 'platform', 'config_file', cs_bucket='cs_bucket', |
129 cs_hash='cs_hash', download_path='download_path', | 130 cs_hash='cs_hash', download_path='download_path', |
130 cs_remote_path='cs_remote_path') | 131 cs_remote_path='cs_remote_path') |
131 self.assertEqual('dep', dep_info.dependency) | 132 self.assertEqual('dep', dep_info.dependency) |
132 self.assertEqual('platform', dep_info.platform) | 133 self.assertEqual('platform', dep_info.platform) |
133 self.assertEqual(['config_file'], dep_info.config_files) | 134 self.assertEqual(['config_file'], dep_info.config_files) |
134 self.assertEqual('cs_hash', dep_info.cs_hash) | 135 self.assertEqual('cs_hash', dep_info.cs_hash) |
135 self.assertEqual('cs_bucket', dep_info.cs_bucket) | 136 self.assertEqual('cs_bucket', dep_info.cs_bucket) |
136 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) | 137 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) |
137 self.assertEqual('download_path', dep_info.download_path) | 138 self.assertEqual('download_path', dep_info.download_path) |
138 self.assertFalse(dep_info.version_in_cs) | 139 self.assertFalse(dep_info.version_in_cs) |
139 self.assertFalse(dep_info.local_paths) | 140 self.assertFalse(dep_info.local_paths) |
140 | 141 |
141 dep_info = dependency_info.DependencyInfo( | 142 dep_info = dependency_info.DependencyInfo( |
142 'dep', 'platform', 'config_file', cs_bucket='cs_bucket', | 143 'dep', 'platform', 'config_file', cs_bucket='cs_bucket', |
143 cs_hash='cs_hash', download_path='download_path', | 144 cs_hash='cs_hash', download_path='download_path', |
144 cs_remote_path='cs_remote_path', local_paths=['path']) | 145 cs_remote_path='cs_remote_path', local_paths=['path']) |
145 self.assertEqual('dep', dep_info.dependency) | 146 self.assertEqual('dep', dep_info.dependency) |
146 self.assertEqual('platform', dep_info.platform) | 147 self.assertEqual('platform', dep_info.platform) |
147 self.assertEqual(['config_file'], dep_info.config_files) | 148 self.assertEqual(['config_file'], dep_info.config_files) |
148 self.assertEqual('cs_hash', dep_info.cs_hash) | 149 self.assertEqual('cs_hash', dep_info.cs_hash) |
149 self.assertEqual('cs_bucket', dep_info.cs_bucket) | 150 self.assertEqual('cs_bucket', dep_info.cs_bucket) |
150 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) | 151 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) |
151 self.assertEqual('download_path', dep_info.download_path) | 152 self.assertEqual('download_path', dep_info.download_path) |
152 self.assertFalse(dep_info.version_in_cs) | 153 self.assertFalse(dep_info.version_in_cs) |
153 self.assertEqual(['path'], dep_info.local_paths) | 154 self.assertEqual([['path']], dep_info.local_paths) |
154 | 155 |
155 def testInitAllInfo(self): | 156 def testInitAllInfo(self): |
156 dep_info = dependency_info.DependencyInfo( | 157 dep_info = dependency_info.DependencyInfo( |
157 'dep', 'platform', 'config_file', cs_bucket='cs_bucket', | 158 'dep', 'platform', 'config_file', cs_bucket='cs_bucket', |
158 cs_hash='cs_hash', download_path='download_path', | 159 cs_hash='cs_hash', download_path='download_path', |
159 cs_remote_path='cs_remote_path', local_paths=['path0', 'path1']) | 160 cs_remote_path='cs_remote_path', |
| 161 local_paths=[['path0', 'path1'], 'path2']) |
160 self.assertEqual('dep', dep_info.dependency) | 162 self.assertEqual('dep', dep_info.dependency) |
161 self.assertEqual('platform', dep_info.platform) | 163 self.assertEqual('platform', dep_info.platform) |
162 self.assertEqual(['config_file'], dep_info.config_files) | 164 self.assertEqual(['config_file'], dep_info.config_files) |
163 self.assertEqual('cs_hash', dep_info.cs_hash) | 165 self.assertEqual('cs_hash', dep_info.cs_hash) |
164 self.assertEqual('cs_bucket', dep_info.cs_bucket) | 166 self.assertEqual('cs_bucket', dep_info.cs_bucket) |
165 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) | 167 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) |
166 self.assertEqual('download_path', dep_info.download_path) | 168 self.assertEqual('download_path', dep_info.download_path) |
167 self.assertEqual(['path0', 'path1'], dep_info.local_paths) | 169 self.assertEqual([['path0', 'path1'], ['path2']], dep_info.local_paths) |
168 self.assertFalse(dep_info.version_in_cs) | 170 self.assertFalse(dep_info.version_in_cs) |
169 | 171 |
170 dep_info = dependency_info.DependencyInfo( | 172 dep_info = dependency_info.DependencyInfo( |
171 'dep', 'platform', 'config_file', cs_bucket='cs_bucket', | 173 'dep', 'platform', 'config_file', cs_bucket='cs_bucket', |
172 cs_hash='cs_hash', download_path='download_path', | 174 cs_hash='cs_hash', download_path='download_path', |
173 cs_remote_path='cs_remote_path', version_in_cs='version_in_cs', | 175 cs_remote_path='cs_remote_path', version_in_cs='version_in_cs', |
174 local_paths=['path0', 'path1']) | 176 local_paths=[['path0', 'path1'], 'path2']) |
175 self.assertEqual('dep', dep_info.dependency) | 177 self.assertEqual('dep', dep_info.dependency) |
176 self.assertEqual('platform', dep_info.platform) | 178 self.assertEqual('platform', dep_info.platform) |
177 self.assertEqual(['config_file'], dep_info.config_files) | 179 self.assertEqual(['config_file'], dep_info.config_files) |
178 self.assertEqual('cs_hash', dep_info.cs_hash) | 180 self.assertEqual('cs_hash', dep_info.cs_hash) |
179 self.assertEqual('cs_bucket', dep_info.cs_bucket) | 181 self.assertEqual('cs_bucket', dep_info.cs_bucket) |
180 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) | 182 self.assertEqual('cs_remote_path', dep_info.cs_remote_path) |
181 self.assertEqual('download_path', dep_info.download_path) | 183 self.assertEqual('download_path', dep_info.download_path) |
182 self.assertEqual('version_in_cs', dep_info.version_in_cs) | 184 self.assertEqual('version_in_cs', dep_info.version_in_cs) |
183 self.assertEqual(['path0', 'path1'], dep_info.local_paths) | 185 self.assertEqual([['path0', 'path1'], ['path2']], dep_info.local_paths) |
184 | 186 |
185 | 187 |
186 def testUpdateRequiredArgsConflicts(self): | 188 def testUpdateRequiredArgsConflicts(self): |
187 dep_info1 = dependency_info.DependencyInfo( | 189 dep_info1 = dependency_info.DependencyInfo( |
188 'dep1', 'platform1', 'config_file1', local_paths=['path0', 'path1']) | 190 'dep1', 'platform1', 'config_file1', local_paths=['path0', 'path1']) |
189 dep_info2 = dependency_info.DependencyInfo( | 191 dep_info2 = dependency_info.DependencyInfo( |
190 'dep1', 'platform2', 'config_file2', local_paths=['path0', 'path2']) | 192 'dep1', 'platform2', 'config_file2', local_paths=['path0', 'path2']) |
191 dep_info3 = dependency_info.DependencyInfo( | 193 dep_info3 = dependency_info.DependencyInfo( |
192 'dep2', 'platform1', 'config_file3', local_paths=['path0', 'path3']) | 194 'dep2', 'platform1', 'config_file3', local_paths=['path0', 'path3']) |
193 self.assertRaises(ValueError, dep_info1.Update, dep_info2) | 195 self.assertRaises(ValueError, dep_info1.Update, dep_info2) |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 dep_info4 = dependency_info.DependencyInfo( | 282 dep_info4 = dependency_info.DependencyInfo( |
281 'dep1', 'platform1', 'config_file4', cs_bucket='cs_bucket', | 283 'dep1', 'platform1', 'config_file4', cs_bucket='cs_bucket', |
282 cs_hash='cs_hash', download_path='download_path', | 284 cs_hash='cs_hash', download_path='download_path', |
283 cs_remote_path='cs_remote_path', local_paths=['path4']) | 285 cs_remote_path='cs_remote_path', local_paths=['path4']) |
284 | 286 |
285 dep_info1.Update(dep_info2) | 287 dep_info1.Update(dep_info2) |
286 self.assertEqual('cs_bucket', dep_info1.cs_bucket) | 288 self.assertEqual('cs_bucket', dep_info1.cs_bucket) |
287 self.assertEqual('cs_hash', dep_info1.cs_hash) | 289 self.assertEqual('cs_hash', dep_info1.cs_hash) |
288 self.assertEqual('download_path', dep_info1.download_path) | 290 self.assertEqual('download_path', dep_info1.download_path) |
289 self.assertEqual('cs_remote_path', dep_info1.cs_remote_path) | 291 self.assertEqual('cs_remote_path', dep_info1.cs_remote_path) |
290 self.assertEqual(['path1', 'path2'], dep_info1.local_paths) | 292 self.assertEqual([['path1'], ['path2']], dep_info1.local_paths) |
291 | 293 |
292 dep_info1.Update(dep_info3) | 294 dep_info1.Update(dep_info3) |
293 self.assertEqual('cs_bucket', dep_info1.cs_bucket) | 295 self.assertEqual('cs_bucket', dep_info1.cs_bucket) |
294 self.assertEqual('cs_hash', dep_info1.cs_hash) | 296 self.assertEqual('cs_hash', dep_info1.cs_hash) |
295 self.assertEqual('download_path', dep_info1.download_path) | 297 self.assertEqual('download_path', dep_info1.download_path) |
296 self.assertEqual('cs_remote_path', dep_info1.cs_remote_path) | 298 self.assertEqual('cs_remote_path', dep_info1.cs_remote_path) |
297 self.assertEqual(['path1', 'path2', 'path3'], dep_info1.local_paths) | 299 self.assertEqual([['path1'], ['path2'], ['path3']], dep_info1.local_paths) |
298 | 300 |
299 self.assertRaises(ValueError, dep_info1.Update, dep_info4) | 301 self.assertRaises(ValueError, dep_info1.Update, dep_info4) |
300 | 302 |
301 def testAppendConflictingLocalFiles(self): | 303 def testAppendConflictingLocalFiles(self): |
302 dep_info1 = dependency_info.DependencyInfo( | 304 dep_info1 = dependency_info.DependencyInfo( |
303 'dep1', 'platform1', 'config_file1', | 305 'dep1', 'platform1', 'config_file1', |
304 local_paths=['path0', 'path1', 'path3', 'path5', 'path6']) | 306 local_paths=['path0', ['path1', 'path3'], 'path5', 'path6']) |
305 dep_info2 = dependency_info.DependencyInfo( | 307 dep_info2 = dependency_info.DependencyInfo( |
306 'dep1', 'platform1', 'config_file2', | 308 'dep1', 'platform1', 'config_file2', |
307 local_paths=['path0', 'path2', 'path4', 'path5']) | 309 local_paths=[['path0', 'path2'], 'path4', 'path5']) |
| 310 dep_info3 = dependency_info.DependencyInfo( |
| 311 'dep1', 'platform1', 'config_file3', |
| 312 local_paths=[['path1', 'path2', 'path4', 'path7', 'path8'], 'path6', |
| 313 'path9']) |
308 | 314 |
309 expected_local_paths = ['path0', 'path1', 'path3', 'path5', 'path6', | 315 expected_local_paths_1 = [['path0'], ['path1', 'path3'], ['path5'], |
310 'path2', 'path4'] | 316 ['path6'], ['path2'], ['path4']] |
| 317 expected_local_paths_2 = [ |
| 318 ['path0'], ['path1', 'path3'], ['path5'], ['path6'], ['path2'], |
| 319 ['path4'], ['path7', 'path8'], ['path9']] |
| 320 |
311 dep_info1.Update(dep_info2) | 321 dep_info1.Update(dep_info2) |
312 self.assertEquals(expected_local_paths, dep_info1.local_paths) | 322 self.assertEquals(expected_local_paths_1, dep_info1.local_paths) |
| 323 dep_info1.Update(dep_info3) |
| 324 self.assertEquals(expected_local_paths_2, dep_info1.local_paths) |
313 | 325 |
OLD | NEW |