110
110
expected_dirblocks = [
111
111
(('', tree.path2id('')),
112
[dirblocks[1].as_tuple(), dirblocks[3].as_tuple(),
113
dirblocks[0].as_tuple()]
112
([dirblocks[1].as_tuple(), dirblocks[3].as_tuple()]
113
if (tree.has_versioned_directories() or file_status != self.missing) else []) +
114
[dirblocks[0].as_tuple()]
115
116
(dirblocks[1].as_dir_tuple(),
116
117
[dirblocks[2].as_tuple()]
118
(dirblocks[3].as_dir_tuple(),
120
if (tree.has_versioned_directories() or
121
file_status != self.missing):
122
expected_dirblocks.append(
123
(dirblocks[3].as_dir_tuple(),
123
127
expected_dirblocks = [e for e in expected_dirblocks
124
128
if len(e) > 0 and len(e[0]) > 0 and e[0][0] == prefix]
196
200
link2_stat = os.lstat('link2')
197
201
expected_dirblocks = [
198
202
(('', tree.path2id('')),
199
[('dir1', 'dir1', 'file', dir1_stat, tree.path2id('dir1'), 'directory'),
200
('dir2', 'dir2', 'symlink', dir2_stat, tree.path2id('dir2'), 'directory'),
203
[('dir1', 'dir1', 'file', dir1_stat, tree.path2id('dir1'),
204
'directory' if tree.has_versioned_directories() else None),
205
('dir2', 'dir2', 'symlink', dir2_stat, tree.path2id('dir2'),
206
'directory' if tree.has_versioned_directories() else None),
201
207
('file1', 'file1', 'directory', file1_stat, tree.path2id('file1'), 'file'),
202
208
('file2', 'file2', 'symlink', file2_stat, tree.path2id('file2'), 'file'),
203
209
('link1', 'link1', 'file', link1_stat, tree.path2id('link1'), 'symlink'),
204
210
('link2', 'link2', 'directory', link2_stat, tree.path2id('link2'), 'symlink'),
213
if tree.has_versioned_directories():
214
expected_dirblocks.extend([
207
215
(('dir1', tree.path2id('dir1')),
225
result = list(tree.walkdirs())
233
with tree.lock_read():
234
result = list(tree.walkdirs())
227
235
# check each return value for debugging ease.
228
236
for pos, item in enumerate(expected_dirblocks):
229
237
self.assertEqual(item, result[pos])
242
250
self.build_tree(changed_paths)
243
251
dir1_stat = os.lstat('dir1')
244
252
file1_stat = os.lstat('file1')
245
expected_dirblocks = [
246
(('', tree.path2id('')),
247
[('dir1', 'dir1', 'file', dir1_stat, tree.path2id('dir1'), 'directory'),
248
('file1', 'file1', 'directory', file1_stat, tree.path2id('file1'), 'file'),
251
(('dir1', tree.path2id('dir1')),
261
result = list(tree.walkdirs())
253
if tree.has_versioned_directories():
254
expected_dirblocks = [
255
(('', tree.path2id('')),
256
[('dir1', 'dir1', 'file', dir1_stat, tree.path2id('dir1'), 'directory'),
257
('file1', 'file1', 'directory', file1_stat, tree.path2id('file1'), 'file'),
260
(('dir1', tree.path2id('dir1')),
270
expected_dirblocks = [
271
(('', tree.path2id('')),
272
[('dir1', 'dir1', 'file', dir1_stat, tree.path2id('dir1'), None),
273
('file1', 'file1', 'directory', file1_stat, tree.path2id('file1'), 'file'),
281
with tree.lock_read():
282
result = list(tree.walkdirs())
263
283
# check each return value for debugging ease.
264
284
for pos, item in enumerate(expected_dirblocks):
265
285
self.assertEqual(item, result[pos])