From 317b25ca44417b4ee77acbddb8b0e688a8bf816b Mon Sep 17 00:00:00 2001 From: xiafu Date: Thu, 11 Jun 2020 17:51:24 -0700 Subject: [PATCH] fix the bug which caused only showing fatal error --- .../azure/storage/blob/_quick_query_helper.py | 4 +- .../test_quick_query.test_quick_query.yaml | 168 +++++++----- ...query_with_serialization_json_setting.yaml | 166 +++++++----- ...uick_query_with_serialization_setting.yaml | 200 +++++++-------- ...th_serialization_setting_throws_error.yaml | 242 ++++++++++++++++++ .../tests/test_quick_query.py | 65 ++++- 6 files changed, 592 insertions(+), 253 deletions(-) create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_setting_throws_error.yaml diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py index 250f714c2efe..0667e0377d07 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py @@ -75,7 +75,7 @@ def readinto(self, stream): def _parse_quick_query_result(self, raw_response_body, stream, progress_callback=None): parsed_results = DataFileReader(QuickQueryStreamer(raw_response_body), DatumReader()) for parsed_result in parsed_results: - if parsed_result.get('data'): + if 'data' in parsed_result: stream.write(parsed_result.get('data')) continue @@ -84,7 +84,7 @@ def _parse_quick_query_result(self, raw_response_body, stream, progress_callback fatal = QuickQueryError(parsed_result['name'], parsed_result['fatal'], parsed_result['description'], - parsed_result['position']) if parsed_result.get('fatal') else None + parsed_result['position']) if 'fatal' in parsed_result else None if progress_callback: progress_callback(fatal, self.bytes_processed, self.total_bytes) diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query.yaml index 567acc77d9a6..3456707d22db 100644 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query.yaml +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query.yaml @@ -13,34 +13,34 @@ interactions: User-Agent: - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 27 May 2020 21:08:40 GMT + - Fri, 12 Jun 2020 00:56:14 GMT x-ms-version: - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utqqcontainerea8e0dd1?restype=container response: body: - string: '' + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:38099a6a-901e-002b-1c54-40cd6c000000\nTime:2020-06-12T00:56:14.6755047Z" headers: content-length: - - '0' + - '230' + content-type: + - application/xml date: - - Wed, 27 May 2020 21:08:39 GMT - etag: - - '"0x8D80282219CBACC"' - last-modified: - - Wed, 27 May 2020 21:08:40 GMT + - Fri, 12 Jun 2020 00:56:14 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - ContainerAlreadyExists x-ms-version: - '2019-12-12' status: - code: 201 - message: Created + code: 409 + message: The specified container already exists. - request: - body: "Service,Package,Version,RepoPath,MissingDocs\r\nApp Configuration,azure-data-appconfiguration,1.0.1,appconfiguration,FALSE\r\nEvent - Hubs,azure-messaging-eventhubs,5.0.1,eventhubs,FALSE\r\nEvent Hubs - Azure Storage - CheckpointStore,azure-messaging-eventhubs-checkpointstore-blob,1.0.1,eventhubs,FALSE\r\nIdentity,azure-identity,1.1.0-beta.1,identity,FALSE\r\nKey + body: "Service,Package,Version,RepoPath,MissingDocs\r\nApp Configuration,azure-data-appconfiguration,1,appconfiguration,FALSE\r\nEvent + Hubs\r\nEvent Hubs - Azure Storage CheckpointStore,azure-messaging-eventhubs-checkpointstore-blob,1.0.1,eventhubs,FALSE\r\nIdentity,azure-identity,1.1.0-beta.1,identity,FALSE\r\nKey Vault - Certificates,azure-security-keyvault-certificates,4.0.0,keyvault,FALSE\r\nKey Vault - Keys,azure-security-keyvault-keys,4.2.0-beta.1,keyvault,FALSE\r\nKey Vault - Secrets,azure-security-keyvault-secrets,4.1.0,keyvault,FALSE\r\nStorage @@ -68,17 +68,15 @@ interactions: Connection: - keep-alive Content-Length: - - '2306' + - '2254' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 27 May 2020 21:08:40 GMT + - Fri, 12 Jun 2020 00:56:14 GMT x-ms-version: - '2019-12-12' method: PUT @@ -90,17 +88,17 @@ interactions: content-length: - '0' content-md5: - - 6qNUJItG1aexpFSF0g7WyA== + - 1pD2vzAWr383Ra8EGUfLvQ== date: - - Wed, 27 May 2020 21:08:40 GMT + - Fri, 12 Jun 2020 00:56:14 GMT etag: - - '"0x8D8028221B0EF22"' + - '"0x8D80E6B68609436"' last-modified: - - Wed, 27 May 2020 21:08:40 GMT + - Fri, 12 Jun 2020 00:56:14 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: - - Egm6/9FcUeU= + - 2OE6jL7EoQ0= x-ms-request-server-encrypted: - 'true' x-ms-version: @@ -126,7 +124,7 @@ interactions: User-Agent: - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 27 May 2020 21:08:40 GMT + - Fri, 12 Jun 2020 00:56:14 GMT x-ms-version: - '2019-12-12' method: POST @@ -168,59 +166,59 @@ interactions: aGF0IGFsbCByZXN1bHRzIGhhdmUgYmVlbiBzZW50LiIsCiAgICAiZmllbGRzIjogWwogICAgICB7 CiAgICAgICAgIm5hbWUiOiAidG90YWxCeXRlcyIsCiAgICAgICAgInR5cGUiOiAibG9uZyIsCiAg ICAgICAgImRvYyI6ICJUaGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHRvIGJlIHNjYW5uZWQgaW4g - dGhpcyBxdWVyeSIKICAgICAgfQogICAgXQogIH0KXQoA/Ph5PAAL/kiSdydZxH53yALMIwDGI1Nl + dGhpcyBxdWVyeSIKICAgICAgfQogICAgXQogIH0KXQoAhYezjHzUq0y3TkcsyDXihQLkIgDeIlNl cnZpY2UsUGFja2FnZSxWZXJzaW9uLFJlcG9QYXRoLE1pc3NpbmdEb2NzCkFwcCBDb25maWd1cmF0 - aW9uLGF6dXJlLWRhdGEtYXBwY29uZmlndXJhdGlvbiwxLjAuMSxhcHBjb25maWd1cmF0aW9uLEZB - TFNFCkV2ZW50IEh1YnMsYXp1cmUtbWVzc2FnaW5nLWV2ZW50aHVicyw1LjAuMSxldmVudGh1YnMs - RkFMU0UKRXZlbnQgSHVicyAtIEF6dXJlIFN0b3JhZ2UgQ2hlY2twb2ludFN0b3JlLGF6dXJlLW1l - c3NhZ2luZy1ldmVudGh1YnMtY2hlY2twb2ludHN0b3JlLWJsb2IsMS4wLjEsZXZlbnRodWJzLEZB - TFNFCklkZW50aXR5LGF6dXJlLWlkZW50aXR5LDEuMS4wLWJldGEuMSxpZGVudGl0eSxGQUxTRQpL - ZXkgVmF1bHQgLSBDZXJ0aWZpY2F0ZXMsYXp1cmUtc2VjdXJpdHkta2V5dmF1bHQtY2VydGlmaWNh - dGVzLDQuMC4wLGtleXZhdWx0LEZBTFNFCktleSBWYXVsdCAtIEtleXMsYXp1cmUtc2VjdXJpdHkt - a2V5dmF1bHQta2V5cyw0LjIuMC1iZXRhLjEsa2V5dmF1bHQsRkFMU0UKS2V5IFZhdWx0IC0gU2Vj - cmV0cyxhenVyZS1zZWN1cml0eS1rZXl2YXVsdC1zZWNyZXRzLDQuMS4wLGtleXZhdWx0LEZBTFNF - ClN0b3JhZ2UgLSBCbG9icyxhenVyZS1zdG9yYWdlLWJsb2IsMTIuNC4wLHN0b3JhZ2UsRkFMU0UK - U3RvcmFnZSAtIEJsb2JzIEJhdGNoLGF6dXJlLXN0b3JhZ2UtYmxvYi1iYXRjaCwxMi40LjAtYmV0 - YS4xLHN0b3JhZ2UsRkFMU0UKU3RvcmFnZSAtIEJsb2JzIENyeXB0b2dyYXBoeSxhenVyZS1zdG9y - YWdlLWJsb2ItY3J5cHRvZ3JhcGh5LDEyLjQuMCxzdG9yYWdlLEZBTFNFClN0b3JhZ2UgLSBGaWxl - IFNoYXJlcyxhenVyZS1zdG9yYWdlLWZpbGUtc2hhcmUsMTIuMi4wLHN0b3JhZ2UsRkFMU0UKU3Rv - cmFnZSAtIFF1ZXVlcyxhenVyZS1zdG9yYWdlLXF1ZXVlLDEyLjMuMCxzdG9yYWdlLEZBTFNFClRl - eHQgQW5hbHl0aWNzLGF6dXJlLWFpLXRleHRhbmFseXRpY3MsMS4wLjAtYmV0YS4yLHRleHRhbmFs - eXRpY3MsRkFMU0UKVHJhY2luZyxhenVyZS1jb3JlLXRyYWNpbmctb3BlbnRlbGVtZXRyeSwxLjAu - MC1iZXRhLjIsY29yZSxGQUxTRQpTZXJ2aWNlLFBhY2thZ2UsVmVyc2lvbixSZXBvUGF0aCxNaXNz - aW5nRG9jcwpBcHAgQ29uZmlndXJhdGlvbixhenVyZS1kYXRhLWFwcGNvbmZpZ3VyYXRpb24sMS4w - LjEsYXBwY29uZmlndXJhdGlvbixGQUxTRQpFdmVudCBIdWJzLGF6dXJlLW1lc3NhZ2luZy1ldmVu - dGh1YnMsNS4wLjEsZXZlbnRodWJzLEZBTFNFCkV2ZW50IEh1YnMgLSBBenVyZSBTdG9yYWdlIENo - ZWNrcG9pbnRTdG9yZSxhenVyZS1tZXNzYWdpbmctZXZlbnRodWJzLWNoZWNrcG9pbnRzdG9yZS1i - bG9iLDEuMC4xLGV2ZW50aHVicyxGQUxTRQpJZGVudGl0eSxhenVyZS1pZGVudGl0eSwxLjEuMC1i - ZXRhLjEsaWRlbnRpdHksRkFMU0UKS2V5IFZhdWx0IC0gQ2VydGlmaWNhdGVzLGF6dXJlLXNlY3Vy - aXR5LWtleXZhdWx0LWNlcnRpZmljYXRlcyw0LjAuMCxrZXl2YXVsdCxGQUxTRQpLZXkgVmF1bHQg - LSBLZXlzLGF6dXJlLXNlY3VyaXR5LWtleXZhdWx0LWtleXMsNC4yLjAtYmV0YS4xLGtleXZhdWx0 - LEZBTFNFCktleSBWYXVsdCAtIFNlY3JldHMsYXp1cmUtc2VjdXJpdHkta2V5dmF1bHQtc2VjcmV0 - cyw0LjEuMCxrZXl2YXVsdCxGQUxTRQpTdG9yYWdlIC0gQmxvYnMsYXp1cmUtc3RvcmFnZS1ibG9i - LDEyLjQuMCxzdG9yYWdlLEZBTFNFClN0b3JhZ2UgLSBCbG9icyBCYXRjaCxhenVyZS1zdG9yYWdl - LWJsb2ItYmF0Y2gsMTIuNC4wLWJldGEuMSxzdG9yYWdlLEZBTFNFClN0b3JhZ2UgLSBCbG9icyBD - cnlwdG9ncmFwaHksYXp1cmUtc3RvcmFnZS1ibG9iLWNyeXB0b2dyYXBoeSwxMi40LjAsc3RvcmFn - ZSxGQUxTRQpTdG9yYWdlIC0gRmlsZSBTaGFyZXMsYXp1cmUtc3RvcmFnZS1maWxlLXNoYXJlLDEy - LjIuMCxzdG9yYWdlLEZBTFNFClN0b3JhZ2UgLSBRdWV1ZXMsYXp1cmUtc3RvcmFnZS1xdWV1ZSwx - Mi4zLjAsc3RvcmFnZSxGQUxTRQpUZXh0IEFuYWx5dGljcyxhenVyZS1haS10ZXh0YW5hbHl0aWNz - LDEuMC4wLWJldGEuMix0ZXh0YW5hbHl0aWNzLEZBTFNFClRyYWNpbmcsYXp1cmUtY29yZS10cmFj - aW5nLW9wZW50ZWxlbWV0cnksMS4wLjAtYmV0YS4yLGNvcmUsRkFMU0UKU2VydmljZSxQYWNrYWdl - LFZlcnNpb24sUmVwb1BhdGgsTWlzc2luZ0RvY3MKQXBwIENvbmZpZ3VyYXRpb24sYXp1cmUtZGF0 - YS1hcHBjb25maWd1cmF0aW9uLDEuMC4xLGFwcGNvbmZpZ3VyYXRpb24sRkFMU0UKRXZlbnQgSHVi - cyxhenVyZS1tZXNzYWdpbmctZXZlbnRodWJzLDUuMC4xLGV2ZW50aHVicyxGQUxTRQr8+Hk8AAv+ - SJJ3J1nEfnfIAgoEhCSEJPz4eTwAC/5IkncnWcR+d8gCBgaEJPz4eTwAC/5IkncnWcR+d8g= + aW9uLGF6dXJlLWRhdGEtYXBwY29uZmlndXJhdGlvbiwxLGFwcGNvbmZpZ3VyYXRpb24sRkFMU0UK + RXZlbnQgSHVicwpFdmVudCBIdWJzIC0gQXp1cmUgU3RvcmFnZSBDaGVja3BvaW50U3RvcmUsYXp1 + cmUtbWVzc2FnaW5nLWV2ZW50aHVicy1jaGVja3BvaW50c3RvcmUtYmxvYiwxLjAuMSxldmVudGh1 + YnMsRkFMU0UKSWRlbnRpdHksYXp1cmUtaWRlbnRpdHksMS4xLjAtYmV0YS4xLGlkZW50aXR5LEZB + TFNFCktleSBWYXVsdCAtIENlcnRpZmljYXRlcyxhenVyZS1zZWN1cml0eS1rZXl2YXVsdC1jZXJ0 + aWZpY2F0ZXMsNC4wLjAsa2V5dmF1bHQsRkFMU0UKS2V5IFZhdWx0IC0gS2V5cyxhenVyZS1zZWN1 + cml0eS1rZXl2YXVsdC1rZXlzLDQuMi4wLWJldGEuMSxrZXl2YXVsdCxGQUxTRQpLZXkgVmF1bHQg + LSBTZWNyZXRzLGF6dXJlLXNlY3VyaXR5LWtleXZhdWx0LXNlY3JldHMsNC4xLjAsa2V5dmF1bHQs + RkFMU0UKU3RvcmFnZSAtIEJsb2JzLGF6dXJlLXN0b3JhZ2UtYmxvYiwxMi40LjAsc3RvcmFnZSxG + QUxTRQpTdG9yYWdlIC0gQmxvYnMgQmF0Y2gsYXp1cmUtc3RvcmFnZS1ibG9iLWJhdGNoLDEyLjQu + MC1iZXRhLjEsc3RvcmFnZSxGQUxTRQpTdG9yYWdlIC0gQmxvYnMgQ3J5cHRvZ3JhcGh5LGF6dXJl + LXN0b3JhZ2UtYmxvYi1jcnlwdG9ncmFwaHksMTIuNC4wLHN0b3JhZ2UsRkFMU0UKU3RvcmFnZSAt + IEZpbGUgU2hhcmVzLGF6dXJlLXN0b3JhZ2UtZmlsZS1zaGFyZSwxMi4yLjAsc3RvcmFnZSxGQUxT + RQpTdG9yYWdlIC0gUXVldWVzLGF6dXJlLXN0b3JhZ2UtcXVldWUsMTIuMy4wLHN0b3JhZ2UsRkFM + U0UKVGV4dCBBbmFseXRpY3MsYXp1cmUtYWktdGV4dGFuYWx5dGljcywxLjAuMC1iZXRhLjIsdGV4 + dGFuYWx5dGljcyxGQUxTRQpUcmFjaW5nLGF6dXJlLWNvcmUtdHJhY2luZy1vcGVudGVsZW1ldHJ5 + LDEuMC4wLWJldGEuMixjb3JlLEZBTFNFClNlcnZpY2UsUGFja2FnZSxWZXJzaW9uLFJlcG9QYXRo + LE1pc3NpbmdEb2NzCkFwcCBDb25maWd1cmF0aW9uLGF6dXJlLWRhdGEtYXBwY29uZmlndXJhdGlv + biwxLjAuMSxhcHBjb25maWd1cmF0aW9uLEZBTFNFCkV2ZW50IEh1YnMsYXp1cmUtbWVzc2FnaW5n + LWV2ZW50aHVicyw1LjAuMSxldmVudGh1YnMsRkFMU0UKRXZlbnQgSHVicyAtIEF6dXJlIFN0b3Jh + Z2UgQ2hlY2twb2ludFN0b3JlLGF6dXJlLW1lc3NhZ2luZy1ldmVudGh1YnMtY2hlY2twb2ludHN0 + b3JlLWJsb2IsMS4wLjEsZXZlbnRodWJzLEZBTFNFCklkZW50aXR5LGF6dXJlLWlkZW50aXR5LDEu + MS4wLWJldGEuMSxpZGVudGl0eSxGQUxTRQpLZXkgVmF1bHQgLSBDZXJ0aWZpY2F0ZXMsYXp1cmUt + c2VjdXJpdHkta2V5dmF1bHQtY2VydGlmaWNhdGVzLDQuMC4wLGtleXZhdWx0LEZBTFNFCktleSBW + YXVsdCAtIEtleXMsYXp1cmUtc2VjdXJpdHkta2V5dmF1bHQta2V5cyw0LjIuMC1iZXRhLjEsa2V5 + dmF1bHQsRkFMU0UKS2V5IFZhdWx0IC0gU2VjcmV0cyxhenVyZS1zZWN1cml0eS1rZXl2YXVsdC1z + ZWNyZXRzLDQuMS4wLGtleXZhdWx0LEZBTFNFClN0b3JhZ2UgLSBCbG9icyxhenVyZS1zdG9yYWdl + LWJsb2IsMTIuNC4wLHN0b3JhZ2UsRkFMU0UKU3RvcmFnZSAtIEJsb2JzIEJhdGNoLGF6dXJlLXN0 + b3JhZ2UtYmxvYi1iYXRjaCwxMi40LjAtYmV0YS4xLHN0b3JhZ2UsRkFMU0UKU3RvcmFnZSAtIEJs + b2JzIENyeXB0b2dyYXBoeSxhenVyZS1zdG9yYWdlLWJsb2ItY3J5cHRvZ3JhcGh5LDEyLjQuMCxz + dG9yYWdlLEZBTFNFClN0b3JhZ2UgLSBGaWxlIFNoYXJlcyxhenVyZS1zdG9yYWdlLWZpbGUtc2hh + cmUsMTIuMi4wLHN0b3JhZ2UsRkFMU0UKU3RvcmFnZSAtIFF1ZXVlcyxhenVyZS1zdG9yYWdlLXF1 + ZXVlLDEyLjMuMCxzdG9yYWdlLEZBTFNFClRleHQgQW5hbHl0aWNzLGF6dXJlLWFpLXRleHRhbmFs + eXRpY3MsMS4wLjAtYmV0YS4yLHRleHRhbmFseXRpY3MsRkFMU0UKVHJhY2luZyxhenVyZS1jb3Jl + LXRyYWNpbmctb3BlbnRlbGVtZXRyeSwxLjAuMC1iZXRhLjIsY29yZSxGQUxTRQpTZXJ2aWNlLFBh + Y2thZ2UsVmVyc2lvbixSZXBvUGF0aCxNaXNzaW5nRG9jcwpBcHAgQ29uZmlndXJhdGlvbixhenVy + ZS1kYXRhLWFwcGNvbmZpZ3VyYXRpb24sMS4wLjEsYXBwY29uZmlndXJhdGlvbixGQUxTRQpFdmVu + dCBIdWJzLGF6dXJlLW1lc3NhZ2luZy1ldmVudGh1YnMsNS4wLjEsZXZlbnRodWJzLEZBTFNFCoWH + s4x81KtMt05HLMg14oUCCgScI5wjhYezjHzUq0y3TkcsyDXihQIGBpwjhYezjHzUq0y3TkcsyDXi + hQ== headers: accept-ranges: - bytes content-type: - avro/binary date: - - Wed, 27 May 2020 21:08:40 GMT + - Fri, 12 Jun 2020 00:56:14 GMT etag: - - '"0x8D8028221B0EF22"' + - '"0x8D80E6B68609436"' last-modified: - - Wed, 27 May 2020 21:08:40 GMT + - Fri, 12 Jun 2020 00:56:14 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: @@ -228,7 +226,7 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Wed, 27 May 2020 21:08:40 GMT + - Tue, 09 Jun 2020 21:07:15 GMT x-ms-lease-state: - available x-ms-lease-status: @@ -238,4 +236,38 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 12 Jun 2020 00:56:15 GMT + x-ms-version: + - '2019-12-12' + method: DELETE + uri: https://storagename.blob.core.windows.net/utqqcontainerea8e0dd1?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Fri, 12 Jun 2020 00:56:14 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_json_setting.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_json_setting.yaml index 9d3d598d689d..765260dab84a 100644 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_json_setting.yaml +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_json_setting.yaml @@ -11,9 +11,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Tue, 21 Apr 2020 02:02:44 GMT + - Fri, 12 Jun 2020 00:56:33 GMT x-ms-version: - '2019-12-12' method: PUT @@ -21,14 +21,14 @@ interactions: response: body: string: "\uFEFFContainerAlreadyExistsThe - specified container already exists.\nRequestId:1b80cc9f-001e-0013-0480-17faee000000\nTime:2020-04-21T02:02:44.6809124Z" + specified container already exists.\nRequestId:8bae65b4-701e-0023-1654-40d763000000\nTime:2020-06-12T00:56:34.0985567Z" headers: content-length: - '230' content-type: - application/xml date: - - Tue, 21 Apr 2020 02:02:44 GMT + - Fri, 12 Jun 2020 00:56:33 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-error-code: @@ -39,47 +39,11 @@ interactions: code: 409 message: The specified container already exists. - request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Tue, 21 Apr 2020 02:02:44 GMT - x-ms-version: - - '2019-12-12' - method: DELETE - uri: https://storagename.blob.core.windows.net/utqqcontainer81b11b3f/csvfile81b11b3f - response: - body: - string: '' - headers: - date: - - Tue, 21 Apr 2020 02:02:44 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - transfer-encoding: - - chunked - x-ms-delete-type-permanent: - - 'true' - x-ms-version: - - '2019-12-12' - status: - code: 202 - message: Accepted -- request: - body: '{name: owner} + body: '{"name": "owner", "id": 1} - {name2: owner2} + {"name2": "owner2"} - {name: owner}' + {"name": "owner", "id": 1}' headers: Accept: - '*/*' @@ -88,17 +52,15 @@ interactions: Connection: - keep-alive Content-Length: - - '43' + - '73' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Tue, 21 Apr 2020 02:02:44 GMT + - Fri, 12 Jun 2020 00:56:34 GMT x-ms-version: - '2019-12-12' method: PUT @@ -107,20 +69,20 @@ interactions: body: string: '' headers: + content-length: + - '0' content-md5: - - 3pnPj+YhaHXfC2h3ZjsyvA== + - VoQfoBzs5Q2hPEEEvjXsug== date: - - Tue, 21 Apr 2020 02:02:44 GMT + - Fri, 12 Jun 2020 00:56:33 GMT etag: - - '"0x8D7E5981522C6C4"' + - '"0x8D80E6B73F0C04A"' last-modified: - - Tue, 21 Apr 2020 02:02:44 GMT + - Fri, 12 Jun 2020 00:56:34 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - transfer-encoding: - - chunked x-ms-content-crc64: - - 8F8WEmuE8+w= + - kIHyyvyJsew= x-ms-request-server-encrypted: - 'true' x-ms-version: @@ -131,9 +93,9 @@ interactions: - request: body: ' - SQLSELECT * from BlobStoragedelimited + SQLSELECT name from BlobStoragejson - delimited;' + json;' headers: Accept: - application/xml @@ -142,13 +104,13 @@ interactions: Connection: - keep-alive Content-Length: - - '472' + - '465' Content-Type: - application/xml; charset=utf-8 User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Tue, 21 Apr 2020 02:02:44 GMT + - Fri, 12 Jun 2020 00:56:34 GMT x-ms-version: - '2019-12-12' method: POST @@ -190,20 +152,20 @@ interactions: aGF0IGFsbCByZXN1bHRzIGhhdmUgYmVlbiBzZW50LiIsCiAgICAiZmllbGRzIjogWwogICAgICB7 CiAgICAgICAgIm5hbWUiOiAidG90YWxCeXRlcyIsCiAgICAgICAgInR5cGUiOiAibG9uZyIsCiAg ICAgICAgImRvYyI6ICJUaGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHRvIGJlIHNjYW5uZWQgaW4g - dGhpcyBxdWVyeSIKICAgICAgfQogICAgXQogIH0KXQoAifbe/okdQUGEaIjQIbCEwwJcAFh7bmFt - ZTogb3duZXJ9CntuYW1lMjogb3duZXIyfQp7bmFtZTogb3duZXJ9Con23v6JHUFBhGiI0CGwhMMC - BgRWVon23v6JHUFBhGiI0CGwhMMCBAZWifbe/okdQUGEaIjQIbCEww== + dGhpcyBxdWVyeSIKICAgICAgfQogICAgXQogIH0KXQoAH5DEvPu0ukmjhlqZD9NMiwJOAEp7Im5h + bWUiOiJvd25lciJ9O3t9O3sibmFtZSI6Im93bmVyIn07H5DEvPu0ukmjhlqZD9NMiwIKBJIBkgEf + kMS8+7S6SaOGWpkP00yLAgYGkgEfkMS8+7S6SaOGWpkP00yL headers: accept-ranges: - bytes content-type: - avro/binary date: - - Tue, 21 Apr 2020 02:02:44 GMT + - Fri, 12 Jun 2020 00:56:33 GMT etag: - - '"0x8D7E5981522C6C4"' + - '"0x8D80E6B73F0C04A"' last-modified: - - Tue, 21 Apr 2020 02:02:44 GMT + - Fri, 12 Jun 2020 00:56:34 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: @@ -211,7 +173,7 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Tue, 21 Apr 2020 02:02:44 GMT + - Fri, 12 Jun 2020 00:56:34 GMT x-ms-lease-state: - available x-ms-lease-status: @@ -221,4 +183,74 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 12 Jun 2020 00:56:34 GMT + x-ms-version: + - '2019-12-12' + method: DELETE + uri: https://storagename.blob.core.windows.net/utqqcontainer81b11b3f/csvfile81b11b3f + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Fri, 12 Jun 2020 00:56:34 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'false' + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 12 Jun 2020 00:56:34 GMT + x-ms-version: + - '2019-12-12' + method: DELETE + uri: https://storagename.blob.core.windows.net/utqqcontainer81b11b3f?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Fri, 12 Jun 2020 00:56:34 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_setting.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_setting.yaml index c77fe313b30d..52b90eb78418 100644 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_setting.yaml +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_setting.yaml @@ -11,9 +11,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Tue, 21 Apr 2020 00:37:12 GMT + - Fri, 12 Jun 2020 00:56:20 GMT x-ms-version: - '2019-12-12' method: PUT @@ -21,14 +21,14 @@ interactions: response: body: string: "\uFEFFContainerAlreadyExistsThe - specified container already exists.\nRequestId:0626ef1a-201e-000f-5d74-1722f9000000\nTime:2020-04-21T00:37:12.6035986Z" + specified container already exists.\nRequestId:cf0b4683-401e-0007-1554-4021c3000000\nTime:2020-06-12T00:56:20.5629123Z" headers: content-length: - '230' content-type: - application/xml date: - - Tue, 21 Apr 2020 00:37:11 GMT + - Fri, 12 Jun 2020 00:56:20 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-error-code: @@ -39,45 +39,8 @@ interactions: code: 409 message: The specified container already exists. - request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Tue, 21 Apr 2020 00:37:19 GMT - x-ms-version: - - '2019-12-12' - method: DELETE - uri: https://storagename.blob.core.windows.net/utqqcontainerfdc51926/csvfilefdc51926 - response: - body: - string: '' - headers: - date: - - Tue, 21 Apr 2020 00:37:18 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - transfer-encoding: - - chunked - x-ms-delete-type-permanent: - - 'true' - x-ms-version: - - '2019-12-12' - status: - code: 202 - message: Accepted -- request: - body: "Service,Package,Version,RepoPath,MissingDocs\r\nApp Configuration,azure-data-appconfiguration,1.0.1,appconfiguration,FALSE\r\nEvent - Hubs,azure-messaging-eventhubs,5.0.1,eventhubs,FALSE\r\nEvent Hubs - Azure Storage - CheckpointStore,azure-messaging-eventhubs-checkpointstore-blob,1.0.1,eventhubs,FALSE\r\nIdentity,azure-identity,1.1.0-beta.1,identity,FALSE\r\nKey + body: "Service,Package,Version,RepoPath,MissingDocs\r\nApp Configuration,azure-data-appconfiguration,1,appconfiguration,FALSE\r\nEvent + Hubs\r\nEvent Hubs - Azure Storage CheckpointStore,azure-messaging-eventhubs-checkpointstore-blob,1.0.1,eventhubs,FALSE\r\nIdentity,azure-identity,1.1.0-beta.1,identity,FALSE\r\nKey Vault - Certificates,azure-security-keyvault-certificates,4.0.0,keyvault,FALSE\r\nKey Vault - Keys,azure-security-keyvault-keys,4.2.0-beta.1,keyvault,FALSE\r\nKey Vault - Secrets,azure-security-keyvault-secrets,4.1.0,keyvault,FALSE\r\nStorage @@ -105,17 +68,15 @@ interactions: Connection: - keep-alive Content-Length: - - '2306' + - '2254' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Tue, 21 Apr 2020 00:37:21 GMT + - Fri, 12 Jun 2020 00:56:20 GMT x-ms-version: - '2019-12-12' method: PUT @@ -124,20 +85,20 @@ interactions: body: string: '' headers: + content-length: + - '0' content-md5: - - 6qNUJItG1aexpFSF0g7WyA== + - 1pD2vzAWr383Ra8EGUfLvQ== date: - - Tue, 21 Apr 2020 00:37:21 GMT + - Fri, 12 Jun 2020 00:56:20 GMT etag: - - '"0x8D7E58C27A5AC07"' + - '"0x8D80E6B6BDFD66A"' last-modified: - - Tue, 21 Apr 2020 00:37:21 GMT + - Fri, 12 Jun 2020 00:56:20 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - transfer-encoding: - - chunked x-ms-content-crc64: - - Egm6/9FcUeU= + - 2OE6jL7EoQ0= x-ms-request-server-encrypted: - 'true' x-ms-version: @@ -163,9 +124,9 @@ interactions: Content-Type: - application/xml; charset=utf-8 User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Tue, 21 Apr 2020 00:37:24 GMT + - Fri, 12 Jun 2020 00:56:20 GMT x-ms-version: - '2019-12-12' method: POST @@ -207,60 +168,59 @@ interactions: aGF0IGFsbCByZXN1bHRzIGhhdmUgYmVlbiBzZW50LiIsCiAgICAiZmllbGRzIjogWwogICAgICB7 CiAgICAgICAgIm5hbWUiOiAidG90YWxCeXRlcyIsCiAgICAgICAgInR5cGUiOiAibG9uZyIsCiAg ICAgICAgImRvYyI6ICJUaGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHRvIGJlIHNjYW5uZWQgaW4g - dGhpcyBxdWVyeSIKICAgICAgfQogICAgXQogIH0KXQoAQJh7tFnKJkC680WoIsnrFQLEJAC+JFNl + dGhpcyBxdWVyeSIKICAgICAgfQogICAgXQogIH0KXQoA6iJ4SZwJEkmDR5ly6M84BwLUIwDOI1Nl cnZpY2U7UGFja2FnZTtWZXJzaW9uO1JlcG9QYXRoO01pc3NpbmdEb2NzLkFwcCBDb25maWd1cmF0 - aW9uO2F6dXJlLWRhdGEtYXBwY29uZmlndXJhdGlvbjsnMS4wLjEnO2FwcGNvbmZpZ3VyYXRpb247 - RkFMU0UuRXZlbnQgSHViczthenVyZS1tZXNzYWdpbmctZXZlbnRodWJzOyc1LjAuMSc7ZXZlbnRo - dWJzO0ZBTFNFLkV2ZW50IEh1YnMgLSBBenVyZSBTdG9yYWdlIENoZWNrcG9pbnRTdG9yZTthenVy - ZS1tZXNzYWdpbmctZXZlbnRodWJzLWNoZWNrcG9pbnRzdG9yZS1ibG9iOycxLjAuMSc7ZXZlbnRo - dWJzO0ZBTFNFLklkZW50aXR5O2F6dXJlLWlkZW50aXR5OycxLjEuMC1iZXRhLjEnO2lkZW50aXR5 - O0ZBTFNFLktleSBWYXVsdCAtIENlcnRpZmljYXRlczthenVyZS1zZWN1cml0eS1rZXl2YXVsdC1j - ZXJ0aWZpY2F0ZXM7JzQuMC4wJztrZXl2YXVsdDtGQUxTRS5LZXkgVmF1bHQgLSBLZXlzO2F6dXJl - LXNlY3VyaXR5LWtleXZhdWx0LWtleXM7JzQuMi4wLWJldGEuMSc7a2V5dmF1bHQ7RkFMU0UuS2V5 - IFZhdWx0IC0gU2VjcmV0czthenVyZS1zZWN1cml0eS1rZXl2YXVsdC1zZWNyZXRzOyc0LjEuMCc7 - a2V5dmF1bHQ7RkFMU0UuU3RvcmFnZSAtIEJsb2JzO2F6dXJlLXN0b3JhZ2UtYmxvYjsnMTIuNC4w - JztzdG9yYWdlO0ZBTFNFLlN0b3JhZ2UgLSBCbG9icyBCYXRjaDthenVyZS1zdG9yYWdlLWJsb2It - YmF0Y2g7JzEyLjQuMC1iZXRhLjEnO3N0b3JhZ2U7RkFMU0UuU3RvcmFnZSAtIEJsb2JzIENyeXB0 - b2dyYXBoeTthenVyZS1zdG9yYWdlLWJsb2ItY3J5cHRvZ3JhcGh5OycxMi40LjAnO3N0b3JhZ2U7 - RkFMU0UuU3RvcmFnZSAtIEZpbGUgU2hhcmVzO2F6dXJlLXN0b3JhZ2UtZmlsZS1zaGFyZTsnMTIu - Mi4wJztzdG9yYWdlO0ZBTFNFLlN0b3JhZ2UgLSBRdWV1ZXM7YXp1cmUtc3RvcmFnZS1xdWV1ZTsn - MTIuMy4wJztzdG9yYWdlO0ZBTFNFLlRleHQgQW5hbHl0aWNzO2F6dXJlLWFpLXRleHRhbmFseXRp - Y3M7JzEuMC4wLWJldGEuMic7dGV4dGFuYWx5dGljcztGQUxTRS5UcmFjaW5nO2F6dXJlLWNvcmUt - dHJhY2luZy1vcGVudGVsZW1ldHJ5OycxLjAuMC1iZXRhLjInO2NvcmU7RkFMU0UuU2VydmljZTtQ - YWNrYWdlO1ZlcnNpb247UmVwb1BhdGg7TWlzc2luZ0RvY3MuQXBwIENvbmZpZ3VyYXRpb247YXp1 - cmUtZGF0YS1hcHBjb25maWd1cmF0aW9uOycxLjAuMSc7YXBwY29uZmlndXJhdGlvbjtGQUxTRS5F - dmVudCBIdWJzO2F6dXJlLW1lc3NhZ2luZy1ldmVudGh1YnM7JzUuMC4xJztldmVudGh1YnM7RkFM - U0UuRXZlbnQgSHVicyAtIEF6dXJlIFN0b3JhZ2UgQ2hlY2twb2ludFN0b3JlO2F6dXJlLW1lc3Nh - Z2luZy1ldmVudGh1YnMtY2hlY2twb2ludHN0b3JlLWJsb2I7JzEuMC4xJztldmVudGh1YnM7RkFM - U0UuSWRlbnRpdHk7YXp1cmUtaWRlbnRpdHk7JzEuMS4wLWJldGEuMSc7aWRlbnRpdHk7RkFMU0Uu - S2V5IFZhdWx0IC0gQ2VydGlmaWNhdGVzO2F6dXJlLXNlY3VyaXR5LWtleXZhdWx0LWNlcnRpZmlj - YXRlczsnNC4wLjAnO2tleXZhdWx0O0ZBTFNFLktleSBWYXVsdCAtIEtleXM7YXp1cmUtc2VjdXJp - dHkta2V5dmF1bHQta2V5czsnNC4yLjAtYmV0YS4xJztrZXl2YXVsdDtGQUxTRS5LZXkgVmF1bHQg - LSBTZWNyZXRzO2F6dXJlLXNlY3VyaXR5LWtleXZhdWx0LXNlY3JldHM7JzQuMS4wJztrZXl2YXVs - dDtGQUxTRS5TdG9yYWdlIC0gQmxvYnM7YXp1cmUtc3RvcmFnZS1ibG9iOycxMi40LjAnO3N0b3Jh - Z2U7RkFMU0UuU3RvcmFnZSAtIEJsb2JzIEJhdGNoO2F6dXJlLXN0b3JhZ2UtYmxvYi1iYXRjaDsn - MTIuNC4wLWJldGEuMSc7c3RvcmFnZTtGQUxTRS5TdG9yYWdlIC0gQmxvYnMgQ3J5cHRvZ3JhcGh5 - O2F6dXJlLXN0b3JhZ2UtYmxvYi1jcnlwdG9ncmFwaHk7JzEyLjQuMCc7c3RvcmFnZTtGQUxTRS5T - dG9yYWdlIC0gRmlsZSBTaGFyZXM7YXp1cmUtc3RvcmFnZS1maWxlLXNoYXJlOycxMi4yLjAnO3N0 - b3JhZ2U7RkFMU0UuU3RvcmFnZSAtIFF1ZXVlczthenVyZS1zdG9yYWdlLXF1ZXVlOycxMi4zLjAn - O3N0b3JhZ2U7RkFMU0UuVGV4dCBBbmFseXRpY3M7YXp1cmUtYWktdGV4dGFuYWx5dGljczsnMS4w - LjAtYmV0YS4yJzt0ZXh0YW5hbHl0aWNzO0ZBTFNFLlRyYWNpbmc7YXp1cmUtY29yZS10cmFjaW5n - LW9wZW50ZWxlbWV0cnk7JzEuMC4wLWJldGEuMic7Y29yZTtGQUxTRS5TZXJ2aWNlO1BhY2thZ2U7 - VmVyc2lvbjtSZXBvUGF0aDtNaXNzaW5nRG9jcy5BcHAgQ29uZmlndXJhdGlvbjthenVyZS1kYXRh - LWFwcGNvbmZpZ3VyYXRpb247JzEuMC4xJzthcHBjb25maWd1cmF0aW9uO0ZBTFNFLkV2ZW50IEh1 - YnM7YXp1cmUtbWVzc2FnaW5nLWV2ZW50aHViczsnNS4wLjEnO2V2ZW50aHVicztGQUxTRS5AmHu0 - WcomQLrzRagiyesVAgoEhCSEJECYe7RZyiZAuvNFqCLJ6xUCBgaEJECYe7RZyiZAuvNFqCLJ6xU= + aW9uO2F6dXJlLWRhdGEtYXBwY29uZmlndXJhdGlvbjsxO2FwcGNvbmZpZ3VyYXRpb247RkFMU0Uu + RXZlbnQgSHVicy5FdmVudCBIdWJzIC0gQXp1cmUgU3RvcmFnZSBDaGVja3BvaW50U3RvcmU7YXp1 + cmUtbWVzc2FnaW5nLWV2ZW50aHVicy1jaGVja3BvaW50c3RvcmUtYmxvYjsnMS4wLjEnO2V2ZW50 + aHVicztGQUxTRS5JZGVudGl0eTthenVyZS1pZGVudGl0eTsnMS4xLjAtYmV0YS4xJztpZGVudGl0 + eTtGQUxTRS5LZXkgVmF1bHQgLSBDZXJ0aWZpY2F0ZXM7YXp1cmUtc2VjdXJpdHkta2V5dmF1bHQt + Y2VydGlmaWNhdGVzOyc0LjAuMCc7a2V5dmF1bHQ7RkFMU0UuS2V5IFZhdWx0IC0gS2V5czthenVy + ZS1zZWN1cml0eS1rZXl2YXVsdC1rZXlzOyc0LjIuMC1iZXRhLjEnO2tleXZhdWx0O0ZBTFNFLktl + eSBWYXVsdCAtIFNlY3JldHM7YXp1cmUtc2VjdXJpdHkta2V5dmF1bHQtc2VjcmV0czsnNC4xLjAn + O2tleXZhdWx0O0ZBTFNFLlN0b3JhZ2UgLSBCbG9iczthenVyZS1zdG9yYWdlLWJsb2I7JzEyLjQu + MCc7c3RvcmFnZTtGQUxTRS5TdG9yYWdlIC0gQmxvYnMgQmF0Y2g7YXp1cmUtc3RvcmFnZS1ibG9i + LWJhdGNoOycxMi40LjAtYmV0YS4xJztzdG9yYWdlO0ZBTFNFLlN0b3JhZ2UgLSBCbG9icyBDcnlw + dG9ncmFwaHk7YXp1cmUtc3RvcmFnZS1ibG9iLWNyeXB0b2dyYXBoeTsnMTIuNC4wJztzdG9yYWdl + O0ZBTFNFLlN0b3JhZ2UgLSBGaWxlIFNoYXJlczthenVyZS1zdG9yYWdlLWZpbGUtc2hhcmU7JzEy + LjIuMCc7c3RvcmFnZTtGQUxTRS5TdG9yYWdlIC0gUXVldWVzO2F6dXJlLXN0b3JhZ2UtcXVldWU7 + JzEyLjMuMCc7c3RvcmFnZTtGQUxTRS5UZXh0IEFuYWx5dGljczthenVyZS1haS10ZXh0YW5hbHl0 + aWNzOycxLjAuMC1iZXRhLjInO3RleHRhbmFseXRpY3M7RkFMU0UuVHJhY2luZzthenVyZS1jb3Jl + LXRyYWNpbmctb3BlbnRlbGVtZXRyeTsnMS4wLjAtYmV0YS4yJztjb3JlO0ZBTFNFLlNlcnZpY2U7 + UGFja2FnZTtWZXJzaW9uO1JlcG9QYXRoO01pc3NpbmdEb2NzLkFwcCBDb25maWd1cmF0aW9uO2F6 + dXJlLWRhdGEtYXBwY29uZmlndXJhdGlvbjsnMS4wLjEnO2FwcGNvbmZpZ3VyYXRpb247RkFMU0Uu + RXZlbnQgSHViczthenVyZS1tZXNzYWdpbmctZXZlbnRodWJzOyc1LjAuMSc7ZXZlbnRodWJzO0ZB + TFNFLkV2ZW50IEh1YnMgLSBBenVyZSBTdG9yYWdlIENoZWNrcG9pbnRTdG9yZTthenVyZS1tZXNz + YWdpbmctZXZlbnRodWJzLWNoZWNrcG9pbnRzdG9yZS1ibG9iOycxLjAuMSc7ZXZlbnRodWJzO0ZB + TFNFLklkZW50aXR5O2F6dXJlLWlkZW50aXR5OycxLjEuMC1iZXRhLjEnO2lkZW50aXR5O0ZBTFNF + LktleSBWYXVsdCAtIENlcnRpZmljYXRlczthenVyZS1zZWN1cml0eS1rZXl2YXVsdC1jZXJ0aWZp + Y2F0ZXM7JzQuMC4wJztrZXl2YXVsdDtGQUxTRS5LZXkgVmF1bHQgLSBLZXlzO2F6dXJlLXNlY3Vy + aXR5LWtleXZhdWx0LWtleXM7JzQuMi4wLWJldGEuMSc7a2V5dmF1bHQ7RkFMU0UuS2V5IFZhdWx0 + IC0gU2VjcmV0czthenVyZS1zZWN1cml0eS1rZXl2YXVsdC1zZWNyZXRzOyc0LjEuMCc7a2V5dmF1 + bHQ7RkFMU0UuU3RvcmFnZSAtIEJsb2JzO2F6dXJlLXN0b3JhZ2UtYmxvYjsnMTIuNC4wJztzdG9y + YWdlO0ZBTFNFLlN0b3JhZ2UgLSBCbG9icyBCYXRjaDthenVyZS1zdG9yYWdlLWJsb2ItYmF0Y2g7 + JzEyLjQuMC1iZXRhLjEnO3N0b3JhZ2U7RkFMU0UuU3RvcmFnZSAtIEJsb2JzIENyeXB0b2dyYXBo + eTthenVyZS1zdG9yYWdlLWJsb2ItY3J5cHRvZ3JhcGh5OycxMi40LjAnO3N0b3JhZ2U7RkFMU0Uu + U3RvcmFnZSAtIEZpbGUgU2hhcmVzO2F6dXJlLXN0b3JhZ2UtZmlsZS1zaGFyZTsnMTIuMi4wJztz + dG9yYWdlO0ZBTFNFLlN0b3JhZ2UgLSBRdWV1ZXM7YXp1cmUtc3RvcmFnZS1xdWV1ZTsnMTIuMy4w + JztzdG9yYWdlO0ZBTFNFLlRleHQgQW5hbHl0aWNzO2F6dXJlLWFpLXRleHRhbmFseXRpY3M7JzEu + MC4wLWJldGEuMic7dGV4dGFuYWx5dGljcztGQUxTRS5UcmFjaW5nO2F6dXJlLWNvcmUtdHJhY2lu + Zy1vcGVudGVsZW1ldHJ5OycxLjAuMC1iZXRhLjInO2NvcmU7RkFMU0UuU2VydmljZTtQYWNrYWdl + O1ZlcnNpb247UmVwb1BhdGg7TWlzc2luZ0RvY3MuQXBwIENvbmZpZ3VyYXRpb247YXp1cmUtZGF0 + YS1hcHBjb25maWd1cmF0aW9uOycxLjAuMSc7YXBwY29uZmlndXJhdGlvbjtGQUxTRS5FdmVudCBI + dWJzO2F6dXJlLW1lc3NhZ2luZy1ldmVudGh1YnM7JzUuMC4xJztldmVudGh1YnM7RkFMU0Uu6iJ4 + SZwJEkmDR5ly6M84BwIKBJwjnCPqInhJnAkSSYNHmXLozzgHAgYGnCPqInhJnAkSSYNHmXLozzgH headers: accept-ranges: - bytes content-type: - avro/binary date: - - Tue, 21 Apr 2020 00:37:24 GMT + - Fri, 12 Jun 2020 00:56:21 GMT etag: - - '"0x8D7E58C27A5AC07"' + - '"0x8D80E6B6BDFD66A"' last-modified: - - Tue, 21 Apr 2020 00:37:21 GMT + - Fri, 12 Jun 2020 00:56:20 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: @@ -268,7 +228,7 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Tue, 21 Apr 2020 00:37:21 GMT + - Tue, 09 Jun 2020 21:07:19 GMT x-ms-lease-state: - available x-ms-lease-status: @@ -278,4 +238,38 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 12 Jun 2020 00:56:21 GMT + x-ms-version: + - '2019-12-12' + method: DELETE + uri: https://storagename.blob.core.windows.net/utqqcontainerfdc51926?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Fri, 12 Jun 2020 00:56:21 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_setting_throws_error.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_setting_throws_error.yaml new file mode 100644 index 000000000000..b6965d98a2a8 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_quick_query.test_quick_query_with_serialization_setting_throws_error.yaml @@ -0,0 +1,242 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 12 Jun 2020 00:56:26 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utqqcontainer6b651eb5?restype=container + response: + body: + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:63cf2a20-901e-0092-3654-40c976000000\nTime:2020-06-12T00:56:27.0710171Z" + headers: + content-length: + - '230' + content-type: + - application/xml + date: + - Fri, 12 Jun 2020 00:56:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - ContainerAlreadyExists + x-ms-version: + - '2019-12-12' + status: + code: 409 + message: The specified container already exists. +- request: + body: "Service,Package,Version,RepoPath,MissingDocs\r\nApp Configuration,azure-data-appconfiguration,1,appconfiguration,FALSE\r\nEvent + Hubs\r\nEvent Hubs - Azure Storage CheckpointStore,azure-messaging-eventhubs-checkpointstore-blob,1.0.1,eventhubs,FALSE\r\nIdentity,azure-identity,1.1.0-beta.1,identity,FALSE\r\nKey + Vault - Certificates,azure-security-keyvault-certificates,4.0.0,keyvault,FALSE\r\nKey + Vault - Keys,azure-security-keyvault-keys,4.2.0-beta.1,keyvault,FALSE\r\nKey + Vault - Secrets,azure-security-keyvault-secrets,4.1.0,keyvault,FALSE\r\nStorage + - Blobs,azure-storage-blob,12.4.0,storage,FALSE\r\nStorage - Blobs Batch,azure-storage-blob-batch,12.4.0-beta.1,storage,FALSE\r\nStorage + - Blobs Cryptography,azure-storage-blob-cryptography,12.4.0,storage,FALSE\r\nStorage + - File Shares,azure-storage-file-share,12.2.0,storage,FALSE\r\nStorage - Queues,azure-storage-queue,12.3.0,storage,FALSE\r\nText + Analytics,azure-ai-textanalytics,1.0.0-beta.2,textanalytics,FALSE\r\nTracing,azure-core-tracing-opentelemetry,1.0.0-beta.2,core,FALSE\r\nService,Package,Version,RepoPath,MissingDocs\r\nApp + Configuration,azure-data-appconfiguration,1.0.1,appconfiguration,FALSE\r\nEvent + Hubs,azure-messaging-eventhubs,5.0.1,eventhubs,FALSE\r\nEvent Hubs - Azure Storage + CheckpointStore,azure-messaging-eventhubs-checkpointstore-blob,1.0.1,eventhubs,FALSE\r\nIdentity,azure-identity,1.1.0-beta.1,identity,FALSE\r\nKey + Vault - Certificates,azure-security-keyvault-certificates,4.0.0,keyvault,FALSE\r\nKey + Vault - Keys,azure-security-keyvault-keys,4.2.0-beta.1,keyvault,FALSE\r\nKey + Vault - Secrets,azure-security-keyvault-secrets,4.1.0,keyvault,FALSE\r\nStorage + - Blobs,azure-storage-blob,12.4.0,storage,FALSE\r\nStorage - Blobs Batch,azure-storage-blob-batch,12.4.0-beta.1,storage,FALSE\r\nStorage + - Blobs Cryptography,azure-storage-blob-cryptography,12.4.0,storage,FALSE\r\nStorage + - File Shares,azure-storage-file-share,12.2.0,storage,FALSE\r\nStorage - Queues,azure-storage-queue,12.3.0,storage,FALSE\r\nText + Analytics,azure-ai-textanalytics,1.0.0-beta.2,textanalytics,FALSE\r\nTracing,azure-core-tracing-opentelemetry,1.0.0-beta.2,core,FALSE\r\nService,Package,Version,RepoPath,MissingDocs\r\nApp + Configuration,azure-data-appconfiguration,1.0.1,appconfiguration,FALSE\r\nEvent + Hubs,azure-messaging-eventhubs,5.0.1,eventhubs,FALSE" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2254' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Fri, 12 Jun 2020 00:56:27 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utqqcontainer6b651eb5/csvfile6b651eb5 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - 1pD2vzAWr383Ra8EGUfLvQ== + date: + - Fri, 12 Jun 2020 00:56:27 GMT + etag: + - '"0x8D80E6B6FC4075B"' + last-modified: + - Fri, 12 Jun 2020 00:56:27 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - 2OE6jL7EoQ0= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 201 + message: Created +- request: + body: ' + + SQLSELECT RepoPath from BlobStoragedelimited," + + truedelimited;''.\true' + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '721' + Content-Type: + - application/xml; charset=utf-8 + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 12 Jun 2020 00:56:27 GMT + x-ms-version: + - '2019-12-12' + method: POST + uri: https://storagename.blob.core.windows.net/utqqcontainer6b651eb5/csvfile6b651eb5?comp=query + response: + body: + string: !!binary | + T2JqAQIWYXZyby5zY2hlbWG+HlsKICB7CiAgICAidHlwZSI6ICJyZWNvcmQiLAogICAgIm5hbWUi + OiAiY29tLm1pY3Jvc29mdC5henVyZS5zdG9yYWdlLnF1ZXJ5QmxvYkNvbnRlbnRzLnJlc3VsdERh + dGEiLAogICAgImRvYyI6ICJIb2xkcyByZXN1bHQgZGF0YSBpbiB0aGUgZm9ybWF0IHNwZWNpZmll + ZCBmb3IgdGhpcyBxdWVyeSAoQ1NWLCBKU09OLCBldGMuKS4iLAogICAgImZpZWxkcyI6IFsKICAg + ICAgewogICAgICAgICJuYW1lIjogImRhdGEiLAogICAgICAgICJ0eXBlIjogImJ5dGVzIgogICAg + ICB9CiAgICBdCiAgfSwKICB7CiAgICAidHlwZSI6ICJyZWNvcmQiLAogICAgIm5hbWUiOiAiY29t + Lm1pY3Jvc29mdC5henVyZS5zdG9yYWdlLnF1ZXJ5QmxvYkNvbnRlbnRzLmVycm9yIiwKICAgICJk + b2MiOiAiQW4gZXJyb3IgdGhhdCBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIHRoZSBxdWVyeS4i + LAogICAgImZpZWxkcyI6IFsKICAgICAgewogICAgICAgICJuYW1lIjogImZhdGFsIiwKICAgICAg + ICAidHlwZSI6ICJib29sZWFuIiwKICAgICAgICAiZG9jIjogIklmIHRydWUsIHRoaXMgZXJyb3Ig + cHJldmVudHMgZnVydGhlciBxdWVyeSBwcm9jZXNzaW5nLiAgTW9yZSByZXN1bHQgZGF0YSBtYXkg + YmUgcmV0dXJuZWQsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBhbGwgb2YgdGhlIG9y + aWdpbmFsIGRhdGEgd2lsbCBiZSBwcm9jZXNzZWQuICBJZiBmYWxzZSwgdGhpcyBlcnJvciBkb2Vz + IG5vdCBwcmV2ZW50IGZ1cnRoZXIgcXVlcnkgcHJvY2Vzc2luZy4iCiAgICAgIH0sCiAgICAgIHsK + ICAgICAgICAibmFtZSI6ICJuYW1lIiwKICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAg + ICJkb2MiOiAiVGhlIG5hbWUgb2YgdGhlIGVycm9yIgogICAgICB9LAogICAgICB7CiAgICAgICAg + Im5hbWUiOiAiZGVzY3JpcHRpb24iLAogICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAg + ImRvYyI6ICJBIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciIKICAgICAgfSwKICAgICAgewogICAg + ICAgICJuYW1lIjogInBvc2l0aW9uIiwKICAgICAgICAidHlwZSI6ICJsb25nIiwKICAgICAgICAi + ZG9jIjogIlRoZSBibG9iIG9mZnNldCBhdCB3aGljaCB0aGUgZXJyb3Igb2NjdXJyZWQiCiAgICAg + IH0KICAgIF0KICB9LAogIHsKICAgICJ0eXBlIjogInJlY29yZCIsCiAgICAibmFtZSI6ICJjb20u + bWljcm9zb2Z0LmF6dXJlLnN0b3JhZ2UucXVlcnlCbG9iQ29udGVudHMucHJvZ3Jlc3MiLAogICAg + ImRvYyI6ICJJbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvZ3Jlc3Mgb2YgdGhlIHF1ZXJ5IiwKICAg + ICJmaWVsZHMiOiBbCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJieXRlc1NjYW5uZWQiLAogICAg + ICAgICJ0eXBlIjogImxvbmciLAogICAgICAgICJkb2MiOiAiVGhlIG51bWJlciBvZiBieXRlcyB0 + aGF0IGhhdmUgYmVlbiBzY2FubmVkIgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAi + dG90YWxCeXRlcyIsCiAgICAgICAgInR5cGUiOiAibG9uZyIsCiAgICAgICAgImRvYyI6ICJUaGUg + dG90YWwgbnVtYmVyIG9mIGJ5dGVzIHRvIGJlIHNjYW5uZWQgaW4gdGhpcyBxdWVyeSIKICAgICAg + fQogICAgXQogIH0sCiAgewogICAgInR5cGUiOiAicmVjb3JkIiwKICAgICJuYW1lIjogImNvbS5t + aWNyb3NvZnQuYXp1cmUuc3RvcmFnZS5xdWVyeUJsb2JDb250ZW50cy5lbmQiLAogICAgImRvYyI6 + ICJTZW50IGFzIHRoZSBmaW5hbCBtZXNzYWdlIG9mIHRoZSByZXNwb25zZSwgaW5kaWNhdGluZyB0 + aGF0IGFsbCByZXN1bHRzIGhhdmUgYmVlbiBzZW50LiIsCiAgICAiZmllbGRzIjogWwogICAgICB7 + CiAgICAgICAgIm5hbWUiOiAidG90YWxCeXRlcyIsCiAgICAgICAgInR5cGUiOiAibG9uZyIsCiAg + ICAgICAgImRvYyI6ICJUaGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHRvIGJlIHNjYW5uZWQgaW4g + dGhpcyBxdWVyeSIKICAgICAgfQogICAgXQogIH0KXQoAPZwzOVGk90O+WpLufqaCcgLcBADWBGFw + cGNvbmZpZ3VyYXRpb24uZXZlbnRodWJzLmlkZW50aXR5LmtleXZhdWx0LmtleXZhdWx0LmtleXZh + dWx0LnN0b3JhZ2Uuc3RvcmFnZS5zdG9yYWdlLnN0b3JhZ2Uuc3RvcmFnZS50ZXh0YW5hbHl0aWNz + LmNvcmUuUmVwb1BhdGguYXBwY29uZmlndXJhdGlvbi5ldmVudGh1YnMuZXZlbnRodWJzLmlkZW50 + aXR5LmtleXZhdWx0LmtleXZhdWx0LmtleXZhdWx0LnN0b3JhZ2Uuc3RvcmFnZS5zdG9yYWdlLnN0 + b3JhZ2Uuc3RvcmFnZS50ZXh0YW5hbHl0aWNzLmNvcmUuUmVwb1BhdGguYXBwY29uZmlndXJhdGlv + bi5ldmVudGh1YnMuPZwzOVGk90O+WpLufqaCcgJ+AgAoSW52YWxpZENvbHVtbk9yZGluYWxKQ29s + dW1uIG9yZGluYWwgZG9lcyBub3QgZXhpc3QgaW4gcm93LuwBPZwzOVGk90O+WpLufqaCcgIKBJwj + nCM9nDM5UaT3Q75aku5+poJyAgYGnCM9nDM5UaT3Q75aku5+poJy + headers: + accept-ranges: + - bytes + content-type: + - avro/binary + date: + - Fri, 12 Jun 2020 00:56:28 GMT + etag: + - '"0x8D80E6B6FC4075B"' + last-modified: + - Fri, 12 Jun 2020 00:56:27 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Fri, 12 Jun 2020 00:40:08 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 12 Jun 2020 00:56:29 GMT + x-ms-version: + - '2019-12-12' + method: DELETE + uri: https://storagename.blob.core.windows.net/utqqcontainer6b651eb5?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Fri, 12 Jun 2020 00:56:29 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/test_quick_query.py b/sdk/storage/azure-storage-blob/tests/test_quick_query.py index 577ba4feb331..1608bb4e55a6 100644 --- a/sdk/storage/azure-storage-blob/tests/test_quick_query.py +++ b/sdk/storage/azure-storage-blob/tests/test_quick_query.py @@ -14,8 +14,8 @@ # ------------------------------------------------------------------------------ CSV_DATA = b'Service,Package,Version,RepoPath,MissingDocs\r\nApp Configuration,' \ - b'azure-data-appconfiguration,1.0.1,appconfiguration,FALSE\r\nEvent Hubs,' \ - b'azure-messaging-eventhubs,5.0.1,eventhubs,FALSE\r\nEvent Hubs - Azure Storage CheckpointStore,' \ + b'azure-data-appconfiguration,1,appconfiguration,FALSE\r\nEvent Hubs' \ + b'\r\nEvent Hubs - Azure Storage CheckpointStore,' \ b'azure-messaging-eventhubs-checkpointstore-blob,1.0.1,eventhubs,FALSE\r\nIdentity,azure-identity,' \ b'1.1.0-beta.1,identity,FALSE\r\nKey Vault - Certificates,azure-security-keyvault-certificates,' \ b'4.0.0,keyvault,FALSE\r\nKey Vault - Keys,azure-security-keyvault-keys,4.2.0-beta.1,keyvault,' \ @@ -87,7 +87,7 @@ def test_quick_query(self, resource_group, location, storage_account, storage_ac # upload the csv file blob_name = self._get_blob_reference() blob_client = bsc.get_blob_client(self.container_name, blob_name) - blob_client.upload_blob(CSV_DATA) + blob_client.upload_blob(CSV_DATA, overwrite=True) errors = [] @@ -105,6 +105,7 @@ def progress_callback(error, bytes_processed, total_bytes): self.assertEqual(len(errors), 0) self.assertEqual(resp.total_bytes, len(CSV_DATA)) + self._teardown(bsc) @GlobalStorageAccountPreparer() def test_quick_query_with_serialization_setting(self, resource_group, location, storage_account, @@ -118,7 +119,7 @@ def test_quick_query_with_serialization_setting(self, resource_group, location, # upload the csv file blob_name = self._get_blob_reference() blob_client = bsc.get_blob_client(self.container_name, blob_name) - blob_client.upload_blob(CSV_DATA) + blob_client.upload_blob(CSV_DATA, overwrite=True) errors = [] @@ -144,6 +145,48 @@ def progress_callback(error, bytes_processed, total_bytes): self.assertEqual(len(errors), 0) self.assertEqual(resp.total_bytes, len(CSV_DATA)) self.assertTrue(len(query_result) > 0) + self._teardown(bsc) + + @GlobalStorageAccountPreparer() + def test_quick_query_with_serialization_setting_throws_error(self, resource_group, location, storage_account, + storage_account_key): + # Arrange + bsc = BlobServiceClient( + self.account_url(storage_account, "blob"), + credential=storage_account_key) + self._setup(bsc) + + # upload the csv file + blob_name = self._get_blob_reference() + blob_client = bsc.get_blob_client(self.container_name, blob_name) + blob_client.upload_blob(CSV_DATA, overwrite=True) + + errors = [] + + def progress_callback(error, bytes_processed, total_bytes): + if error: + errors.append(error) + if not bytes_processed: + print("All bytes have been processed") + print("Total Bytes should be {}".format(total_bytes)) + else: + print(bytes_processed) + + input_seri = DelimitedTextConfiguration(column_separator=',', field_quote='"', record_separator='\n', + escape_char='', headers_present=True + ) + output_seri = DelimitedTextConfiguration(column_separator=';', field_quote="'", record_separator='.', + escape_char='\\', headers_present=True + ) + resp = blob_client.query("SELECT RepoPath from BlobStorage", progress_callback=progress_callback, + input_serialization=input_seri, output_serialization=output_seri) + query_result = resp.readall() + + # the error is because that line only has one column + self.assertEqual(len(errors), 1) + self.assertEqual(resp.total_bytes, len(CSV_DATA)) + self.assertTrue(len(query_result) > 0) + self._teardown(bsc) @GlobalStorageAccountPreparer() def test_quick_query_with_serialization_json_setting(self, resource_group, location, storage_account, @@ -154,19 +197,14 @@ def test_quick_query_with_serialization_json_setting(self, resource_group, locat credential=storage_account_key) self._setup(bsc) - data1 = b'{name: owner}' - data2 = b'{name2: owner2}' - data3 = b'{version:0,begin:1601-01-01T00:00:00.000Z,intervalSecs:3600,status:Finalized,config:' \ - b'{version:0,configVersionEtag:0x8d75ef460eb1a12,numShards:1,recordsFormat:avro,formatSchemaVersion:3,' \ - b'shardDistFnVersion:1},chunkFilePaths:[$blobchangefeed/log/00/1601/01/01/0000/],storageDiagnostics:' \ - b'{version:0,lastModifiedTime:2019-11-01T17:53:18.861Z,' \ - b'data:{aid:d305317d-a006-0042-00dd-902bbb06fc56}}}' + data1 = b'{\"name\": \"owner\", \"id\": 1}' + data2 = b'{\"name2\": \"owner2\"}' data = data1 + b'\n' + data2 + b'\n' + data1 # upload the json file blob_name = self._get_blob_reference() blob_client = bsc.get_blob_client(self.container_name, blob_name) - blob_client.upload_blob(data) + blob_client.upload_blob(data, overwrite=True) errors = [] @@ -182,7 +220,7 @@ def progress_callback(error, bytes_processed, total_bytes): input_seri = '\n' output_seri = ';' - resp = blob_client.query("SELECT * from BlobStorage", progress_callback=progress_callback, + resp = blob_client.query("SELECT name from BlobStorage", progress_callback=progress_callback, input_serialization=input_seri, output_serialization=output_seri) query_result = resp.readall() @@ -190,4 +228,5 @@ def progress_callback(error, bytes_processed, total_bytes): self.assertEqual(resp.total_bytes, len(data)) self.assertTrue(len(query_result) > 0) blob_client.delete_blob() + self._teardown(bsc) # ------------------------------------------------------------------------------