345
345
base_inv, None, "somerevid", [], objs.__getitem__,
346
346
(None, DEFAULT_FILE_MODE), DummyStoreUpdater(),
347
347
self._mapping.generate_file_id)
348
self.assertEqual(set([('git:bla', 'somerevid')]), self._texts.keys())
349
self.assertEqual(self._texts.get_record_stream([('git:bla', 'somerevid')],
348
self.assertEqual(set([(b'git:bla', b'somerevid')]), self._texts.keys())
349
self.assertEqual(self._texts.get_record_stream([(b'git:bla', b'somerevid')],
350
350
"unordered", True).next().get_bytes_as("fulltext"), "bar")
351
351
self.assertEqual(1, len(ret))
352
352
self.assertEqual(None, ret[0][0])
363
363
ret, child_modes = import_git_tree(self._texts, self._mapping, "", "",
364
364
(None, tree.id), base_inv,
365
None, "somerevid", [], {tree.id: tree}.__getitem__,
365
None, b"somerevid", [], {tree.id: tree}.__getitem__,
366
366
(None, stat.S_IFDIR), DummyStoreUpdater(),
367
367
self._mapping.generate_file_id)
368
368
self.assertEqual(child_modes, {})
369
self.assertEqual(set([("TREE_ROOT", 'somerevid')]), self._texts.keys())
369
self.assertEqual(set([(b"TREE_ROOT", b'somerevid')]), self._texts.keys())
370
370
self.assertEqual(1, len(ret))
371
371
self.assertEqual(None, ret[0][0])
372
372
self.assertEqual("", ret[0][1])
374
374
self.assertEqual(False, ie.executable)
375
375
self.assertEqual("directory", ie.kind)
376
376
self.assertEqual({}, ie.children)
377
self.assertEqual("somerevid", ie.revision)
377
self.assertEqual(b"somerevid", ie.revision)
378
378
self.assertEqual(None, ie.text_sha1)
380
380
def test_import_tree_empty(self):
381
381
base_inv = Inventory()
383
383
ret, child_modes = import_git_tree(self._texts, self._mapping, "bla", "bla",
384
(None, tree.id), base_inv, None, "somerevid", [],
384
(None, tree.id), base_inv, None, b"somerevid", [],
385
385
{ tree.id: tree }.__getitem__,
386
386
(None, stat.S_IFDIR), DummyStoreUpdater(),
387
387
self._mapping.generate_file_id)
388
388
self.assertEqual(child_modes, {})
389
self.assertEqual(set([("git:bla", 'somerevid')]), self._texts.keys())
389
self.assertEqual(set([(b"git:bla", b'somerevid')]), self._texts.keys())
390
390
self.assertEqual(1, len(ret))
391
391
self.assertEqual(None, ret[0][0])
392
392
self.assertEqual("bla", ret[0][1])
394
394
self.assertEqual("directory", ie.kind)
395
395
self.assertEqual(False, ie.executable)
396
396
self.assertEqual({}, ie.children)
397
self.assertEqual("somerevid", ie.revision)
397
self.assertEqual(b"somerevid", ie.revision)
398
398
self.assertEqual(None, ie.text_sha1)
400
400
def test_import_tree_with_file(self):
401
401
base_inv = Inventory()
402
blob = Blob.from_string("bar1")
402
blob = Blob.from_string(b"bar1")
404
tree.add("foo", stat.S_IFREG | 0o644, blob.id)
404
tree.add(b"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
(None, tree.id), base_inv, None, "somerevid", [],
407
(None, tree.id), base_inv, None, b"somerevid", [],
408
408
objects.__getitem__, (None, stat.S_IFDIR), DummyStoreUpdater(),
409
409
self._mapping.generate_file_id)
410
410
self.assertEqual(child_modes, {})
417
417
self.assertEqual("directory", ie.kind)
419
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)
420
self.assertEqual(b"git:bla/foo", ie.file_id)
421
self.assertEqual(b"somerevid", ie.revision)
422
self.assertEqual(osutils.sha_strings([b"bar1"]), ie.text_sha1)
423
423
self.assertEqual(False, ie.executable)
425
425
def test_import_tree_with_unusual_mode_file(self):
426
426
base_inv = Inventory()
427
blob = Blob.from_string("bar1")
427
blob = Blob.from_string(b"bar1")
429
tree.add("foo", stat.S_IFREG | 0o664, blob.id)
429
tree.add(b"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
"bla", "bla", (None, tree.id), base_inv, None, "somerevid", [],
432
"bla", "bla", (None, tree.id), base_inv, None, b"somerevid", [],
433
433
objects.__getitem__, (None, stat.S_IFDIR), DummyStoreUpdater(),
434
434
self._mapping.generate_file_id)
435
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
blob = Blob.from_string("bar")
439
blob = Blob.from_string(b"bar")
441
tree.add("foo", 0o100755, blob.id)
441
tree.add(b"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
(None, tree.id), base_inv, None, "somerevid", [],
444
(None, tree.id), base_inv, None, b"somerevid", [],
445
445
objects.__getitem__, (None, stat.S_IFDIR), DummyStoreUpdater(),
446
446
self._mapping.generate_file_id)
447
447
self.assertEqual(child_modes, {})
460
460
base_inv = Inventory()
461
461
base_inv.add_path("foo", "directory")
462
462
base_inv.add_path("foo/bar", "file")
463
othertree = Blob.from_string("someotherthing")
464
blob = Blob.from_string("bar")
463
othertree = Blob.from_string(b"someotherthing")
464
blob = Blob.from_string(b"bar")
466
tree.add("bar", 0o160000, blob.id)
466
tree.add(b"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
(tree.id, othertree.id), base_inv, base_inv.root.file_id, "somerevid", [],
469
(tree.id, othertree.id), base_inv, base_inv.root.file_id, b"somerevid", [],
470
470
objects.__getitem__, (stat.S_IFDIR | 0o755, S_IFGITLINK), DummyStoreUpdater(),
471
471
self._mapping.generate_file_id)
472
472
self.assertEqual(child_modes, {})