feat: add context manager to mrd (#1724) · googleapis/python-storage@5ac2808 · GitHub
Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

Commit 5ac2808

Browse files
authored
feat: add context manager to mrd (#1724)
feat: add context manager to mrd
1 parent dbd162b commit 5ac2808

3 files changed

Lines changed: 58 additions & 7 deletions

File tree

google/cloud/storage/_experimental/asyncio/async_multi_range_downloader.py

Lines changed: 10 additions & 0 deletions

tests/system/test_zonal.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,19 +116,19 @@ async def _run():
116116
assert object_metadata.size == object_size
117117
assert int(object_metadata.checksums.crc32c) == object_checksum
118118

119-
mrd = AsyncMultiRangeDownloader(grpc_client, _ZONAL_BUCKET, object_name)
120119
buffer = BytesIO()
121-
await mrd.open()
122-
# (0, 0) means read the whole object
123-
await mrd.download_ranges([(0, 0, buffer)])
124-
await mrd.close()
120+
async with AsyncMultiRangeDownloader(
121+
grpc_client, _ZONAL_BUCKET, object_name
122+
) as mrd:
123+
# (0, 0) means read the whole object
124+
await mrd.download_ranges([(0, 0, buffer)])
125+
assert mrd.persisted_size == object_size
126+
125127
assert buffer.getvalue() == object_data
126-
assert mrd.persisted_size == object_size
127128

128129
# Clean up; use json client (i.e. `storage_client` fixture) to delete.
129130
blobs_to_delete.append(storage_client.bucket(_ZONAL_BUCKET).blob(object_name))
130131
del writer
131-
del mrd
132132
gc.collect()
133133

134134
event_loop.run_until_complete(_run())

tests/unit/asyncio/test_async_multi_range_downloader.py

Lines changed: 41 additions & 0 deletions

0 commit comments

Comments
 (0)