@@ -98,47 +98,6 @@ async def test_create_mrd(self, mock_cls_async_read_object_stream):
9898 assert mrd .is_stream_open
9999 assert mrd ._open_retries == 0
100100
101- @mock .patch (
102- "google.cloud.storage.asyncio.async_multi_range_downloader.generate_random_56_bit_integer"
103- )
104- @mock .patch (
105- "google.cloud.storage.asyncio.async_multi_range_downloader._AsyncReadObjectStream"
106- )
107- @pytest .mark .asyncio
108- async def test_download_ranges (
109- self , mock_cls_async_read_object_stream , mock_random_int
110- ):
111- data = b"these_are_18_chars"
112- crc32c = Checksum (data ).digest ()
113- crc32c_int = int .from_bytes (crc32c , "big" )
114-
115- mock_mrd , _ = await self ._make_mock_mrd (mock_cls_async_read_object_stream )
116- mock_random_int .side_effect = [456 ]
117-
118- mock_mrd .read_obj_str .send = AsyncMock ()
119- mock_mrd .read_obj_str .recv = AsyncMock (
120- side_effect = [
121- _storage_v2 .BidiReadObjectResponse (
122- object_data_ranges = [
123- _storage_v2 .ObjectRangeData (
124- checksummed_data = _storage_v2 .ChecksummedData (
125- content = data , crc32c = crc32c_int
126- ),
127- range_end = True ,
128- read_range = _storage_v2 .ReadRange (
129- read_offset = 0 , read_length = 18 , read_id = 456
130- ),
131- )
132- ],
133- ),
134- None ,
135- ]
136- )
137-
138- buffer = BytesIO ()
139- await mock_mrd .download_ranges ([(0 , 18 , buffer )])
140- assert buffer .getvalue () == data
141-
142101 @mock .patch (
143102 "google.cloud.storage.asyncio.async_multi_range_downloader.generate_random_56_bit_integer"
144103 )
@@ -219,6 +178,47 @@ async def controlled_recv():
219178 assert buffer .getvalue () == data
220179 assert second_buffer .getvalue () == data [10 :16 ]
221180
181+ @mock .patch (
182+ "google.cloud.storage.asyncio.async_multi_range_downloader.generate_random_56_bit_integer"
183+ )
184+ @mock .patch (
185+ "google.cloud.storage.asyncio.async_multi_range_downloader._AsyncReadObjectStream"
186+ )
187+ @pytest .mark .asyncio
188+ async def test_download_ranges (
189+ self , mock_cls_async_read_object_stream , mock_random_int
190+ ):
191+ data = b"these_are_18_chars"
192+ crc32c = Checksum (data ).digest ()
193+ crc32c_int = int .from_bytes (crc32c , "big" )
194+
195+ mock_mrd , _ = await self ._make_mock_mrd (mock_cls_async_read_object_stream )
196+ mock_random_int .side_effect = [456 ]
197+
198+ mock_mrd .read_obj_str .send = AsyncMock ()
199+ mock_mrd .read_obj_str .recv = AsyncMock (
200+ side_effect = [
201+ _storage_v2 .BidiReadObjectResponse (
202+ object_data_ranges = [
203+ _storage_v2 .ObjectRangeData (
204+ checksummed_data = _storage_v2 .ChecksummedData (
205+ content = data , crc32c = crc32c_int
206+ ),
207+ range_end = True ,
208+ read_range = _storage_v2 .ReadRange (
209+ read_offset = 0 , read_length = 18 , read_id = 456
210+ ),
211+ )
212+ ],
213+ ),
214+ None ,
215+ ]
216+ )
217+
218+ buffer = BytesIO ()
219+ await mock_mrd .download_ranges ([(0 , 18 , buffer )])
220+ assert buffer .getvalue () == data
221+
222222 @pytest .mark .asyncio
223223 async def test_downloading_ranges_with_more_than_1000_should_throw_error (self ):
224224 # Arrange
0 commit comments