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