/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_tree/test_walkdirs.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2020-08-23 01:15:41 UTC
  • mfrom: (7520.1.4 merge-3.1)
  • Revision ID: breezy.the.bot@gmail.com-20200823011541-nv0oh7nzaganx2qy
Merge lp:brz/3.1.

Merged from https://code.launchpad.net/~jelmer/brz/merge-3.1/+merge/389690

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
        dirblocks = {}
34
34
 
35
35
        dirblocks[''] = [
36
 
            ('0file', '0file', 'file', None,
37
 
                tree.path2id('0file'), 'file'),
38
 
            ('1top-dir', '1top-dir', 'directory', None,
39
 
                tree.path2id('1top-dir'), 'directory'),
40
 
            (u'2utf\u1234file', u'2utf\u1234file', 'file', None,
41
 
                tree.path2id(u'2utf\u1234file'), 'file')]
 
36
            ('0file', '0file', 'file', None, 'file'),
 
37
            ('1top-dir', '1top-dir', 'directory', None, 'directory'),
 
38
            (u'2utf\u1234file', u'2utf\u1234file', 'file', None, 'file')]
42
39
 
43
40
        dirblocks['1top-dir'] = [
44
41
            ('1top-dir/0file-in-1topdir', '0file-in-1topdir',
45
 
             'file', None, tree.path2id('1top-dir/0file-in-1topdir'), 'file')]
 
42
             'file', None, 'file')]
46
43
        if empty_dirs_present:
47
44
            dirblocks['1top-dir'].append(
48
45
                ('1top-dir/1dir-in-1topdir', '1dir-in-1topdir', 'directory',
49
46
                 None if empty_dirs_are_versioned else os.stat(
50
47
                     tree.abspath('1top-dir/1dir-in-1topdir')),
51
 
                 tree.path2id('1top-dir/1dir-in-1topdir'),
52
48
                 'directory' if empty_dirs_are_versioned else None))
53
49
            dirblocks['1top-dir/1dir-in-1topdir'] = []
54
50
        if symlinks:
55
51
            dirblocks[''].append(
56
 
                ('symlink', 'symlink', 'symlink', None,
57
 
                 tree.path2id('symlink'), 'symlink'))
58
 
        return [((path, tree.path2id(path)), list(sorted(entries)))
 
52
                ('symlink', 'symlink', 'symlink', None, 'symlink'))
 
53
        return [(path, list(sorted(entries)))
59
54
                for (path, entries) in sorted(dirblocks.items())]
60
55
 
61
56
    def test_walkdir_root(self):
62
57
        tree = self.get_tree_with_subdirs_and_all_supported_content_types(
63
58
            has_symlinks())
64
 
        tree.lock_read()
65
 
        expected_dirblocks = self.get_all_subdirs_expected(
66
 
            tree, has_symlinks())
67
 
        # test that its iterable by iterating
68
 
        result = []
69
 
        for dirinfo, block in tree.walkdirs():
70
 
            newblock = []
71
 
            for row in block:
72
 
                if row[4] is not None:
73
 
                    newblock.append(row[0:3] + (None,) + row[4:])
74
 
                else:
75
 
                    newblock.append(row)
76
 
            result.append((dirinfo, newblock))
77
 
        tree.unlock()
 
59
        with tree.lock_read():
 
60
            expected_dirblocks = self.get_all_subdirs_expected(
 
61
                tree, has_symlinks())
 
62
            # test that its iterable by iterating
 
63
            result = []
 
64
            for dirinfo, block in tree.walkdirs():
 
65
                newblock = []
 
66
                for row in block:
 
67
                    if row[4] is not None:
 
68
                        newblock.append(row[0:3] + (None,) + row[4:])
 
69
                    else:
 
70
                        newblock.append(row)
 
71
                result.append((dirinfo, newblock))
78
72
        # check each return value for debugging ease.
79
73
        for pos, item in enumerate(expected_dirblocks):
80
74
            self.assertEqual(item, result[pos])
85
79
            has_symlinks())
86
80
        # test that its iterable by iterating
87
81
        result = []
88
 
        tree.lock_read()
89
 
        expected_dirblocks = self.get_all_subdirs_expected(
90
 
            tree, has_symlinks())[1:]
91
 
        for dirinfo, block in tree.walkdirs('1top-dir'):
92
 
            newblock = []
93
 
            for row in block:
94
 
                if row[4] is not None:
95
 
                    newblock.append(row[0:3] + (None,) + row[4:])
96
 
                else:
97
 
                    newblock.append(row)
98
 
            result.append((dirinfo, newblock))
99
 
        tree.unlock()
 
82
        with tree.lock_read():
 
83
            expected_dirblocks = self.get_all_subdirs_expected(
 
84
                tree, has_symlinks())[1:]
 
85
            for dirinfo, block in tree.walkdirs('1top-dir'):
 
86
                newblock = []
 
87
                for row in block:
 
88
                    if row[4] is not None:
 
89
                        newblock.append(row[0:3] + (None,) + row[4:])
 
90
                    else:
 
91
                        newblock.append(row)
 
92
                result.append((dirinfo, newblock))
100
93
        # check each return value for debugging ease.
101
94
        for pos, item in enumerate(expected_dirblocks):
102
95
            self.assertEqual(item, result[pos])
106
99
        work_tree = self.make_branch_and_tree('tree')
107
100
        self.build_tree(['tree/file', 'tree/dir/'])
108
101
        work_tree.add(['file', 'dir'])
109
 
        file_id = work_tree.path2id('file')
110
 
        dir_id = work_tree.path2id('dir')
111
102
        os.unlink('tree/file')
112
103
        os.rmdir('tree/dir')
113
104
        tree = self._convert_tree(work_tree)
116
107
        if tree.path2id('file') is None:
117
108
            raise tests.TestNotApplicable(
118
109
                'Tree type cannot represent dangling ids.')
119
 
        expected = [(('', work_tree.path2id('')), ([
120
 
            ('dir', 'dir', 'unknown', None, dir_id, 'directory')]
 
110
        expected = [('', ([
 
111
            ('dir', 'dir', 'unknown', None, 'directory')]
121
112
            if tree.has_versioned_directories() else []) +
122
 
            [('file', 'file', 'unknown', None, file_id, 'file')])]
 
113
            [('file', 'file', 'unknown', None, 'file')])]
123
114
        if tree.has_versioned_directories():
124
 
            expected.append((('dir', dir_id), []))
 
115
            expected.append(('dir', []))
125
116
        self.assertEqual(expected, list(tree.walkdirs()))