Story #6218 ยป 6218-iterator-collection-listing.patch
sdk/python/tests/test_benchmark_collections.py | ||
---|---|---|
TEST_BLOCK_SIZE = 0
|
||
@classmethod
|
||
def list_recursive(cls, coll, parent_name=''):
|
||
"""Return a list of filenames in a [sub]collection.
|
||
["stream1/file1", "stream2/file1", ...]
|
||
"""
|
||
items = []
|
||
for name, item in coll.items():
|
||
if callable(getattr(item, 'items', None)):
|
||
# (ugh)
|
||
items.extend(cls.list_recursive(item, parent_name+name+'/'))
|
||
else:
|
||
items.append(parent_name+name)
|
||
return items
|
||
def list_recursive(cls, coll, parent_name=None):
|
||
if parent_name is None:
|
||
current_name = coll.stream_name()
|
||
else:
|
||
current_name = '{}/{}'.format(parent_name, coll.name)
|
||
try:
|
||
for name in coll:
|
||
for item in cls.list_recursive(coll[name], current_name):
|
||
yield item
|
||
except TypeError:
|
||
yield current_name
|
||
@classmethod
|
||
def setUpClass(cls):
|
||
... | ... | |
coll.save_new()
|
||
self.profile_new_collection_from_server(coll.manifest_locator())
|
||
items = self.profile_collection_list_files(coll)
|
||
self.assertEqual(len(items), specs['streams'] * specs['files_per_stream'])
|
||
num_items = sum(1 for name in self.profile_collection_list_files(coll))
|
||
self.assertEqual(num_items, specs['streams'] * specs['files_per_stream'])
|
||
self.profile_new_collection_from_collection_files(coll)
|