Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Side by Side Diff: prebuilt_unittest.py

Issue 5370005: Treat packages with missing SHA1 as not duplicated. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git@master
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chromite/lib/binpkg.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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()
OLDNEW
« no previous file with comments | « chromite/lib/binpkg.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698