Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sdk/storage/azure-storage-blob/assets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "python",
"TagPrefix": "python/storage/azure-storage-blob",
"Tag": "python/storage/azure-storage-blob_16c5acad24"
"Tag": "python/storage/azure-storage-blob_365db1596b"
}
4 changes: 4 additions & 0 deletions sdk/storage/azure-storage-blob/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,7 @@ def add_sanitizers(test_proxy):
add_general_regex_sanitizer(regex=r'"EncryptionLibrary": "Python .*?"', value='"EncryptionLibrary": "Python x.x.x"')

add_uri_regex_sanitizer(regex=r"\.preprod\.", value=".")
add_uri_regex_sanitizer(
regex=r"([?&]sktid=)[^&#]+",
value=r"\g<1>00000000-0000-0000-0000-000000000000",
)
78 changes: 78 additions & 0 deletions sdk/storage/azure-storage-blob/tests/test_block_blob.py
Original file line number Diff line number Diff line change
Expand Up @@ -1984,4 +1984,82 @@ def test_upload_blob_copy_source_error_and_status_code(self, **kwargs):
finally:
self.bsc.delete_container(self.container_name)

@BlobPreparer()
@recorded_by_proxy
def test_stage_block_from_url_uds(self, **kwargs):
storage_account_name = kwargs.pop("storage_account_name")
variables = kwargs.pop("variables", {})

token_credential = self.get_credential(BlobServiceClient)
service = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=token_credential)
container_name, blob_name = self.get_resource_name('oauthcontainer'), self.get_resource_name('oauthblob')
container = service.create_container(container_name)
blob = container.get_blob_client(blob_name)

start = self.get_datetime_variable(variables, 'start', datetime.utcnow())
expiry = self.get_datetime_variable(variables, 'expiry', datetime.utcnow() + timedelta(hours=1))
user_delegation_key = service.get_user_delegation_key(key_start_time=start, key_expiry_time=expiry)
dst_sas = self.generate_sas(
generate_blob_sas,
blob.account_name,
blob.container_name,
blob.blob_name,
user_delegation_key=user_delegation_key,
permission=BlobSasPermissions(create=True),
expiry=expiry,
)
dst_blob = BlobClient.from_blob_url(f"{blob.url}?{dst_sas}")

src_blob_name = self.get_resource_name('oauthblob2')
src_sas = self.generate_sas(
generate_blob_sas,
blob.account_name,
blob.container_name,
src_blob_name,
user_delegation_key=user_delegation_key,
permission=BlobSasPermissions(read=True, add=True, create=True, write=True, delete=True),
expiry=expiry,
)
data = b"abc123"
src_blob = BlobClient.from_blob_url(f"{container.url}/{src_blob_name}?{src_sas}")
src_blob.upload_blob(data)

dst_blob.stage_block_from_url('1', src_blob.url)

return variables

@BlobPreparer()
@recorded_by_proxy
def test_commit_block_list_uds(self, **kwargs):
storage_account_name = kwargs.pop("storage_account_name")
variables = kwargs.pop("variables", {})

token_credential = self.get_credential(BlobServiceClient)
service = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=token_credential)
container_name, blob_name = self.get_resource_name('oauthcontainer'), self.get_resource_name('oauthblob')
container = service.create_container(container_name)
blob = container.get_blob_client(blob_name)

start = self.get_datetime_variable(variables, 'start', datetime.utcnow())
expiry = self.get_datetime_variable(variables, 'expiry', datetime.utcnow() + timedelta(hours=1))
user_delegation_key = service.get_user_delegation_key(key_start_time=start, key_expiry_time=expiry)
sas = self.generate_sas(
generate_blob_sas,
blob.account_name,
blob.container_name,
blob.blob_name,
user_delegation_key=user_delegation_key,
permission=BlobSasPermissions(create=True),
expiry=expiry,
)

identity_blob = BlobClient.from_blob_url(f"{blob.url}?{sas}")
identity_blob.stage_block('1', b'AAA')
identity_blob.stage_block('2', b'BBB')
identity_blob.stage_block('3', b'CCC')
block_list = [BlobBlock(block_id='3'), BlobBlock(block_id='2'), BlobBlock(block_id='1')]
identity_blob.commit_block_list(block_list=block_list)

return variables

#------------------------------------------------------------------------------
84 changes: 84 additions & 0 deletions sdk/storage/azure-storage-blob/tests/test_block_blob_async.py
Original file line number Diff line number Diff line change
Expand Up @@ -2102,4 +2102,88 @@ async def test_upload_blob_copy_source_error_and_status_code(self, **kwargs):
finally:
await self.bsc.delete_container(self.container_name)

