/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/per_intertree/test_compare.py

  • Committer: Jelmer Vernooij
  • Date: 2020-08-06 01:40:59 UTC
  • mto: (7490.40.89 work)
  • mto: This revision was merged to the branch mainline in revision 7521.
  • Revision ID: jelmer@jelmer.uk-20200806014059-l31j72v4sj98197d
Split out InventoryTreeChange from TreeChange.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
    tests,
26
26
    )
27
27
from breezy.osutils import has_symlinks
28
 
from breezy.tree import TreeChange
 
28
from breezy.bzr.inventorytree import InventoryTreeChange
29
29
from breezy.tests.per_intertree import TestCaseWithTwoTrees
30
30
from breezy.tests import (
31
31
    features,
572
572
 
573
573
    def added(self, tree, path):
574
574
        entry = self.get_path_entry(tree, path)
575
 
        return TreeChange(
 
575
        return InventoryTreeChange(
576
576
            entry.file_id, (None, path), True, (False, True), (None, entry.parent_id),
577
577
            (None, entry.name), (None, entry.kind),
578
578
            (None, entry.executable))
587
587
 
588
588
    def changed_content(self, tree, path):
589
589
        entry = self.get_path_entry(tree, path)
590
 
        return TreeChange(
 
590
        return InventoryTreeChange(
591
591
            entry.file_id, (path, path), True, (True, True),
592
592
            (entry.parent_id, entry.parent_id),
593
593
            (entry.name, entry.name), (entry.kind, entry.kind),
596
596
    def kind_changed(self, from_tree, to_tree, from_path, to_path):
597
597
        old_entry = self.get_path_entry(from_tree, from_path)
598
598
        new_entry = self.get_path_entry(to_tree, to_path)
599
 
        return TreeChange(
 
599
        return InventoryTreeChange(
600
600
            new_entry.file_id, (from_path, to_path), True, (True, True),
601
601
            (old_entry.parent_id, new_entry.parent_id),
602
602
            (old_entry.name, new_entry.name),
607
607
        _, from_basename = os.path.split(from_path)
608
608
        _, to_basename = os.path.split(to_path)
609
609
        # missing files have both paths, but no kind.
610
 
        return TreeChange(
 
610
        return InventoryTreeChange(
611
611
            file_id, (from_path, to_path), True, (True, True),
612
612
            (parent_id, parent_id),
613
613
            (from_basename, to_basename), (kind, None), (False, False))
614
614
 
615
615
    def deleted(self, tree, path):
616
616
        entry = self.get_path_entry(tree, path)
617
 
        return TreeChange(
 
617
        return InventoryTreeChange(
618
618
            entry.file_id, (path, None), True, (True, False), (entry.parent_id, None),
619
619
            (entry.name, None), (entry.kind, None),
620
620
            (entry.executable, None))
622
622
    def renamed(self, from_tree, to_tree, from_path, to_path, content_changed):
623
623
        from_entry = self.get_path_entry(from_tree, from_path)
624
624
        to_entry = self.get_path_entry(to_tree, to_path)
625
 
        return TreeChange(
 
625
        return InventoryTreeChange(
626
626
            to_entry.file_id, (from_path, to_path), content_changed, (True, True),
627
627
            (from_entry.parent_id, to_entry.parent_id),
628
628
            (from_entry.name, to_entry.name),
635
635
        name = entry.name
636
636
        kind = entry.kind
637
637
        executable = entry.executable
638
 
        return TreeChange(
 
638
        return InventoryTreeChange(
639
639
            entry.file_id, (path, path), False, (True, True),
640
640
            (parent, parent), (name, name), (kind, kind),
641
641
            (executable, executable))
644
644
        """Create an unversioned result."""
645
645
        _, basename = os.path.split(path)
646
646
        kind = tree._comparison_data(None, path)[0]
647
 
        return TreeChange(
 
647
        return InventoryTreeChange(
648
648
            None, (None, path), True, (False, False), (None, None),
649
649
            (None, basename), (None, kind),
650
650
            (None, False))
1111
1111
        self.not_applicable_if_missing_in('file', tree1)
1112
1112
        root_id = tree1.path2id('')
1113
1113
        expected = [
1114
 
            TreeChange(b'file-id', ('file', None), False, (True, False),
1115
 
                       (root_id, None), ('file', None), (None, None), (False, None))]
 
1114
            InventoryTreeChange(
 
1115
                b'file-id', ('file', None), False, (True, False),
 
1116
                (root_id, None), ('file', None), (None, None), (False, None))]
1116
1117
        self.assertEqual(expected, self.do_iter_changes(tree1, tree2))
1117
1118
 
1118
1119
    def test_only_in_target_and_missing(self):
1126
1127
        self.not_applicable_if_missing_in('file', tree2)
1127
1128
        root_id = tree1.path2id('')
1128
1129
        expected = [
1129
 
            TreeChange(b'file-id', (None, 'file'), False, (False, True),
1130
 
                       (None, root_id), (None, 'file'), (None, None), (None, False))]
 
1130
            InventoryTreeChange(
 
1131
                b'file-id', (None, 'file'), False, (False, True),
 
1132
                (None, root_id), (None, 'file'), (None, None), (None, False))]
1131
1133
        self.assertEqual(expected, self.do_iter_changes(tree1, tree2))
1132
1134
 
1133
1135
    def test_only_in_target_missing_subtree_specific_bug_367632(self):
1142
1144
        self.not_applicable_if_missing_in('a-dir', tree2)
1143
1145
        root_id = tree1.path2id('')
1144
1146
        expected = [
1145
 
            TreeChange(
 
1147
            InventoryTreeChange(
1146
1148
                b'dir-id', (None, 'a-dir'), False, (False, True),
1147
1149
                (None, root_id), (None, 'a-dir'), (None, None), (None, False)),
1148
 
            TreeChange(
 
1150
            InventoryTreeChange(
1149
1151
                b'file-id', (None, 'a-dir/a-file'), False, (False, True),
1150
1152
                (None, b'dir-id'), (None, 'a-file'), (None, None), (None, False))
1151
1153
            ]
1164
1166
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
1165
1167
        self.assertEqual(sorted([self.unchanged(tree1, ''),
1166
1168
                                 self.unchanged(tree1, 'b'),
1167
 
                                 TreeChange(
 
1169
                                 InventoryTreeChange(
1168
1170
                                     b'a-id', ('a', 'd'), True, (True, True),
1169
1171
                                     (b'root-id', b'root-id'), ('a', 'd'),
1170
1172
                                     ('file', 'file'),
1192
1194
        self.assertEqual([], list(tree2.iter_changes(tree1)))
1193
1195
        subtree1.commit('commit', rev_id=b'commit-a')
1194
1196
        self.assertEqual([
1195
 
            TreeChange(
 
1197
            InventoryTreeChange(
1196
1198
                b'root-id',
1197
1199
                (u'', u''),
1198
1200
                False,
1201
1203
                (u'', u''),
1202
1204
                ('directory', 'directory'),
1203
1205
                (False, False)),
1204
 
            TreeChange(
 
1206
            InventoryTreeChange(
1205
1207
                b'subtree-id',
1206
1208
                ('sub', 'sub',),
1207
1209
                False,