Idea #6218 ยป 6218-iterator-collection-listing.patch
sdk/python/tests/test_benchmark_collections.py | ||
---|---|---|
12 | 12 |
TEST_BLOCK_SIZE = 0 |
13 | 13 | |
14 | 14 |
@classmethod |
15 |
def list_recursive(cls, coll, parent_name=''): |
|
16 |
"""Return a list of filenames in a [sub]collection. |
|
17 | ||
18 |
["stream1/file1", "stream2/file1", ...] |
|
19 | ||
20 |
""" |
|
21 | ||
22 |
items = [] |
|
23 |
for name, item in coll.items(): |
|
24 |
if callable(getattr(item, 'items', None)): |
|
25 |
# (ugh) |
|
26 |
items.extend(cls.list_recursive(item, parent_name+name+'/')) |
|
27 |
else: |
|
28 |
items.append(parent_name+name) |
|
29 |
return items |
|
15 |
def list_recursive(cls, coll, parent_name=None): |
|
16 |
if parent_name is None: |
|
17 |
current_name = coll.stream_name() |
|
18 |
else: |
|
19 |
current_name = '{}/{}'.format(parent_name, coll.name) |
|
20 |
try: |
|
21 |
for name in coll: |
|
22 |
for item in cls.list_recursive(coll[name], current_name): |
|
23 |
yield item |
|
24 |
except TypeError: |
|
25 |
yield current_name |
|
30 | 26 | |
31 | 27 |
@classmethod |
32 | 28 |
def setUpClass(cls): |
... | ... | |
85 | 81 |
coll.save_new() |
86 | 82 |
self.profile_new_collection_from_server(coll.manifest_locator()) |
87 | 83 | |
88 |
items = self.profile_collection_list_files(coll)
|
|
89 |
self.assertEqual(len(items), specs['streams'] * specs['files_per_stream'])
|
|
84 |
num_items = sum(1 for name in self.profile_collection_list_files(coll))
|
|
85 |
self.assertEqual(num_items, specs['streams'] * specs['files_per_stream'])
|
|
90 | 86 | |
91 | 87 |
self.profile_new_collection_from_collection_files(coll) |