345
345
base_inv, None, "somerevid", [], objs.__getitem__,
346
346
(None, DEFAULT_FILE_MODE), DummyStoreUpdater(),
347
347
self._mapping.generate_file_id)
348
self.assertEquals(set([('git:bla', 'somerevid')]), self._texts.keys())
349
self.assertEquals(self._texts.get_record_stream([('git:bla', 'somerevid')],
348
self.assertEqual(set([('git:bla', 'somerevid')]), self._texts.keys())
349
self.assertEqual(self._texts.get_record_stream([('git:bla', 'somerevid')],
350
350
"unordered", True).next().get_bytes_as("fulltext"), "bar")
351
self.assertEquals(1, len(ret))
352
self.assertEquals(None, ret[0][0])
353
self.assertEquals("bla", ret[0][1])
351
self.assertEqual(1, len(ret))
352
self.assertEqual(None, ret[0][0])
353
self.assertEqual("bla", ret[0][1])
355
self.assertEquals(False, ie.executable)
356
self.assertEquals("file", ie.kind)
357
self.assertEquals("somerevid", ie.revision)
358
self.assertEquals(osutils.sha_strings(["bar"]), ie.text_sha1)
355
self.assertEqual(False, ie.executable)
356
self.assertEqual("file", ie.kind)
357
self.assertEqual("somerevid", ie.revision)
358
self.assertEqual(osutils.sha_strings(["bar"]), ie.text_sha1)
360
360
def test_import_tree_empty_root(self):
361
361
base_inv = Inventory(root_id=None)
365
365
None, "somerevid", [], {tree.id: tree}.__getitem__,
366
366
(None, stat.S_IFDIR), DummyStoreUpdater(),
367
367
self._mapping.generate_file_id)
368
self.assertEquals(child_modes, {})
369
self.assertEquals(set([("TREE_ROOT", 'somerevid')]), self._texts.keys())
370
self.assertEquals(1, len(ret))
371
self.assertEquals(None, ret[0][0])
372
self.assertEquals("", ret[0][1])
368
self.assertEqual(child_modes, {})
369
self.assertEqual(set([("TREE_ROOT", 'somerevid')]), self._texts.keys())
370
self.assertEqual(1, len(ret))
371
self.assertEqual(None, ret[0][0])
372
self.assertEqual("", ret[0][1])
374
self.assertEquals(False, ie.executable)
375
self.assertEquals("directory", ie.kind)
376
self.assertEquals({}, ie.children)
377
self.assertEquals("somerevid", ie.revision)
378
self.assertEquals(None, ie.text_sha1)
374
self.assertEqual(False, ie.executable)
375
self.assertEqual("directory", ie.kind)
376
self.assertEqual({}, ie.children)
377
self.assertEqual("somerevid", ie.revision)
378
self.assertEqual(None, ie.text_sha1)
380
380
def test_import_tree_empty(self):
381
381
base_inv = Inventory()
385
385
{ tree.id: tree }.__getitem__,
386
386
(None, stat.S_IFDIR), DummyStoreUpdater(),
387
387
self._mapping.generate_file_id)
388
self.assertEquals(child_modes, {})
389
self.assertEquals(set([("git:bla", 'somerevid')]), self._texts.keys())
390
self.assertEquals(1, len(ret))
391
self.assertEquals(None, ret[0][0])
392
self.assertEquals("bla", ret[0][1])
388
self.assertEqual(child_modes, {})
389
self.assertEqual(set([("git:bla", 'somerevid')]), self._texts.keys())
390
self.assertEqual(1, len(ret))
391
self.assertEqual(None, ret[0][0])
392
self.assertEqual("bla", ret[0][1])
394
self.assertEquals("directory", ie.kind)
395
self.assertEquals(False, ie.executable)
396
self.assertEquals({}, ie.children)
397
self.assertEquals("somerevid", ie.revision)
398
self.assertEquals(None, ie.text_sha1)
394
self.assertEqual("directory", ie.kind)
395
self.assertEqual(False, ie.executable)
396
self.assertEqual({}, ie.children)
397
self.assertEqual("somerevid", ie.revision)
398
self.assertEqual(None, ie.text_sha1)
400
400
def test_import_tree_with_file(self):
401
401
base_inv = Inventory()
402
402
blob = Blob.from_string("bar1")
404
tree.add("foo", stat.S_IFREG | 0644, blob.id)
404
tree.add("foo", stat.S_IFREG | 0o644, blob.id)
405
405
objects = { blob.id: blob, tree.id: tree }
406
406
ret, child_modes = import_git_tree(self._texts, self._mapping, "bla", "bla",
407
407
(None, tree.id), base_inv, None, "somerevid", [],
408
408
objects.__getitem__, (None, stat.S_IFDIR), DummyStoreUpdater(),
409
409
self._mapping.generate_file_id)
410
self.assertEquals(child_modes, {})
411
self.assertEquals(2, len(ret))
412
self.assertEquals(None, ret[0][0])
413
self.assertEquals("bla", ret[0][1])
414
self.assertEquals(None, ret[1][0])
415
self.assertEquals("bla/foo", ret[1][1])
410
self.assertEqual(child_modes, {})
411
self.assertEqual(2, len(ret))
412
self.assertEqual(None, ret[0][0])
413
self.assertEqual("bla", ret[0][1])
414
self.assertEqual(None, ret[1][0])
415
self.assertEqual("bla/foo", ret[1][1])
417
self.assertEquals("directory", ie.kind)
417
self.assertEqual("directory", ie.kind)
419
self.assertEquals("file", ie.kind)
420
self.assertEquals("git:bla/foo", ie.file_id)
421
self.assertEquals("somerevid", ie.revision)
422
self.assertEquals(osutils.sha_strings(["bar1"]), ie.text_sha1)
423
self.assertEquals(False, ie.executable)
419
self.assertEqual("file", ie.kind)
420
self.assertEqual("git:bla/foo", ie.file_id)
421
self.assertEqual("somerevid", ie.revision)
422
self.assertEqual(osutils.sha_strings(["bar1"]), ie.text_sha1)
423
self.assertEqual(False, ie.executable)
425
425
def test_import_tree_with_unusual_mode_file(self):
426
426
base_inv = Inventory()
427
427
blob = Blob.from_string("bar1")
429
tree.add("foo", stat.S_IFREG | 0664, blob.id)
429
tree.add("foo", stat.S_IFREG | 0o664, blob.id)
430
430
objects = { blob.id: blob, tree.id: tree }
431
431
ret, child_modes = import_git_tree(self._texts, self._mapping,
432
432
"bla", "bla", (None, tree.id), base_inv, None, "somerevid", [],
433
433
objects.__getitem__, (None, stat.S_IFDIR), DummyStoreUpdater(),
434
434
self._mapping.generate_file_id)
435
self.assertEquals(child_modes, { "bla/foo": stat.S_IFREG | 0664 })
435
self.assertEqual(child_modes, { "bla/foo": stat.S_IFREG | 0o664 })
437
437
def test_import_tree_with_file_exe(self):
438
438
base_inv = Inventory(root_id=None)
439
439
blob = Blob.from_string("bar")
441
tree.add("foo", 0100755, blob.id)
441
tree.add("foo", 0o100755, blob.id)
442
442
objects = { blob.id: blob, tree.id: tree }
443
443
ret, child_modes = import_git_tree(self._texts, self._mapping, "", "",
444
444
(None, tree.id), base_inv, None, "somerevid", [],
445
445
objects.__getitem__, (None, stat.S_IFDIR), DummyStoreUpdater(),
446
446
self._mapping.generate_file_id)
447
self.assertEquals(child_modes, {})
448
self.assertEquals(2, len(ret))
449
self.assertEquals(None, ret[0][0])
450
self.assertEquals("", ret[0][1])
451
self.assertEquals(None, ret[1][0])
452
self.assertEquals("foo", ret[1][1])
447
self.assertEqual(child_modes, {})
448
self.assertEqual(2, len(ret))
449
self.assertEqual(None, ret[0][0])
450
self.assertEqual("", ret[0][1])
451
self.assertEqual(None, ret[1][0])
452
self.assertEqual("foo", ret[1][1])
454
self.assertEquals("directory", ie.kind)
454
self.assertEqual("directory", ie.kind)
456
self.assertEquals("file", ie.kind)
457
self.assertEquals(True, ie.executable)
456
self.assertEqual("file", ie.kind)
457
self.assertEqual(True, ie.executable)
459
459
def test_directory_converted_to_submodule(self):
460
460
base_inv = Inventory()
463
463
othertree = Blob.from_string("someotherthing")
464
464
blob = Blob.from_string("bar")
466
tree.add("bar", 0160000, blob.id)
466
tree.add("bar", 0o160000, blob.id)
467
467
objects = { tree.id: tree }
468
468
ret, child_modes = import_git_submodule(self._texts, self._mapping, "foo", "foo",
469
469
(tree.id, othertree.id), base_inv, base_inv.root.file_id, "somerevid", [],
470
objects.__getitem__, (stat.S_IFDIR | 0755, S_IFGITLINK), DummyStoreUpdater(),
470
objects.__getitem__, (stat.S_IFDIR | 0o755, S_IFGITLINK), DummyStoreUpdater(),
471
471
self._mapping.generate_file_id)
472
self.assertEquals(child_modes, {})
473
self.assertEquals(2, len(ret))
474
self.assertEquals(ret[0], ("foo/bar", None, base_inv.path2id("foo/bar"), None))
475
self.assertEquals(ret[1][:3], ("foo", "foo", self._mapping.generate_file_id("foo")))
472
self.assertEqual(child_modes, {})
473
self.assertEqual(2, len(ret))
474
self.assertEqual(ret[0], ("foo/bar", None, base_inv.path2id("foo/bar"), None))
475
self.assertEqual(ret[1][:3], ("foo", "foo", self._mapping.generate_file_id("foo")))
477
self.assertEquals(ie.kind, "tree-reference")
477
self.assertEqual(ie.kind, "tree-reference")