42
42
def make_inventory(self, root_id):
43
43
return self.inventory_class(root_id=root_id)
45
def prepare_inv_with_nested_dirs(self):
46
inv = self.make_inventory('tree-root')
47
for args in [('src', 'directory', 'src-id'),
48
('doc', 'directory', 'doc-id'),
49
('src/hello.c', 'file', 'hello-id'),
50
('src/bye.c', 'file', 'bye-id'),
51
('zz', 'file', 'zz-id'),
52
('src/sub/', 'directory', 'sub-id'),
53
('src/zz.c', 'file', 'zzc-id'),
54
('src/sub/a', 'file', 'a-id'),
55
('Makefile', 'file', 'makefile-id')]:
46
60
class TestInventoryUpdates(TestInventory):
209
223
], [(path, ie.file_id) for path, ie in inv.iter_entries()])
211
225
def test_iter_entries_by_dir(self):
212
inv = self.make_inventory('tree-root')
213
for args in [('src', 'directory', 'src-id'),
214
('doc', 'directory', 'doc-id'),
215
('src/hello.c', 'file', 'hello-id'),
216
('src/bye.c', 'file', 'bye-id'),
217
('zz', 'file', 'zz-id'),
218
('src/sub/', 'directory', 'sub-id'),
219
('src/zz.c', 'file', 'zzc-id'),
220
('src/sub/a', 'file', 'a-id'),
221
('Makefile', 'file', 'makefile-id')]:
226
inv = self. prepare_inv_with_nested_dirs()
223
227
self.assertEqual([
224
228
('', 'tree-root'),
225
229
('Makefile', 'makefile-id'),
283
287
('src/bye.c', 'bye-id'),
284
288
], [(path, ie.file_id) for path, ie in inv.iter_entries_by_dir(
285
289
specific_file_ids=('bye-id',), yield_parents=True)])
292
class TestInventoryFiltering(TestInventory):
294
def test_inv_filter_empty(self):
295
inv = self.prepare_inv_with_nested_dirs()
296
new_inv = inv.filter([])
299
], [(path, ie.file_id) for path, ie in new_inv.iter_entries()])
301
def test_inv_filter_files(self):
302
inv = self.prepare_inv_with_nested_dirs()
303
new_inv = inv.filter(['zz-id', 'hello-id', 'a-id'])
307
('src/hello.c', 'hello-id'),
308
('src/sub', 'sub-id'),
309
('src/sub/a', 'a-id'),
311
], [(path, ie.file_id) for path, ie in new_inv.iter_entries()])
313
def test_inv_filter_dirs(self):
314
inv = self.prepare_inv_with_nested_dirs()
315
new_inv = inv.filter(['doc-id', 'sub-id'])
320
('src/sub', 'sub-id'),
321
('src/sub/a', 'a-id'),
322
], [(path, ie.file_id) for path, ie in new_inv.iter_entries()])
324
def test_inv_filter_files_and_dirs(self):
325
inv = self.prepare_inv_with_nested_dirs()
326
new_inv = inv.filter(['makefile-id', 'src-id'])
329
('Makefile', 'makefile-id'),
331
('src/bye.c', 'bye-id'),
332
('src/hello.c', 'hello-id'),
333
('src/sub', 'sub-id'),
334
('src/sub/a', 'a-id'),
335
('src/zz.c', 'zzc-id'),
336
], [(path, ie.file_id) for path, ie in new_inv.iter_entries()])