@BlobPreparer()
@recorded_by_proxy_async
async def test_stage_block_from_url_uds(self, **kwargs):
storage_account_name = kwargs.pop("storage_account_name")
variables = kwargs.pop("variables", {})

token_credential = self.get_credential(BlobServiceClient, is_async=True)
service = BlobServiceClient(
self.account_url(storage_account_name, "blob"),
credential=token_credential
)
container_name, blob_name = self.get_resource_name('oauthcontainer'), self.get_resource_name('oauthblob')
container = await service.create_container(container_name)
blob = container.get_blob_client(blob_name)

start = self.get_datetime_variable(variables, 'start', datetime.utcnow())
expiry = self.get_datetime_variable(variables, 'expiry', datetime.utcnow() + timedelta(hours=1))
user_delegation_key = await service.get_user_delegation_key(key_start_time=start, key_expiry_time=expiry)
dst_sas = self.generate_sas(
generate_blob_sas,
blob.account_name,
blob.container_name,
blob.blob_name,
user_delegation_key=user_delegation_key,
permission=BlobSasPermissions(create=True),
expiry=expiry,
)
dst_blob = BlobClient.from_blob_url(f"{blob.url}?{dst_sas}")

src_blob_name = self.get_resource_name('oauthblob2')
src_sas = self.generate_sas(
generate_blob_sas,
blob.account_name,
blob.container_name,
src_blob_name,
user_delegation_key=user_delegation_key,
permission=BlobSasPermissions(read=True, add=True, create=True, write=True, delete=True),
expiry=expiry,
)
data = b"abc123"
src_blob = BlobClient.from_blob_url(f"{container.url}/{src_blob_name}?{src_sas}")
await src_blob.upload_blob(data)

await dst_blob.stage_block_from_url('1', src_blob.url)

return variables

@BlobPreparer()
@recorded_by_proxy_async
async def test_commit_block_list_uds(self, **kwargs):
storage_account_name = kwargs.pop("storage_account_name")
variables = kwargs.pop("variables", {})

token_credential = self.get_credential(BlobServiceClient, is_async=True)
service = BlobServiceClient(
self.account_url(storage_account_name, "blob"),
credential=token_credential
)
container_name, blob_name = self.get_resource_name('oauthcontainer'), self.get_resource_name('oauthblob')
container = await service.create_container(container_name)
blob = container.get_blob_client(blob_name)

start = self.get_datetime_variable(variables, 'start', datetime.utcnow())
expiry = self.get_datetime_variable(variables, 'expiry', datetime.utcnow() + timedelta(hours=1))
user_delegation_key = await service.get_user_delegation_key(key_start_time=start, key_expiry_time=expiry)
sas = self.generate_sas(
generate_blob_sas,
blob.account_name,
blob.container_name,
blob.blob_name,
user_delegation_key=user_delegation_key,
permission=BlobSasPermissions(create=True),
expiry=expiry,
)

identity_blob = BlobClient.from_blob_url(f"{blob.url}?{sas}")
await blob.stage_block('1', b'AAA')
await blob.stage_block('2', b'BBB')
await blob.stage_block('3', b'CCC')
block_list = [BlobBlock(block_id='3'), BlobBlock(block_id='2'), BlobBlock(block_id='1')]
await identity_blob.commit_block_list(block_list=block_list)

return variables

# ------------------------------------------------------------------------------
4 changes: 4 additions & 0 deletions sdk/storage/azure-storage-file-share/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,7 @@ def add_sanitizers(test_proxy):
add_body_regex_sanitizer(regex=r"<ClientIp>.*?</ClientIp>", value="<ClientIp>0.0.0.0:0</ClientIp>")

add_uri_string_sanitizer(target=".preprod.", value=".")
add_uri_regex_sanitizer(
regex=r"([?&]sktid=)[^&#]+",
value=r"\g<1>00000000-0000-0000-0000-000000000000",
)
4 changes: 4 additions & 0 deletions sdk/storage/azure-storage-queue/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,7 @@ def add_sanitizers(test_proxy):
add_general_regex_sanitizer(regex=r'"EncryptionLibrary": "Python .*?"', value='"EncryptionLibrary": "Python x.x.x"')

add_uri_string_sanitizer(target=".preprod.", value=".")
add_uri_regex_sanitizer(
regex=r"([?&]sktid=)[^&#]+",
value=r"\g<1>00000000-0000-0000-0000-000000000000",
)
Loading