Skip to content

Commit 5d08749

Browse files
authored
Merge pull request #97 from scailfin/bug/s3-walk-return-value
Bug/S3Volume.walk return value
2 parents bc2db54 + 2125f35 commit 5d08749

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,3 +153,8 @@
153153
### 0.9.2 - 2021-09-30
154154

155155
* Reset hard-coded workflow repository URL to point to the master branch.
156+
157+
158+
### 0.9.3 - 2022-05-24
159+
160+
* Fix issue with `S3Volume.walk` return value (\#95)

flowserv/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
# terms of the MIT License; see LICENSE file for more details.
88

99
"""Information about the current version of the flowServ package."""
10-
__version__ = '0.9.2'
10+
__version__ = '0.9.3'

flowserv/volume/s3.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,8 @@ def walk(self, src: str) -> List[Tuple[str, IOHandle]]:
273273
prefix = ''
274274
else:
275275
prefix = src
276-
return self.query(filter=util.join(self.prefix, prefix))
276+
files = self.query(filter=util.join(self.prefix, prefix))
277+
return [(key, S3File(bucket=self.bucket, key=key)) for key in files]
277278

278279

279280
# -- Helper functions --------------------------------------------------------

tests/volume/test_s3_storage.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,15 @@ def test_s3_mkdir(store):
4848

4949

5050
def test_s3_query_files(store, bucket_keys):
51-
"""Test querying a S3 bucket store."""
52-
assert store.walk(src=None) == bucket_keys
53-
assert store.walk(src='code') == set({'code/obj1.json', 'code/obj2.json'})
54-
assert store.walk(src='code/') == set({'code/obj1.json', 'code/obj2.json'})
51+
"""Test querying a S3 bucket store using walk method."""
52+
53+
def result_keys(files):
54+
return {key for key, _ in files}
55+
56+
assert result_keys(store.walk(src=None)) == bucket_keys
57+
code_files = set({'code/obj1.json', 'code/obj2.json'})
58+
assert result_keys(store.walk(src='code')) == code_files
59+
assert result_keys(store.walk(src='code/')) == code_files
5560

5661

5762
def test_s3_open_file(store):
@@ -106,4 +111,4 @@ def test_s3_volume_subfolder(store, people):
106111
# Note that the file will not have been deleted in the original store. This
107112
# is because of how the unit tests are set up with each store having its
108113
# own full list of the files.
109-
assert substore.walk(src=None) == set()
114+
assert substore.walk(src=None) == []

0 commit comments

Comments
 (0)