| 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 |