/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 bzrlib/tests/intertree_implementations/test_compare.py

Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
import os
20
20
import shutil
21
21
 
22
 
from bzrlib import errors, tests, workingtree_4
 
22
from bzrlib import (
 
23
    errors,
 
24
    tests,
 
25
    workingtree_4,
 
26
    )
23
27
from bzrlib.osutils import file_kind, has_symlinks
24
28
from bzrlib.tests import TestNotApplicable
25
29
from bzrlib.tests.intertree_implementations import TestCaseWithTwoTrees
328
332
        else:
329
333
            links_supported = False
330
334
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
 
335
        self.not_applicable_if_cannot_represent_unversioned(tree2)
331
336
        d = self.intertree_class(tree1, tree2).compare(want_unversioned=True)
332
337
        self.assertEqual([], d.added)
333
338
        self.assertEqual([], d.modified)
672
677
        shutil.rmtree('2/b')
673
678
        # TODO ? have a symlink here?
674
679
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
 
680
        self.not_applicable_if_missing_in('a', tree2)
 
681
        self.not_applicable_if_missing_in('b', tree2)
675
682
        root_id = tree1.path2id('')
676
683
        expected = sorted([
677
684
            self.missing('a-id', 'a', 'a', root_id, 'file'),
690
697
        tree2.add(['directory'], ['file-id'])
691
698
        os.rmdir('tree2/directory')
692
699
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
700
        self.not_applicable_if_missing_in('directory', tree2)
693
701
 
694
702
        root_id = tree1.path2id('')
695
703
        expected = sorted([
705
713
        tree1.add(['file'], ['file-id'])
706
714
        os.unlink('tree1/file')
707
715
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
716
        self.not_applicable_if_missing_in('file', tree1)
708
717
        root_id = tree1.path2id('')
709
 
        if not tree1.path2id('file'):
710
 
            # The locked test trees conversion could not preserve the missing
711
 
            # file status. This is normal (e.g. InterDirstateTree falls back
712
 
            # to InterTree if the basis is not a DirstateRevisionTree, and
713
 
            # revision trees cannot have missing files.
714
 
            raise TestNotApplicable()
715
718
        expected = [('file-id', ('file', None), False, (True, False),
716
719
            (root_id, None), ('file', None), (None, None), (False, None))]
717
720
        self.assertEqual(expected, self.do_iter_changes(tree1, tree2))
724
727
        tree2.add(['file'], ['file-id'])
725
728
        os.unlink('tree2/file')
726
729
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
730
        self.not_applicable_if_missing_in('file', tree2)
727
731
        root_id = tree1.path2id('')
728
732
        expected = [('file-id', (None, 'file'), False, (False, True),
729
733
            (None, root_id), (None, 'file'), (None, None), (None, False))]
842
846
        else:
843
847
            links_supported = False
844
848
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
849
        self.not_applicable_if_cannot_represent_unversioned(tree2)
845
850
        expected = [
846
851
            self.unversioned(tree2, 'file'),
847
852
            self.unversioned(tree2, 'dir'),
862
867
        else:
863
868
            links_supported = False
864
869
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
870
        self.not_applicable_if_cannot_represent_unversioned(tree2)
865
871
        expected = [
866
872
            self.unversioned(tree2, 'file'),
867
873
            self.unversioned(tree2, 'dir'),
902
908
            tree1.add(['link'], ['link-id'])
903
909
            tree2.add(['movedlink'], ['link-id'])
904
910
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
911
        self.not_applicable_if_cannot_represent_unversioned(tree2)
905
912
        root_id = tree1.path2id('')
906
913
        expected = [
907
914
            self.renamed(tree1, tree2, 'dir-id', False),
951
958
                  ['a-id', 'b-id', 'c-id', 'd-id', 'a-c-id', 'e-id'])
952
959
 
953
960
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
961
        self.not_applicable_if_cannot_represent_unversioned(tree2)
954
962
 
955
963
        self.assertEqual([], self.do_iter_changes(tree1, tree2,
956
964
                                                  want_unversioned=True))
975
983
        tree2.set_root_id(tree1.get_root_id())
976
984
        self.build_tree(['tree2/dir/', 'tree2/dir/file'])
977
985
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
 
986
        self.not_applicable_if_cannot_represent_unversioned(tree2)
978
987
        expected = [
979
988
            self.unversioned(tree2, 'dir'),
980
989
            ]
1024
1033
    def test_versioned_symlinks(self):
1025
1034
        self.requireFeature(tests.SymlinkFeature)
1026
1035
        tree1, tree2 = self.make_trees_with_symlinks()
 
1036
        self.not_applicable_if_cannot_represent_unversioned(tree2)
1027
1037
        root_id = tree1.path2id('')
1028
1038
        expected = [
1029
1039
            self.unchanged(tree1, tree1.path2id('')),
1283
1293
        tree2.add([u'\u03b1'], [a_id])
1284
1294
 
1285
1295
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
1296
        self.not_applicable_if_cannot_represent_unversioned(tree2)
1286
1297
 
1287
1298
        expected = sorted([
1288
1299
            self.unversioned(tree2, u'\u03b1/unknown_dir'),
1333
1344
        self.build_tree(['tree2/a/file', 'tree2/a/dir/', 'tree2/a/dir/subfile'])
1334
1345
 
1335
1346
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
1347
        self.not_applicable_if_cannot_represent_unversioned(tree2)
1336
1348
 
1337
1349
        expected = sorted([
1338
1350
            self.unversioned(tree2, u'a/file'),
1400
1412
        tree2.add(['a', 'c'], ['a-id', 'c-id'])
1401
1413
 
1402
1414
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
1415
        self.not_applicable_if_cannot_represent_unversioned(tree2)
1403
1416
 
1404
1417
        expected = sorted([
1405
1418
            self.deleted(tree1, 'b-id'),
1473
1486
        os.rename('tree2/a', 'tree2/a2')
1474
1487
 
1475
1488
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
1489
        self.not_applicable_if_missing_in('a', tree2)
1476
1490
 
1477
1491
        expected = sorted([
1478
1492
            self.missing('a-id', 'a', 'a', tree2.get_root_id(), 'file'),