153
150
(False, False), False)],
154
151
list(preview_tree.iter_changes(revision_tree)))
153
def assertTreeChanges(self, expected, actual, tree):
154
# TODO(jelmer): Turn this into a matcher?
155
actual = list(actual)
156
if tree.supports_setting_file_ids():
157
self.assertEqual(expected, actual)
160
TreeChange(path=c.path, changed_content=c.changed_content,
161
versioned=c.versioned, name=c.name,
162
kind=c.kind, executable=c.executable,
163
copied=c.copied) for c in expected]
165
TreeChange(path=c.path, changed_content=c.changed_content,
166
versioned=c.versioned, name=c.name,
167
kind=c.kind, executable=c.executable,
168
copied=c.copied) for c in actual]
169
self.assertEqual(expected, actual)
156
171
def test_include_unchanged_succeeds(self):
157
172
revision_tree, preview_tree = self.get_tree_and_preview_tree()
158
173
changes = preview_tree.iter_changes(revision_tree,
159
174
include_unchanged=True)
161
176
root_id = revision_tree.path2id('')
162
root_entry = (root_id, ('', ''), False, (True, True), (None, None),
163
('', ''), ('directory', 'directory'), (False, False), False)
164
a_entry = (revision_tree.path2id('a'), ('a', 'a'), True, (True, True),
165
(root_id, root_id), ('a', 'a'), ('file', 'file'),
166
(False, False), False)
177
root_entry = InventoryTreeChange(
178
root_id, ('', ''), False, (True, True), (None, None),
179
('', ''), ('directory', 'directory'), (False, False), False)
180
a_entry = InventoryTreeChange(
181
revision_tree.path2id('a'), ('a', 'a'), True, (True, True),
182
(root_id, root_id), ('a', 'a'), ('file', 'file'),
183
(False, False), False)
169
self.assertEqual([root_entry, a_entry], list(changes))
185
self.assertTreeChanges([root_entry, a_entry], changes, preview_tree)
171
187
def test_specific_files(self):
172
188
revision_tree, preview_tree = self.get_tree_and_preview_tree()
185
200
changes = preview_tree.iter_changes(revision_tree,
186
201
want_unversioned=True)
187
202
root_id = revision_tree.path2id('')
188
a_entry = (revision_tree.path2id('a'), ('a', 'a'), True, (True, True),
189
(root_id, root_id), ('a', 'a'), ('file', 'file'),
190
(False, False), False)
203
a_entry = InventoryTreeChange(
204
revision_tree.path2id('a'), ('a', 'a'), True, (True, True),
205
(root_id, root_id), ('a', 'a'), ('file', 'file'),
206
(False, False), False)
192
208
self.assertEqual([a_entry], list(changes))
304
320
preview.new_file('new', preview.trans_id_tree_path('unchanged'),
305
321
[b'contents'], b'new-id')
306
322
preview_tree = preview.get_preview_tree()
307
self.assertEqual(b'new-id', preview_tree.path2id('unchanged/new'))
323
self.assertTrue(preview_tree.is_versioned('unchanged/new'))
324
if self.workingtree_format.supports_setting_file_ids:
325
self.assertEqual(b'new-id', preview_tree.path2id('unchanged/new'))
309
327
def test_path2id_moved(self):
310
328
tree = self.make_branch_and_tree('tree')
516
534
(revid1, b'a\n'),
518
536
annotation = preview_tree.annotate_iter(
537
'newname', default_revision=b'me:')
538
self.assertEqual(expected, annotation)
539
annotation = preview_tree.annotate_iter(
519
540
'file', default_revision=b'me:')
520
self.assertEqual(expected, annotation)
541
self.assertIs(None, annotation)
522
543
def test_annotate_deleted(self):
523
544
tree = self.make_branch_and_tree('tree')
543
564
def test_is_executable(self):
544
565
preview = self.get_empty_preview()
545
preview.new_file('file', preview.root, [b'a\nb\nc\n'], b'file-id')
546
preview.set_executability(True, preview.trans_id_file_id(b'file-id'))
566
trans_id = preview.new_file('file', preview.root, [b'a\nb\nc\n'], b'file-id')
567
preview.set_executability(True, trans_id)
547
568
preview_tree = preview.get_preview_tree()
548
569
self.assertEqual(True, preview_tree.is_executable('file'))