Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-azure-storage-queue for openSUSE:Factory checked in at 2024-07-22 17:15:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-azure-storage-queue (Old) and /work/SRC/openSUSE:Factory/.python-azure-storage-queue.new.17339 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-azure-storage-queue" Mon Jul 22 17:15:48 2024 rev:25 rq:1188600 version:12.11.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-azure-storage-queue/python-azure-storage-queue.changes 2024-05-15 21:29:13.283292028 +0200 +++ /work/SRC/openSUSE:Factory/.python-azure-storage-queue.new.17339/python-azure-storage-queue.changes 2024-07-22 17:16:19.077240280 +0200 @@ -1,0 +2,8 @@ +Fri Jul 19 09:10:02 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> + +- New upstream release + + Version 12.11.0 + + For detailed information about changes see the + CHANGELOG.md file provided with this package + +------------------------------------------------------------------- Old: ---- azure-storage-queue-12.10.0.tar.gz New: ---- azure-storage-queue-12.11.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-azure-storage-queue.spec ++++++ --- /var/tmp/diff_new_pack.9rrXXP/_old 2024-07-22 17:16:19.733266676 +0200 +++ /var/tmp/diff_new_pack.9rrXXP/_new 2024-07-22 17:16:19.733266676 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-azure-storage-queue -Version: 12.10.0 +Version: 12.11.0 Release: 0 Summary: Microsoft Azure Storage Queue Client Library for Python License: MIT ++++++ azure-storage-queue-12.10.0.tar.gz -> azure-storage-queue-12.11.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/CHANGELOG.md new/azure-storage-queue-12.11.0/CHANGELOG.md --- old/azure-storage-queue-12.10.0/CHANGELOG.md 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/CHANGELOG.md 2024-07-18 21:52:56.000000000 +0200 @@ -1,5 +1,16 @@ # Release History +## 12.11.0 (2024-07-17) + +### Features Added +- Stable release of features from 12.11.0b1 + +## 12.11.0b1 (2024-06-11) + +### Features Added +- Updated OAuth implementation to use the AAD scope returned in a Bearer challenge. +- Fixed an issue where client specified service versions may be ignored. + ## 12.10.0 (2024-05-07) ### Features Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/PKG-INFO new/azure-storage-queue-12.11.0/PKG-INFO --- old/azure-storage-queue-12.10.0/PKG-INFO 2024-05-08 20:42:33.471069000 +0200 +++ new/azure-storage-queue-12.11.0/PKG-INFO 2024-07-18 22:10:57.104967000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: azure-storage-queue -Version: 12.10.0 +Version: 12.11.0 Summary: Microsoft Azure Azure Queue Storage Client Library for Python Home-page: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-st... Author: Microsoft Corporation @@ -19,8 +19,13 @@ Classifier: License :: OSI Approved :: MIT License Requires-Python: >=3.8 Description-Content-Type: text/markdown -Provides-Extra: aio License-File: LICENSE +Requires-Dist: azure-core>=1.28.0 +Requires-Dist: cryptography>=2.1.4 +Requires-Dist: typing-extensions>=4.6.0 +Requires-Dist: isodate>=0.6.1 +Provides-Extra: aio +Requires-Dist: azure-core[aio]>=1.28.0; extra == "aio" # Azure Storage Queues client library for Python @@ -429,6 +434,17 @@ # Release History +## 12.11.0 (2024-07-17) + +### Features Added +- Stable release of features from 12.11.0b1 + +## 12.11.0b1 (2024-06-11) + +### Features Added +- Updated OAuth implementation to use the AAD scope returned in a Bearer challenge. +- Fixed an issue where client specified service versions may be ignored. + ## 12.10.0 (2024-05-07) ### Features Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/_patch.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/_patch.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/_patch.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/_patch.py 2024-07-18 21:52:56.000000000 +0200 @@ -27,5 +27,7 @@ # This file is used for handwritten extensions to the generated code. Example: # https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_co... + + def patch_sdk(): pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/_serialization.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/_serialization.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/_serialization.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/_serialization.py 2024-07-18 21:52:56.000000000 +0200 @@ -1441,7 +1441,7 @@ elif isinstance(response, type) and issubclass(response, Enum): return self.deserialize_enum(data, response) - if data is None: + if data is None or data is CoreNull: return data try: attributes = response._attribute_map # type: ignore diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/_patch.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/_patch.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/_patch.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/_patch.py 2024-07-18 21:52:56.000000000 +0200 @@ -27,5 +27,7 @@ # This file is used for handwritten extensions to the generated code. Example: # https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_co... + + def patch_sdk(): pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_message_id_operations.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_message_id_operations.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_message_id_operations.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_message_id_operations.py 2024-07-18 21:52:56.000000000 +0200 @@ -6,7 +6,8 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, Optional, TypeVar +import sys +from typing import Any, Callable, Dict, Optional, Type, TypeVar from azure.core.exceptions import ( ClientAuthenticationError, @@ -26,6 +27,10 @@ from ..._vendor import _convert_request from ...operations._message_id_operations import build_delete_request, build_update_request +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -88,7 +93,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -167,7 +172,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_messages_operations.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_messages_operations.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_messages_operations.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_messages_operations.py 2024-07-18 21:52:56.000000000 +0200 @@ -6,7 +6,8 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, List, Literal, Optional, TypeVar +import sys +from typing import Any, Callable, Dict, List, Literal, Optional, Type, TypeVar from azure.core.exceptions import ( ClientAuthenticationError, @@ -31,6 +32,10 @@ build_peek_request, ) +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -88,7 +93,7 @@ :rtype: list[~azure.storage.queue.models.DequeuedMessageItem] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -156,7 +161,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -243,7 +248,7 @@ :rtype: list[~azure.storage.queue.models.EnqueuedMessage] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -326,7 +331,7 @@ :rtype: list[~azure.storage.queue.models.PeekedMessageItem] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_patch.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_patch.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_patch.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_patch.py 2024-07-18 21:52:56.000000000 +0200 @@ -2,6 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ + + """Customize generated code here. Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_queue_operations.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_queue_operations.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_queue_operations.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_queue_operations.py 2024-07-18 21:52:56.000000000 +0200 @@ -6,7 +6,8 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, List, Literal, Optional, TypeVar +import sys +from typing import Any, Callable, Dict, List, Literal, Optional, Type, TypeVar from azure.core.exceptions import ( ClientAuthenticationError, @@ -33,6 +34,10 @@ build_set_metadata_request, ) +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -84,7 +89,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -153,7 +158,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -216,7 +221,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -295,7 +300,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -361,7 +366,7 @@ :rtype: list[~azure.storage.queue.models.SignedIdentifier] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -435,7 +440,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_service_operations.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_service_operations.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/aio/operations/_service_operations.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/aio/operations/_service_operations.py 2024-07-18 21:52:56.000000000 +0200 @@ -6,7 +6,8 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, List, Literal, Optional, TypeVar +import sys +from typing import Any, Callable, Dict, List, Literal, Optional, Type, TypeVar from azure.core.exceptions import ( ClientAuthenticationError, @@ -31,6 +32,10 @@ build_set_properties_request, ) +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -79,7 +84,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -150,7 +155,7 @@ :rtype: ~azure.storage.queue.models.StorageServiceProperties :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -221,7 +226,7 @@ :rtype: ~azure.storage.queue.models.StorageServiceStats :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -318,7 +323,7 @@ :rtype: ~azure.storage.queue.models.ListQueuesSegmentResponse :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/models/_patch.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/models/_patch.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/models/_patch.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/models/_patch.py 2024-07-18 21:52:56.000000000 +0200 @@ -2,6 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ + + """Customize generated code here. Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_message_id_operations.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_message_id_operations.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_message_id_operations.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_message_id_operations.py 2024-07-18 21:52:56.000000000 +0200 @@ -6,7 +6,8 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, Literal, Optional, TypeVar +import sys +from typing import Any, Callable, Dict, Literal, Optional, Type, TypeVar from azure.core.exceptions import ( ClientAuthenticationError, @@ -26,6 +27,10 @@ from .._serialization import Serializer from .._vendor import _convert_request +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -171,7 +176,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -250,7 +255,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_messages_operations.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_messages_operations.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_messages_operations.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_messages_operations.py 2024-07-18 21:52:56.000000000 +0200 @@ -6,7 +6,8 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, List, Literal, Optional, TypeVar +import sys +from typing import Any, Callable, Dict, List, Literal, Optional, Type, TypeVar from azure.core.exceptions import ( ClientAuthenticationError, @@ -26,6 +27,10 @@ from .._serialization import Serializer from .._vendor import _convert_request +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -243,7 +248,7 @@ :rtype: list[~azure.storage.queue.models.DequeuedMessageItem] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -311,7 +316,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -398,7 +403,7 @@ :rtype: list[~azure.storage.queue.models.EnqueuedMessage] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -481,7 +486,7 @@ :rtype: list[~azure.storage.queue.models.PeekedMessageItem] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_patch.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_patch.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_patch.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_patch.py 2024-07-18 21:52:56.000000000 +0200 @@ -2,6 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ + + """Customize generated code here. Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_queue_operations.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_queue_operations.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_queue_operations.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_queue_operations.py 2024-07-18 21:52:56.000000000 +0200 @@ -6,7 +6,8 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, List, Literal, Optional, TypeVar +import sys +from typing import Any, Callable, Dict, List, Literal, Optional, Type, TypeVar from azure.core.exceptions import ( ClientAuthenticationError, @@ -26,6 +27,10 @@ from .._serialization import Serializer from .._vendor import _convert_request +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -290,7 +295,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -359,7 +364,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -422,7 +427,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -501,7 +506,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -567,7 +572,7 @@ :rtype: list[~azure.storage.queue.models.SignedIdentifier] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -641,7 +646,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_service_operations.py new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_service_operations.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/operations/_service_operations.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/operations/_service_operations.py 2024-07-18 21:52:56.000000000 +0200 @@ -6,7 +6,8 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, List, Literal, Optional, TypeVar +import sys +from typing import Any, Callable, Dict, List, Literal, Optional, Type, TypeVar from azure.core.exceptions import ( ClientAuthenticationError, @@ -26,6 +27,10 @@ from .._serialization import Serializer from .._vendor import _convert_request +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -230,7 +235,7 @@ :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -301,7 +306,7 @@ :rtype: ~azure.storage.queue.models.StorageServiceProperties :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -372,7 +377,7 @@ :rtype: ~azure.storage.queue.models.StorageServiceStats :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -469,7 +474,7 @@ :rtype: ~azure.storage.queue.models.ListQueuesSegmentResponse :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/py.typed new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/py.typed --- old/azure-storage-queue-12.10.0/azure/storage/queue/_generated/py.typed 1970-01-01 01:00:00.000000000 +0100 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_generated/py.typed 2024-07-18 21:52:56.000000000 +0200 @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_serialize.py new/azure-storage-queue-12.11.0/azure/storage/queue/_serialize.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_serialize.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_serialize.py 2024-07-18 21:52:56.000000000 +0200 @@ -15,7 +15,19 @@ '2020-06-12', '2020-08-04', '2020-10-02', + '2020-12-06', '2021-02-12', + '2021-04-10', + '2021-06-08', + '2021-08-06', + '2021-12-02', + '2022-11-02', + '2023-01-03', + '2023-05-03', + '2023-08-03', + '2023-11-03', + '2024-05-04', + '2024-08-04', ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_shared/authentication.py new/azure-storage-queue-12.11.0/azure/storage/queue/_shared/authentication.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_shared/authentication.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_shared/authentication.py 2024-07-18 21:52:56.000000000 +0200 @@ -8,6 +8,7 @@ import re from typing import List, Tuple from urllib.parse import unquote, urlparse +from functools import cmp_to_key try: from yarl import URL @@ -27,6 +28,66 @@ logger = logging.getLogger(__name__) +table_lv0 = [ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x71c, 0x0, 0x71f, 0x721, 0x723, 0x725, + 0x0, 0x0, 0x0, 0x72d, 0x803, 0x0, 0x0, 0x733, 0x0, 0xd03, 0xd1a, 0xd1c, 0xd1e, + 0xd20, 0xd22, 0xd24, 0xd26, 0xd28, 0xd2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xe02, 0xe09, 0xe0a, 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, + 0xe70, 0xe7c, 0xe7e, 0xe89, 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, + 0x0, 0x0, 0x0, 0x743, 0x744, 0x748, 0xe02, 0xe09, 0xe0a, 0xe1a, 0xe21, 0xe23, 0xe25, + 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70, 0xe7c, 0xe7e, 0xe89, 0xe8a, 0xe91, 0xe99, + 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x74c, 0x0, 0x750, 0x0, +] + +table_lv4 = [ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8012, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8212, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +] + +def compare(lhs: str, rhs: str) -> int: # pylint:disable=too-many-return-statements + tables = [table_lv0, table_lv4] + curr_level, i, j, n = 0, 0, 0, len(tables) + lhs_len = len(lhs) + rhs_len = len(rhs) + while curr_level < n: + if curr_level == (n - 1) and i != j: + if i > j: + return -1 + if i < j: + return 1 + return 0 + + w1 = tables[curr_level][ord(lhs[i])] if i < lhs_len else 0x1 + w2 = tables[curr_level][ord(rhs[j])] if j < rhs_len else 0x1 + + if w1 == 0x1 and w2 == 0x1: + i = 0 + j = 0 + curr_level += 1 + elif w1 == w2: + i += 1 + j += 1 + elif w1 == 0: + i += 1 + elif w2 == 0: + j += 1 + else: + if w1 < w2: + return -1 + if w1 > w2: + return 1 + return 0 + return 0 + + # wraps a given exception with the desired exception type def _wrap_exception(ex, desired_type): msg = "" @@ -36,8 +97,6 @@ # This method attempts to emulate the sorting done by the service def _storage_header_sort(input_headers: List[Tuple[str, str]]) -> List[Tuple[str, str]]: - # Define the custom alphabet for weights - custom_weights = "-!#$%&*.^_|~+\"\'(),/`~0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]abcdefghijklmnopqrstuvwxyz{}" # Build dict of tuples and list of keys header_dict = {} @@ -46,9 +105,8 @@ header_dict[k] = v header_keys.append(k) - # Sort according to custom defined weights try: - header_keys = sorted(header_keys, key=lambda word: [custom_weights.index(c) for c in word]) + header_keys = sorted(header_keys, key=cmp_to_key(compare)) except ValueError as exc: raise ValueError("Illegal character encountered when sorting headers.") from exc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_shared/base_client.py new/azure-storage-queue-12.11.0/azure/storage/queue/_shared/base_client.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_shared/base_client.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_shared/base_client.py 2024-07-18 21:52:56.000000000 +0200 @@ -23,7 +23,6 @@ from azure.core.pipeline.transport import HttpTransport, RequestsTransport # pylint: disable=non-abstract-transport-import, no-name-in-module from azure.core.pipeline.policies import ( AzureSasCredentialPolicy, - BearerTokenCredentialPolicy, ContentDecodePolicy, DistributedTracingPolicy, HttpLoggingPolicy, @@ -38,6 +37,7 @@ from .policies import ( ExponentialRetry, QueueMessagePolicy, + StorageBearerTokenCredentialPolicy, StorageContentValidation, StorageHeadersPolicy, StorageHosts, @@ -231,7 +231,7 @@ audience = str(kwargs.pop('audience')).rstrip('/') + DEFAULT_OAUTH_SCOPE else: audience = STORAGE_OAUTH_SCOPE - self._credential_policy = BearerTokenCredentialPolicy(cast(TokenCredential, credential), audience) + self._credential_policy = StorageBearerTokenCredentialPolicy(cast(TokenCredential, credential), audience) elif isinstance(credential, SharedKeyCredentialPolicy): self._credential_policy = credential elif isinstance(credential, AzureSasCredential): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_shared/base_client_async.py new/azure-storage-queue-12.11.0/azure/storage/queue/_shared/base_client_async.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_shared/base_client_async.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_shared/base_client_async.py 2024-07-18 21:52:56.000000000 +0200 @@ -14,7 +14,6 @@ from azure.core.exceptions import HttpResponseError from azure.core.pipeline import AsyncPipeline from azure.core.pipeline.policies import ( - AsyncBearerTokenCredentialPolicy, AsyncRedirectPolicy, AzureSasCredentialPolicy, ContentDecodePolicy, @@ -34,7 +33,7 @@ StorageHosts, StorageRequestHook, ) -from .policies_async import AsyncStorageResponseHook +from .policies_async import AsyncStorageBearerTokenCredentialPolicy, AsyncStorageResponseHook from .response_handlers import PartialBatchErrorException, process_storage_error from .._shared_access_signature import _is_credential_sastoken @@ -97,7 +96,7 @@ **kwargs: Any ) -> Tuple[StorageConfiguration, AsyncPipeline]: self._credential_policy: Optional[ - Union[AsyncBearerTokenCredentialPolicy, + Union[AsyncStorageBearerTokenCredentialPolicy, SharedKeyCredentialPolicy, AzureSasCredentialPolicy]] = None if hasattr(credential, 'get_token'): @@ -105,7 +104,8 @@ audience = str(kwargs.pop('audience')).rstrip('/') + DEFAULT_OAUTH_SCOPE else: audience = STORAGE_OAUTH_SCOPE - self._credential_policy = AsyncBearerTokenCredentialPolicy(cast(AsyncTokenCredential, credential), audience) + self._credential_policy = AsyncStorageBearerTokenCredentialPolicy( + cast(AsyncTokenCredential, credential), audience) elif isinstance(credential, SharedKeyCredentialPolicy): self._credential_policy = credential elif isinstance(credential, AzureSasCredential): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure/storage/queue/_version.py new/azure-storage-queue-12.11.0/azure/storage/queue/_version.py --- old/azure-storage-queue-12.10.0/azure/storage/queue/_version.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure/storage/queue/_version.py 2024-07-18 21:52:56.000000000 +0200 @@ -4,4 +4,4 @@ # license information. # -------------------------------------------------------------------------- -VERSION = "12.10.0" +VERSION = "12.11.0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure_storage_queue.egg-info/PKG-INFO new/azure-storage-queue-12.11.0/azure_storage_queue.egg-info/PKG-INFO --- old/azure-storage-queue-12.10.0/azure_storage_queue.egg-info/PKG-INFO 2024-05-08 20:42:33.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure_storage_queue.egg-info/PKG-INFO 2024-07-18 22:10:57.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: azure-storage-queue -Version: 12.10.0 +Version: 12.11.0 Summary: Microsoft Azure Azure Queue Storage Client Library for Python Home-page: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-st... Author: Microsoft Corporation @@ -19,8 +19,13 @@ Classifier: License :: OSI Approved :: MIT License Requires-Python: >=3.8 Description-Content-Type: text/markdown -Provides-Extra: aio License-File: LICENSE +Requires-Dist: azure-core>=1.28.0 +Requires-Dist: cryptography>=2.1.4 +Requires-Dist: typing-extensions>=4.6.0 +Requires-Dist: isodate>=0.6.1 +Provides-Extra: aio +Requires-Dist: azure-core[aio]>=1.28.0; extra == "aio" # Azure Storage Queues client library for Python @@ -429,6 +434,17 @@ # Release History +## 12.11.0 (2024-07-17) + +### Features Added +- Stable release of features from 12.11.0b1 + +## 12.11.0b1 (2024-06-11) + +### Features Added +- Updated OAuth implementation to use the AAD scope returned in a Bearer challenge. +- Fixed an issue where client specified service versions may be ignored. + ## 12.10.0 (2024-05-07) ### Features Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/azure_storage_queue.egg-info/SOURCES.txt new/azure-storage-queue-12.11.0/azure_storage_queue.egg-info/SOURCES.txt --- old/azure-storage-queue-12.10.0/azure_storage_queue.egg-info/SOURCES.txt 2024-05-08 20:42:33.000000000 +0200 +++ new/azure-storage-queue-12.11.0/azure_storage_queue.egg-info/SOURCES.txt 2024-07-18 22:10:57.000000000 +0200 @@ -26,6 +26,7 @@ azure/storage/queue/_generated/_patch.py azure/storage/queue/_generated/_serialization.py azure/storage/queue/_generated/_vendor.py +azure/storage/queue/_generated/py.typed azure/storage/queue/_generated/aio/__init__.py azure/storage/queue/_generated/aio/_azure_queue_storage.py azure/storage/queue/_generated/aio/_configuration.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/pyproject.toml new/azure-storage-queue-12.11.0/pyproject.toml --- old/azure-storage-queue-12.10.0/pyproject.toml 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/pyproject.toml 2024-07-18 21:52:56.000000000 +0200 @@ -3,4 +3,3 @@ pyright = false type_check_samples = true verifytypes = true -strict_sphinx = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/tests/settings/settings_fake.py new/azure-storage-queue-12.11.0/tests/settings/settings_fake.py --- old/azure-storage-queue-12.10.0/tests/settings/settings_fake.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/tests/settings/settings_fake.py 2024-07-18 21:52:56.000000000 +0200 @@ -7,10 +7,6 @@ STORAGE_ACCOUNT_NAME = "fakename" STORAGE_ACCOUNT_KEY = "fakekey" -TENANT_ID = "00000000-0000-0000-0000-000000000000" -CLIENT_ID = "00000000-0000-0000-0000-000000000000" -CLIENT_SECRET = "00000000-0000-0000-0000-000000000000" - ACCOUNT_URL_SUFFIX = 'core.windows.net' RUN_IN_LIVE = "False" SKIP_LIVE_RECORDING = "True" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/tests/settings/testcase.py new/azure-storage-queue-12.11.0/tests/settings/testcase.py --- old/azure-storage-queue-12.10.0/tests/settings/testcase.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/tests/settings/testcase.py 2024-07-18 21:52:56.000000000 +0200 @@ -38,9 +38,6 @@ os.environ['PROTOCOL'] = PROTOCOL os.environ['ACCOUNT_URL_SUFFIX'] = ACCOUNT_URL_SUFFIX -os.environ['STORAGE_TENANT_ID'] = os.environ.get('STORAGE_TENANT_ID', None) or TENANT_ID -os.environ['STORAGE_CLIENT_ID'] = os.environ.get('STORAGE_CLIENT_ID', None) or CLIENT_ID -os.environ['STORAGE_CLIENT_SECRET'] = os.environ.get('STORAGE_CLIENT_SECRET', None) or CLIENT_SECRET QueuePreparer = functools.partial( PowerShellPreparer, "storage", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/tests/test_queue.py new/azure-storage-queue-12.11.0/tests/test_queue.py --- old/azure-storage-queue-12.10.0/tests/test_queue.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/tests/test_queue.py 2024-07-18 21:52:56.000000000 +0200 @@ -27,7 +27,7 @@ ResourceTypes ) -from devtools_testutils import recorded_by_proxy +from devtools_testutils import FakeTokenCredential, recorded_by_proxy from devtools_testutils.storage import StorageRecordedTestCase from settings.testcase import QueuePreparer @@ -877,7 +877,7 @@ storage_account_name = kwargs.pop("storage_account_name") storage_account_key = kwargs.pop("storage_account_key") - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient) # Action 1: make sure token works service = QueueServiceClient(self.account_url(storage_account_name, "queue"), credential=token_credential) @@ -885,7 +885,7 @@ assert queues is not None # Action 2: change token value to make request fail - fake_credential = self.generate_fake_token() + fake_credential = FakeTokenCredential() service = QueueServiceClient(self.account_url(storage_account_name, "queue"), credential=fake_credential) with pytest.raises(ClientAuthenticationError): list(service.list_queues()) @@ -1360,7 +1360,7 @@ qsc.get_service_properties() # Act - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient) qsc = QueueServiceClient( self.account_url(storage_account_name, "queue"), credential=token_credential, audience=f'https://{storage_account_name}.queue.core.windows.net' @@ -1381,15 +1381,14 @@ qsc.get_service_properties() # Act - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient) qsc = QueueServiceClient( self.account_url(storage_account_name, "queue"), credential=token_credential, audience=f'https://badaudience.queue.core.windows.net' ) - # Assert - with pytest.raises(ClientAuthenticationError): - qsc.get_service_properties() + # Will not raise ClientAuthenticationError despite bad audience due to Bearer Challenge + qsc.get_service_properties() @QueuePreparer() @recorded_by_proxy @@ -1402,7 +1401,7 @@ queue.create_queue() # Act - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient) queue = QueueClient( self.account_url(storage_account_name, "queue"), 'testqueue1', credential=token_credential, audience=f'https://{storage_account_name}.queue.core.windows.net' @@ -1423,15 +1422,14 @@ queue.create_queue() # Act - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient) queue = QueueClient( self.account_url(storage_account_name, "queue"), 'testqueue2', credential=token_credential, audience=f'https://badaudience.queue.core.windows.net' ) - # Assert - with pytest.raises(ClientAuthenticationError): - queue.get_queue_properties() + # Will not raise ClientAuthenticationError despite bad audience due to Bearer Challenge + queue.get_queue_properties() # ------------------------------------------------------------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/tests/test_queue_async.py new/azure-storage-queue-12.11.0/tests/test_queue_async.py --- old/azure-storage-queue-12.10.0/tests/test_queue_async.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/tests/test_queue_async.py 2024-07-18 21:52:56.000000000 +0200 @@ -26,6 +26,7 @@ ) from azure.storage.queue.aio import QueueClient, QueueServiceClient +from devtools_testutils.fake_credentials_async import AsyncFakeCredential from devtools_testutils.aio import recorded_by_proxy_async from devtools_testutils.storage.aio import AsyncStorageRecordedTestCase from settings.testcase import QueuePreparer @@ -895,7 +896,7 @@ storage_account_key = kwargs.pop("storage_account_key") qsc = QueueServiceClient(self.account_url(storage_account_name, "queue"), storage_account_key) - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient, is_async=True) # Action 1: make sure token works service = QueueServiceClient( @@ -905,7 +906,7 @@ assert queues is not None # Action 2: change token value to make request fail - fake_credential = self.generate_fake_token() + fake_credential = AsyncFakeCredential() service = QueueServiceClient( self.account_url(storage_account_name, "queue"), credential=fake_credential) @@ -1390,7 +1391,7 @@ await qsc.get_service_properties() # Act - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient, is_async=True) qsc = QueueServiceClient( self.account_url(storage_account_name, "queue"), credential=token_credential, audience=f'https://{storage_account_name}.queue.core.windows.net' @@ -1411,15 +1412,14 @@ await qsc.get_service_properties() # Act - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient, is_async=True) qsc = QueueServiceClient( self.account_url(storage_account_name, "queue"), credential=token_credential, audience=f'https://badaudience.queue.core.windows.net' ) - # Assert - with pytest.raises(ClientAuthenticationError): - await qsc.get_service_properties() + # Will not raise ClientAuthenticationError despite bad audience due to Bearer Challenge + await qsc.get_service_properties() @QueuePreparer() @recorded_by_proxy_async @@ -1433,7 +1433,7 @@ await queue.create_queue() # Act - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient, is_async=True) queue = QueueClient( self.account_url(storage_account_name, "queue"), queue_name, credential=token_credential, audience=f'https://{storage_account_name}.queue.core.windows.net' @@ -1455,15 +1455,14 @@ await queue.create_queue() # Act - token_credential = self.generate_oauth_token() + token_credential = self.get_credential(QueueServiceClient, is_async=True) queue = QueueClient( self.account_url(storage_account_name, "queue"), queue_name, credential=token_credential, audience=f'https://badaudience.queue.core.windows.net' ) - # Assert - with pytest.raises(ClientAuthenticationError): - await queue.get_queue_properties() + # Will not raise ClientAuthenticationError despite bad audience due to Bearer Challenge + await queue.get_queue_properties() # ------------------------------------------------------------------------------ if __name__ == '__main__': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/tests/test_queue_client.py new/azure-storage-queue-12.11.0/tests/test_queue_client.py --- old/azure-storage-queue-12.10.0/tests/test_queue_client.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/tests/test_queue_client.py 2024-07-18 21:52:56.000000000 +0200 @@ -34,7 +34,7 @@ class TestStorageQueueClient(StorageRecordedTestCase): def setUp(self): self.sas_token = self.generate_fake_sas_token() - self.token_credential = self.generate_oauth_token() + self.token_credential = self.get_credential(QueueServiceClient) # --Helpers----------------------------------------------------------------- def validate_standard_account_endpoints(self, service, url_type, account_name, account_key): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-storage-queue-12.10.0/tests/test_queue_client_async.py new/azure-storage-queue-12.11.0/tests/test_queue_client_async.py --- old/azure-storage-queue-12.10.0/tests/test_queue_client_async.py 2024-05-08 20:26:27.000000000 +0200 +++ new/azure-storage-queue-12.11.0/tests/test_queue_client_async.py 2024-07-18 21:52:56.000000000 +0200 @@ -28,7 +28,7 @@ class TestAsyncStorageQueueClient(AsyncStorageRecordedTestCase): def setUp(self): self.sas_token = self.generate_fake_sas_token() - self.token_credential = self.generate_oauth_token() + self.token_credential = self.get_credential(QueueServiceClient, is_async=True) # --Helpers----------------------------------------------------------------- def validate_standard_account_endpoints(self, service, url_type, storage_account_name, storage_account_key):