From 5822d53687699793439333536f628aa16b68c010 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Tue, 21 Sep 2021 03:53:06 +0300 Subject: [PATCH] tests: upgrade azurite ``` 2021-09-21T00:15:31.6789059Z ____________________ ERROR at setup of test_get_url[azure] _____________________ 2021-09-21T00:15:31.6790443Z [gw0] linux -- Python 3.7.12 /opt/hostedtoolcache/Python/3.7.12/x64/bin/python 2021-09-21T00:15:31.6791202Z 2021-09-21T00:15:31.6792291Z request = > 2021-09-21T00:15:31.6793561Z 2021-09-21T00:15:31.6794120Z def fill(request): 2021-09-21T00:15:31.6794792Z item = request._pyfuncitem 2021-09-21T00:15:31.6795627Z fixturenames = getattr(item, "fixturenames", None) 2021-09-21T00:15:31.6797090Z if fixturenames is None: 2021-09-21T00:15:31.6797922Z fixturenames = request.fixturenames 2021-09-21T00:15:31.6798497Z 2021-09-21T00:15:31.6799393Z if hasattr(item, 'callspec'): 2021-09-21T00:15:31.6800256Z for param, val in sorted_by_dependency(item.callspec.params, fixturenames): 2021-09-21T00:15:31.6801309Z if val is not None and is_lazy_fixture(val): 2021-09-21T00:15:31.6802233Z > item.callspec.params[param] = request.getfixturevalue(val.name) 2021-09-21T00:15:31.6802912Z 2021-09-21T00:15:31.6803937Z /opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/pytest_lazyfixture.py:35: 2021-09-21T00:15:31.6804952Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2021-09-21T00:15:31.6806085Z /home/runner/work/dvc/dvc/tests/remotes/azure.py:102: in azure 2021-09-21T00:15:31.6807090Z container.get_container_properties() 2021-09-21T00:15:31.6808748Z /opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/azure/core/tracing/decorator.py:83: in wrapper_use_tracer 2021-09-21T00:15:31.6822551Z return func(*args, **kwargs) 2021-09-21T00:15:31.6824143Z /opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/azure/storage/blob/_container_client.py:497: in get_container_properties 2021-09-21T00:15:31.6825038Z process_storage_error(error) 2021-09-21T00:15:31.6825652Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2021-09-21T00:15:31.6825908Z 2021-09-21T00:15:31.6826916Z storage_error = HttpResponseError("Operation returned an invalid status 'The value for one of the HTTP headers is not in the correct format.'") 2021-09-21T00:15:31.6827586Z 2021-09-21T00:15:31.6828351Z def process_storage_error(storage_error): # pylint:disable=too-many-statements 2021-09-21T00:15:31.6829086Z raise_error = HttpResponseError 2021-09-21T00:15:31.6829597Z serialized = False 2021-09-21T00:15:31.6830066Z if not storage_error.response: 2021-09-21T00:15:31.6830554Z raise storage_error 2021-09-21T00:15:31.6831558Z # If it is one of those three then it has been serialized prior by the generated layer. 2021-09-21T00:15:31.6832480Z if isinstance(storage_error, (PartialBatchErrorException, 2021-09-21T00:15:31.6833636Z ClientAuthenticationError, ResourceNotFoundError, ResourceExistsError)): 2021-09-21T00:15:31.6834687Z serialized = True 2021-09-21T00:15:31.6835753Z error_code = storage_error.response.headers.get('x-ms-error-code') 2021-09-21T00:15:31.6836524Z error_message = storage_error.message 2021-09-21T00:15:31.6837001Z additional_data = {} 2021-09-21T00:15:31.6837398Z error_dict = {} 2021-09-21T00:15:31.6837739Z try: 2021-09-21T00:15:31.6838506Z error_body = ContentDecodePolicy.deserialize_from_http_generics(storage_error.response) 2021-09-21T00:15:31.6839345Z # If it is an XML response 2021-09-21T00:15:31.6839837Z if isinstance(error_body, Element): 2021-09-21T00:15:31.6840285Z error_dict = { 2021-09-21T00:15:31.6840750Z child.tag.lower(): child.text 2021-09-21T00:15:31.6841435Z for child in error_body 2021-09-21T00:15:31.6841822Z } 2021-09-21T00:15:31.6842195Z # If it is a JSON response 2021-09-21T00:15:31.6842692Z elif isinstance(error_body, dict): 2021-09-21T00:15:31.6843413Z error_dict = error_body.get('error', {}) 2021-09-21T00:15:31.6843893Z elif not error_code: 2021-09-21T00:15:31.6844347Z _LOGGER.warning( 2021-09-21T00:15:31.6845611Z 'Unexpected return type % from ContentDecodePolicy.deserialize_from_http_generics.', type(error_body)) 2021-09-21T00:15:31.6846887Z error_dict = {'message': str(error_body)} 2021-09-21T00:15:31.6847294Z 2021-09-21T00:15:31.6847730Z # If we extracted from a Json or XML response 2021-09-21T00:15:31.6848205Z if error_dict: 2021-09-21T00:15:31.6848792Z error_code = error_dict.get('code') 2021-09-21T00:15:31.6849704Z error_message = error_dict.get('message') 2021-09-21T00:15:31.6850578Z additional_data = {k: v for k, v in error_dict.items() if k not in {'code', 'message'}} 2021-09-21T00:15:31.6851392Z except DecodeError: 2021-09-21T00:15:31.6851801Z pass 2021-09-21T00:15:31.6852290Z 2021-09-21T00:15:31.6852601Z try: 2021-09-21T00:15:31.6853156Z # This check would be unnecessary if we have already serialized the error 2021-09-21T00:15:31.6853821Z if error_code and not serialized: 2021-09-21T00:15:31.6854423Z error_code = StorageErrorCode(error_code) 2021-09-21T00:15:31.6855164Z if error_code in [StorageErrorCode.condition_not_met, 2021-09-21T00:15:31.6856229Z StorageErrorCode.blob_overwritten]: 2021-09-21T00:15:31.6856938Z raise_error = ResourceModifiedError 2021-09-21T00:15:31.6857739Z if error_code in [StorageErrorCode.invalid_authentication_info, 2021-09-21T00:15:31.6858641Z StorageErrorCode.authentication_failed]: 2021-09-21T00:15:31.6859468Z raise_error = ClientAuthenticationError 2021-09-21T00:15:31.6860256Z if error_code in [StorageErrorCode.resource_not_found, 2021-09-21T00:15:31.6861256Z StorageErrorCode.cannot_verify_copy_source, 2021-09-21T00:15:31.6861998Z StorageErrorCode.blob_not_found, 2021-09-21T00:15:31.6862716Z StorageErrorCode.queue_not_found, 2021-09-21T00:15:31.6863718Z StorageErrorCode.container_not_found, 2021-09-21T00:15:31.6864526Z StorageErrorCode.parent_not_found, 2021-09-21T00:15:31.6865432Z StorageErrorCode.share_not_found]: 2021-09-21T00:15:31.6866549Z raise_error = ResourceNotFoundError 2021-09-21T00:15:31.6867609Z if error_code in [StorageErrorCode.account_already_exists, 2021-09-21T00:15:31.6868499Z StorageErrorCode.account_being_created, 2021-09-21T00:15:31.6869383Z StorageErrorCode.resource_already_exists, 2021-09-21T00:15:31.6870728Z StorageErrorCode.resource_type_mismatch, 2021-09-21T00:15:31.6871688Z StorageErrorCode.blob_already_exists, 2021-09-21T00:15:31.6872429Z StorageErrorCode.queue_already_exists, 2021-09-21T00:15:31.6873252Z StorageErrorCode.container_already_exists, 2021-09-21T00:15:31.6874124Z StorageErrorCode.container_being_deleted, 2021-09-21T00:15:31.6874922Z StorageErrorCode.queue_being_deleted, 2021-09-21T00:15:31.6875857Z StorageErrorCode.share_already_exists, 2021-09-21T00:15:31.6876608Z StorageErrorCode.share_being_deleted]: 2021-09-21T00:15:31.6877289Z raise_error = ResourceExistsError 2021-09-21T00:15:31.6877807Z except ValueError: 2021-09-21T00:15:31.6878259Z # Got an unknown error code 2021-09-21T00:15:31.6878648Z pass 2021-09-21T00:15:31.6878942Z 2021-09-21T00:15:31.6879424Z # Error message should include all the error properties 2021-09-21T00:15:31.6879908Z try: 2021-09-21T00:15:31.6880416Z error_message += "\nErrorCode:{}".format(error_code.value) 2021-09-21T00:15:31.6881289Z except AttributeError: 2021-09-21T00:15:31.6883082Z error_message += "\nErrorCode:{}".format(error_code) 2021-09-21T00:15:31.6883807Z for name, info in additional_data.items(): 2021-09-21T00:15:31.6884446Z error_message += "\n{}:{}".format(name, info) 2021-09-21T00:15:31.6884932Z 2021-09-21T00:15:31.6885741Z # No need to create an instance if it has already been serialized by the generated layer 2021-09-21T00:15:31.6886538Z if serialized: 2021-09-21T00:15:31.6887019Z storage_error.message = error_message 2021-09-21T00:15:31.6887526Z error = storage_error 2021-09-21T00:15:31.6887908Z else: 2021-09-21T00:15:31.6888499Z error = raise_error(message=error_message, response=storage_error.response) 2021-09-21T00:15:31.6889380Z # Ensure these properties are stored in the error instance as well (not just the error message) 2021-09-21T00:15:31.6890078Z error.error_code = error_code 2021-09-21T00:15:31.6890630Z error.additional_info = additional_data 2021-09-21T00:15:31.6891956Z # error.args is what's surfaced on the traceback - show error message in all cases 2021-09-21T00:15:31.6892672Z error.args = (error.message,) 2021-09-21T00:15:31.6893112Z try: 2021-09-21T00:15:31.6893784Z # `from None` prevents us from double printing the exception (suppresses generated layer error context) 2021-09-21T00:15:31.6894873Z > exec("raise error from None") # pylint: disable=exec-used # nosec 2021-09-21T00:15:31.6896126Z E azure.core.exceptions.HttpResponseError: The value for one of the HTTP headers is not in the correct format. 2021-09-21T00:15:31.6897385Z E RequestId:d83b8102-bde1-4a77-aa7a-b67bbc2c4a80 2021-09-21T00:15:31.6898080Z E Time:2021-09-21T00:09:53.815Z 2021-09-21T00:15:31.6898578Z E ErrorCode:InvalidHeaderValue 2021-09-21T00:15:31.6899259Z E headername:x-ms-version 2021-09-21T00:15:31.6900066Z E headervalue:2020-10-02 2021-09-21T00:15:31.6900355Z 2021-09-21T00:15:31.6901781Z /opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/azure/storage/blob/_shared/response_handlers.py:177: HttpResponseError ``` --- tests/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/docker-compose.yml b/tests/docker-compose.yml index ca7a0c00b..46e03bf12 100644 --- a/tests/docker-compose.yml +++ b/tests/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.2' services: azurite: - image: mcr.microsoft.com/azure-storage/azurite:3.13.1 + image: mcr.microsoft.com/azure-storage/azurite:3.14.2 command: azurite -L -l /data --blobHost 0.0.0.0 --queueHost 0.0.0.0 ports: - "10000"