/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_workingtree/test_symlinks.py

  • Committer: Jelmer Vernooij
  • Date: 2018-04-02 00:52:27 UTC
  • mfrom: (6939 work)
  • mto: This revision was merged to the branch mainline in revision 7274.
  • Revision ID: jelmer@jelmer.uk-20180402005227-pecflp1mvdjrjqd6
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
    def test_smart_add_symlink(self):
40
40
        tree = self.make_branch_and_tree('tree')
41
41
        self.build_tree_contents([
42
 
            ('tree/link@', 'target'),
 
42
            ('tree/link@', b'target'),
43
43
            ])
44
44
        tree.smart_add(['tree/link'])
45
 
        self.assertIsNot(None, tree.path2id('link'))
46
 
        self.assertIs(None, tree.path2id('target'))
47
 
        self.assertEqual('symlink',
48
 
            tree.kind(tree.path2id('link')))
 
45
        self.assertTrue(tree.is_versioned('link'))
 
46
        self.assertFalse(tree.is_versioned('target'))
 
47
        self.assertEqual('symlink', tree.kind('link'))
49
48
 
50
49
    def test_smart_add_symlink_pointing_outside(self):
51
50
        tree = self.make_branch_and_tree('tree')
53
52
            ('tree/link@', '../../../../target'),
54
53
            ])
55
54
        tree.smart_add(['tree/link'])
56
 
        self.assertIsNot(None, tree.path2id('link'))
57
 
        self.assertIs(None, tree.path2id('target'))
58
 
        self.assertEqual('symlink',
59
 
            tree.kind(tree.path2id('link')))
 
55
        self.assertTrue(tree.is_versioned('link'))
 
56
        self.assertFalse(tree.is_versioned('target'))
 
57
        self.assertEqual('symlink', tree.kind('link'))
60
58
 
61
59
    def test_add_file_under_symlink(self):
62
 
        # similar to 
 
60
        # similar to
63
61
        # https://bugs.launchpad.net/bzr/+bug/192859/comments/3
64
62
        tree = self.make_branch_and_tree('tree')
65
63
        self.build_tree_contents([
66
64
            ('tree/link@', 'dir'),
67
65
            ('tree/dir/',),
68
 
            ('tree/dir/file', 'content'),
 
66
            ('tree/dir/file', b'content'),
69
67
            ])
70
 
        self.assertEqual(
71
 
            tree.smart_add(['tree/link/file']),
72
 
            ([u'dir', u'dir/file'], {}))
 
68
        if tree.has_versioned_directories():
 
69
            self.assertEqual(
 
70
                tree.smart_add(['tree/link/file']),
 
71
                ([u'dir', u'dir/file'], {}))
 
72
        else:
 
73
            self.assertEqual(
 
74
                tree.smart_add(['tree/link/file']),
 
75
                ([u'dir/file'], {}))
 
76
 
73
77
        # should add the actual parent directory, not the apparent parent
74
78
        # (which is actually a symlink)
75
 
        self.assertTrue(tree.path2id('dir/file'))
76
 
        self.assertTrue(tree.path2id('dir'))
77
 
        self.assertIs(None, tree.path2id('link'))
78
 
        self.assertIs(None, tree.path2id('link/file'))
 
79
        self.assertTrue(tree.is_versioned('dir/file'))
 
80
        self.assertTrue(tree.is_versioned('dir'))
 
81
        self.assertFalse(tree.is_versioned('link'))
 
82
        self.assertFalse(tree.is_versioned('link/file'))
79
83
 
80
84
 
81
85
class TestKindChanges(TestCaseWithWorkingTree):
97
101
        os.unlink('tree/a')
98
102
        self.build_tree_contents([
99
103
            ('tree/a/',),
100
 
            ('tree/a/f', 'content'),
 
104
            ('tree/a/f', b'content'),
101
105
            ])
102
106
        tree.smart_add(['tree/a/f'])
103
107
        tree.commit('change to dir')
104
108
        tree.lock_read()
105
109
        self.addCleanup(tree.unlock)
106
110
        self.assertEqual([], list(tree.iter_changes(tree.basis_tree())))
107
 
        if tree._format.supports_versioned_directories:
108
 
            self.assertEqual(
109
 
                ['a', 'a/f'], sorted(info[0] for info in tree.list_files()))
110
 
        else:
111
 
            self.assertEqual([], list(tree.list_files()))
 
111
        self.assertEqual(
 
112
            ['a', 'a/f'], sorted(info[0] for info in tree.list_files()))
112
113
 
113
114
    def test_dir_changes_to_symlink(self):
114
115
        # <https://bugs.launchpad.net/bzr/+bug/192859>:
120
121
        tree = self.make_branch_and_tree('tree')
121
122
        self.build_tree_contents([
122
123
            ('tree/a/',),
123
 
            ('tree/a/file', 'content'),
 
124
            ('tree/a/file', b'content'),
124
125
            ])
125
126
        tree.smart_add(['tree/a'])
126
127
        tree.commit('add dir')
173
174
        self.build_tree_contents([
174
175
            ('link@', 'tree'),
175
176
            ('tree/outerlink@', '/not/there'),
176
 
            ('tree/content', 'hello'),
 
177
            ('tree/content', b'hello'),
177
178
            ('tree/sublink@', 'subdir'),
178
179
            ('tree/subdir/',),
179
 
            ('tree/subdir/subcontent', 'subcontent stuff')
 
180
            ('tree/subdir/subcontent', b'subcontent stuff')
180
181
            ])