Project

General

Profile

Story #6218 ยป 6218-iterator-collection-listing.patch

Brett Smith, 07/09/2015 08:03 PM

View differences:

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)
    (1-1/1)