41
41
class TestInventory(TestCaseWithInventory):
43
43
def make_init_inventory(self):
44
inv = inventory.Inventory('tree-root')
45
inv.revision = 'initial-rev'
46
inv.root.revision = 'initial-rev'
44
inv = inventory.Inventory(b'tree-root')
45
inv.revision = b'initial-rev'
46
inv.root.revision = b'initial-rev'
47
47
return self.inv_to_test_inv(inv)
49
49
def make_file(self, file_id, name, parent_id, content='content\n',
50
revision='new-test-rev'):
50
revision=b'new-test-rev'):
51
51
ie = InventoryFile(file_id, name, parent_id)
52
52
ie.text_sha1 = osutils.sha_string(content)
53
53
ie.text_size = len(content)
62
62
def prepare_inv_with_nested_dirs(self):
63
inv = inventory.Inventory('tree-root')
64
for args in [('src', 'directory', 'src-id'),
65
('doc', 'directory', 'doc-id'),
66
('src/hello.c', 'file', 'hello-id'),
67
('src/bye.c', 'file', 'bye-id'),
68
('zz', 'file', 'zz-id'),
69
('src/sub/', 'directory', 'sub-id'),
70
('src/zz.c', 'file', 'zzc-id'),
71
('src/sub/a', 'file', 'a-id'),
72
('Makefile', 'file', 'makefile-id')]:
63
inv = inventory.Inventory(b'tree-root')
64
for args in [('src', 'directory', b'src-id'),
65
('doc', 'directory', b'doc-id'),
66
('src/hello.c', 'file', b'hello-id'),
67
('src/bye.c', 'file', b'bye-id'),
68
('zz', 'file', b'zz-id'),
69
('src/sub/', 'directory', b'sub-id'),
70
('src/zz.c', 'file', b'zzc-id'),
71
('src/sub/a', 'file', b'a-id'),
72
('Makefile', 'file', b'makefile-id')]:
73
73
ie = inv.add_path(*args)
74
74
if args[1] == 'file':
75
75
ie.text_sha1 = osutils.sha_string(b'content\n')
86
86
def test_add(self):
87
87
inv = self.make_init_inventory()
88
88
inv = inv.create_by_apply_delta([
89
(None, "a", "a-id", self.make_file('a-id', 'a', 'tree-root')),
91
self.assertEqual('a', inv.id2path('a-id'))
89
(None, "a", "a-id", self.make_file(b'a-id', 'a', b'tree-root')),
91
self.assertEqual('a', inv.id2path(b'a-id'))
93
93
def test_delete(self):
94
94
inv = self.make_init_inventory()
95
95
inv = inv.create_by_apply_delta([
96
(None, "a", "a-id", self.make_file('a-id', 'a', 'tree-root')),
98
self.assertEqual('a', inv.id2path('a-id'))
96
(None, "a", "a-id", self.make_file(b'a-id', 'a', b'tree-root')),
98
self.assertEqual('a', inv.id2path(b'a-id'))
99
99
inv = inv.create_by_apply_delta([
100
("a", None, "a-id", None),
102
self.assertRaises(errors.NoSuchId, inv.id2path, 'a-id')
100
("a", None, b"a-id", None),
102
self.assertRaises(errors.NoSuchId, inv.id2path, b'a-id')
104
104
def test_rename(self):
105
105
inv = self.make_init_inventory()
106
106
inv = inv.create_by_apply_delta([
107
(None, "a", "a-id", self.make_file('a-id', 'a', 'tree-root')),
109
self.assertEqual('a', inv.id2path('a-id'))
107
(None, "a", b"a-id", self.make_file(b'a-id', 'a', b'tree-root')),
109
self.assertEqual('a', inv.id2path(b'a-id'))
111
111
b_ie = self.make_file(a_ie.file_id, "b", a_ie.parent_id)
112
inv = inv.create_by_apply_delta([("a", "b", "a-id", b_ie)], 'new-rev-2')
113
self.assertEqual("b", inv.id2path('a-id'))
112
inv = inv.create_by_apply_delta([("a", "b", b"a-id", b_ie)], b'new-rev-2')
113
self.assertEqual("b", inv.id2path(b'a-id'))
115
115
def test_illegal(self):
116
116
# A file-id cannot appear in a delta more than once
117
117
inv = self.make_init_inventory()
118
118
self.assertRaises(errors.InconsistentDelta, inv.create_by_apply_delta, [
119
(None, "a", "id-1", self.make_file('id-1', 'a', 'tree-root')),
120
(None, "b", "id-1", self.make_file('id-1', 'b', 'tree-root')),
119
(None, "a", b"id-1", self.make_file(b'id-1', 'a', b'tree-root')),
120
(None, "b", b"id-1", self.make_file(b'id-1', 'b', b'tree-root')),
124
124
class TestInventoryReads(TestInventory):
154
154
def test_non_directory_children(self):
155
155
"""Test path2id when a parent directory has no children"""
156
156
inv = inventory.Inventory('tree-root')
157
inv.add(self.make_file('file-id', 'file', 'tree-root'))
158
inv.add(self.make_link('link-id', 'link', 'tree-root'))
157
inv.add(self.make_file(b'file-id', 'file', 'tree-root'))
158
inv.add(self.make_link(b'link-id', 'link', 'tree-root'))
159
159
self.assertIs(None, inv.path2id('file/subfile'))
160
160
self.assertIs(None, inv.path2id('link/subfile'))