Skip to content

Commit 8c54c4e

Browse files
committed
update policies
1 parent 2dfc616 commit 8c54c4e

1 file changed

Lines changed: 19 additions & 14 deletions

File tree

  • sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared

sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/policies.py

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -467,20 +467,25 @@ def _validate_content_response(
467467
# Raises exception if missing
468468
content_length = int(response.http_response.headers[CONTENT_LENGTH_HEADER])
469469

470-
# Patch response to return response iterator wrapped in structured message decoder
471-
original_iter_bytes = response.http_response.iter_bytes
472-
473-
def wrapped_iter_bytes(*args, **kwargs):
474-
iterator = original_iter_bytes(*args, **kwargs)
475-
decoder = decoder_cls(iterator, content_length, block_size=DATA_BLOCK_SIZE)
476-
# Only set request/response if present on iterator
477-
if hasattr(iterator, "request"):
478-
decoder.request = iterator.request # type: ignore
479-
if hasattr(iterator, "response"):
480-
decoder.response = iterator.response # type: ignore
481-
return decoder
482-
483-
response.http_response.iter_bytes = wrapped_iter_bytes
470+
def _make_wrapper(original):
471+
def wrapped(*args, **kwargs):
472+
iterator = original(*args, **kwargs)
473+
decoder = decoder_cls(iterator, content_length, block_size=DATA_BLOCK_SIZE)
474+
if hasattr(iterator, "request"):
475+
decoder.request = iterator.request # type: ignore
476+
if hasattr(iterator, "response"):
477+
decoder.response = iterator.response # type: ignore
478+
return decoder
479+
return wrapped
480+
481+
# Patch response to return response iterator wrapped in structured message decoder.
482+
# TypeSpec-generated code calls iter_bytes()/iter_raw() instead of stream_download().
483+
if hasattr(response.http_response, "iter_bytes"):
484+
response.http_response.iter_bytes = _make_wrapper(response.http_response.iter_bytes)
485+
if hasattr(response.http_response, "iter_raw"):
486+
response.http_response.iter_raw = _make_wrapper(response.http_response.iter_raw)
487+
if hasattr(response.http_response, "stream_download"):
488+
response.http_response.stream_download = _make_wrapper(response.http_response.stream_download)
484489

485490

486491
class StorageContentValidation(SansIOHTTPPolicy):

0 commit comments

Comments
 (0)