OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import copy | 6 import copy |
7 import mox | 7 import mox |
8 import os | 8 import os |
9 import prebuilt | 9 import prebuilt |
10 import shutil | 10 import shutil |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 | 214 |
215 def testNormalIndex(self): | 215 def testNormalIndex(self): |
216 pkgindex = SimplePackageIndex() | 216 pkgindex = SimplePackageIndex() |
217 db = {} | 217 db = {} |
218 pkgindex._PopulateDuplicateDB(db) | 218 pkgindex._PopulateDuplicateDB(db) |
219 self.assertEqual(len(db), 3) | 219 self.assertEqual(len(db), 3) |
220 self.assertEqual(db['1'], 'http://www.example.com/public1.tbz2') | 220 self.assertEqual(db['1'], 'http://www.example.com/public1.tbz2') |
221 self.assertEqual(db['2'], 'http://www.example.com/foo.tgz') | 221 self.assertEqual(db['2'], 'http://www.example.com/foo.tgz') |
222 self.assertEqual(db['3'], 'http://www.example.com/private.tbz2') | 222 self.assertEqual(db['3'], 'http://www.example.com/private.tbz2') |
223 | 223 |
| 224 def testMissingSHA1(self): |
| 225 db = {} |
| 226 pkgindex = SimplePackageIndex() |
| 227 del pkgindex.packages[0]['SHA1'] |
| 228 pkgindex._PopulateDuplicateDB(db) |
| 229 self.assertEqual(len(db), 2) |
| 230 self.assertEqual(db['2'], 'http://www.example.com/foo.tgz') |
| 231 self.assertEqual(db['3'], 'http://www.example.com/private.tbz2') |
| 232 |
224 def testFailedPopulate(self): | 233 def testFailedPopulate(self): |
225 db = {} | 234 db = {} |
226 pkgindex = SimplePackageIndex(header=False) | 235 pkgindex = SimplePackageIndex(header=False) |
227 self.assertRaises(KeyError, pkgindex._PopulateDuplicateDB, db) | 236 self.assertRaises(KeyError, pkgindex._PopulateDuplicateDB, db) |
228 pkgindex = SimplePackageIndex() | 237 pkgindex = SimplePackageIndex() |
229 del pkgindex.packages[0]['CPV'] | 238 del pkgindex.packages[0]['CPV'] |
230 self.assertRaises(KeyError, pkgindex._PopulateDuplicateDB, db) | 239 self.assertRaises(KeyError, pkgindex._PopulateDuplicateDB, db) |
231 pkgindex = SimplePackageIndex() | |
232 del pkgindex.packages[0]['SHA1'] | |
233 self.assertRaises(KeyError, pkgindex._PopulateDuplicateDB, db) | |
234 | 240 |
235 | 241 |
236 class TestResolveDuplicateUploads(unittest.TestCase): | 242 class TestResolveDuplicateUploads(unittest.TestCase): |
237 | 243 |
238 def testEmptyList(self): | 244 def testEmptyList(self): |
239 pkgindex = SimplePackageIndex() | 245 pkgindex = SimplePackageIndex() |
240 pristine = SimplePackageIndex() | 246 pristine = SimplePackageIndex() |
241 uploads = pkgindex.ResolveDuplicateUploads([]) | 247 uploads = pkgindex.ResolveDuplicateUploads([]) |
242 self.assertEqual(uploads, pristine.packages) | 248 self.assertEqual(uploads, pristine.packages) |
243 self.assertEqual(pkgindex.packages, pristine.packages) | 249 self.assertEqual(pkgindex.packages, pristine.packages) |
(...skipping 10 matching lines...) Expand all Loading... |
254 | 260 |
255 def testDuplicates(self): | 261 def testDuplicates(self): |
256 pkgindex = SimplePackageIndex() | 262 pkgindex = SimplePackageIndex() |
257 dup_pkgindex = SimplePackageIndex() | 263 dup_pkgindex = SimplePackageIndex() |
258 expected_pkgindex = SimplePackageIndex() | 264 expected_pkgindex = SimplePackageIndex() |
259 for pkg in expected_pkgindex.packages: | 265 for pkg in expected_pkgindex.packages: |
260 pkg.setdefault('PATH', pkg['CPV'] + '.tbz2') | 266 pkg.setdefault('PATH', pkg['CPV'] + '.tbz2') |
261 uploads = pkgindex.ResolveDuplicateUploads([dup_pkgindex]) | 267 uploads = pkgindex.ResolveDuplicateUploads([dup_pkgindex]) |
262 self.assertEqual(pkgindex.packages, expected_pkgindex.packages) | 268 self.assertEqual(pkgindex.packages, expected_pkgindex.packages) |
263 | 269 |
| 270 def testMissingSHA1(self): |
| 271 db = {} |
| 272 pkgindex = SimplePackageIndex() |
| 273 dup_pkgindex = SimplePackageIndex() |
| 274 expected_pkgindex = SimplePackageIndex() |
| 275 del pkgindex.packages[0]['SHA1'] |
| 276 del expected_pkgindex.packages[0]['SHA1'] |
| 277 for pkg in expected_pkgindex.packages[1:]: |
| 278 pkg.setdefault('PATH', pkg['CPV'] + '.tbz2') |
| 279 uploads = pkgindex.ResolveDuplicateUploads([dup_pkgindex]) |
| 280 self.assertEqual(pkgindex.packages, expected_pkgindex.packages) |
| 281 |
264 | 282 |
265 class TestWritePackageIndex(unittest.TestCase): | 283 class TestWritePackageIndex(unittest.TestCase): |
266 | 284 |
267 def setUp(self): | 285 def setUp(self): |
268 self.mox = mox.Mox() | 286 self.mox = mox.Mox() |
269 | 287 |
270 def tearDown(self): | 288 def tearDown(self): |
271 self.mox.UnsetStubs() | 289 self.mox.UnsetStubs() |
272 self.mox.VerifyAll() | 290 self.mox.VerifyAll() |
273 | 291 |
274 def testSimple(self): | 292 def testSimple(self): |
275 pkgindex = SimplePackageIndex() | 293 pkgindex = SimplePackageIndex() |
276 self.mox.StubOutWithMock(pkgindex, 'Write') | 294 self.mox.StubOutWithMock(pkgindex, 'Write') |
277 pkgindex.Write(mox.IgnoreArg()) | 295 pkgindex.Write(mox.IgnoreArg()) |
278 self.mox.ReplayAll() | 296 self.mox.ReplayAll() |
279 f = pkgindex.WriteToNamedTemporaryFile() | 297 f = pkgindex.WriteToNamedTemporaryFile() |
280 self.assertEqual(f.read(), '') | 298 self.assertEqual(f.read(), '') |
281 | 299 |
282 | 300 |
283 if __name__ == '__main__': | 301 if __name__ == '__main__': |
284 unittest.main() | 302 unittest.main() |
OLD | NEW |