From 076b8f1b8ec69f0bf18b4694d9db09069494f32e Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Tue, 22 Oct 2019 14:57:44 -0700 Subject: [PATCH] fix bug in blob sas logging test --- .../azure-storage-blob/tests/test_logging.py | 13 ++++++++++--- .../azure-storage-blob/tests/test_logging_async.py | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/sdk/storage/azure-storage-blob/tests/test_logging.py b/sdk/storage/azure-storage-blob/tests/test_logging.py index 8607e2478c5f..626932cc8777 100644 --- a/sdk/storage/azure-storage-blob/tests/test_logging.py +++ b/sdk/storage/azure-storage-blob/tests/test_logging.py @@ -29,9 +29,9 @@ ) if sys.version_info >= (3,): - from urllib.parse import parse_qs, quote + from urllib.parse import parse_qs, quote, urlparse else: - from urlparse import parse_qs + from urlparse import parse_qs, urlparse from urllib2 import quote _AUTHORIZATION_HEADER_NAME = 'Authorization' @@ -131,7 +131,14 @@ def test_copy_source_sas_is_scrubbed_off(self): dest_blob = self.bsc.get_blob_client(self.container_name, dest_blob_name) # parse out the signed signature - token_components = parse_qs(self.source_blob_url) + query_parameters = urlparse(self.source_blob_url).query + token_components = parse_qs(query_parameters) + if QueryStringConstants.SIGNED_SIGNATURE not in token_components: + pytest.fail("Blob URL {} doesn't contain {}, parsed query params: {}".format( + self.source_blob_url, + QueryStringConstants.SIGNED_SIGNATURE, + list(token_components.keys()) + )) signed_signature = quote(token_components[QueryStringConstants.SIGNED_SIGNATURE][0]) # Act diff --git a/sdk/storage/azure-storage-blob/tests/test_logging_async.py b/sdk/storage/azure-storage-blob/tests/test_logging_async.py index b8614f864fb5..0283236ac8be 100644 --- a/sdk/storage/azure-storage-blob/tests/test_logging_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_logging_async.py @@ -37,9 +37,9 @@ ) if sys.version_info >= (3,): - from urllib.parse import parse_qs, quote + from urllib.parse import parse_qs, quote, urlparse else: - from urlparse import parse_qs + from urlparse import parse_qs, urlparse from urllib2 import quote _AUTHORIZATION_HEADER_NAME = 'Authorization' @@ -169,7 +169,14 @@ async def _test_copy_source_sas_is_scrubbed_off(self): dest_blob = self.bsc.get_blob_client(self.container_name, dest_blob_name) # parse out the signed signature - token_components = parse_qs(self.source_blob_url) + query_parameters = urlparse(self.source_blob_url).query + token_components = parse_qs(query_parameters) + if QueryStringConstants.SIGNED_SIGNATURE not in token_components: + pytest.fail("Blob URL {} doesn't contain {}, parsed query params: {}".format( + self.source_blob_url, + QueryStringConstants.SIGNED_SIGNATURE, + list(token_components.keys()) + )) signed_signature = quote(token_components[QueryStringConstants.SIGNED_SIGNATURE][0]) # Act