Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-azure-servicebus for 
openSUSE:Factory checked in at 2025-04-14 12:59:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-azure-servicebus (Old)
 and      /work/SRC/openSUSE:Factory/.python-azure-servicebus.new.1907 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-azure-servicebus"

Mon Apr 14 12:59:09 2025 rev:39 rq:1269133 version:7.14.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-azure-servicebus/python-azure-servicebus.changes
  2025-03-19 22:33:36.633840018 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-azure-servicebus.new.1907/python-azure-servicebus.changes
        2025-04-14 12:59:20.938684820 +0200
@@ -1,0 +2,8 @@
+Thu Apr 10 06:12:34 UTC 2025 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- New upstream release
+  + Version 7.14.2
+  + For detailed information about changes see the
+    CHANGELOG.md file provided with this package
+
+-------------------------------------------------------------------

Old:
----
  azure_servicebus-7.14.1.tar.gz

New:
----
  azure_servicebus-7.14.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-azure-servicebus.spec ++++++
--- /var/tmp/diff_new_pack.BcX9CC/_old  2025-04-14 12:59:21.486707834 +0200
+++ /var/tmp/diff_new_pack.BcX9CC/_new  2025-04-14 12:59:21.490708002 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-azure-servicebus
-Version:        7.14.1
+Version:        7.14.2
 Release:        0
 Summary:        Microsoft Azure Service Bus Runtime Client Library
 License:        Apache-2.0

++++++ azure_servicebus-7.14.1.tar.gz -> azure_servicebus-7.14.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_servicebus-7.14.1/CHANGELOG.md 
new/azure_servicebus-7.14.2/CHANGELOG.md
--- old/azure_servicebus-7.14.1/CHANGELOG.md    2025-03-12 18:40:35.000000000 
+0100
+++ new/azure_servicebus-7.14.2/CHANGELOG.md    2025-04-09 22:07:29.000000000 
+0200
@@ -1,5 +1,18 @@
 # Release History
 
+## 7.14.2 (2025-04-09)
+
+### Bugs Fixed
+
+- Fixed a bug where max number of messages was not being requested when 
receiving from the service due to an incorrect link credit calculation. 
([#40156](https://github.com/Azure/azure-sdk-for-python/issues/40156))
+- 
+### Other Changes
+
+- Added support for handling a C# DateTime.MinValue timestamp, which is 
returned by the service as a sentinel for time which is not set.
+- Deprecating `uamqp_transport` in favor of pyAMQP transport. The 
`uamqp_transport` will be removed in the next minor release.
+- Fixed aiohttp websocket library showing a deprecation warning due to an 
incorrect timeout type 
([#40429](https://github.com/Azure/azure-sdk-for-python/issues/40429))
+- Dropped support for Python 3.8
+
 ## 7.14.1 (2025-03-12)
 
 ### Bugs Fixed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_servicebus-7.14.1/PKG-INFO 
new/azure_servicebus-7.14.2/PKG-INFO
--- old/azure_servicebus-7.14.1/PKG-INFO        2025-03-12 18:43:01.904153300 
+0100
+++ new/azure_servicebus-7.14.2/PKG-INFO        2025-04-09 22:09:53.918960800 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: azure-servicebus
-Version: 7.14.1
+Version: 7.14.2
 Summary: Microsoft Azure Service Bus Client Library for Python
 Home-page: https://github.com/Azure/azure-sdk-for-python
 Author: Microsoft Corporation
@@ -11,7 +11,6 @@
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
@@ -63,7 +62,7 @@
 To use this package, you must have:
 * Azure subscription - [Create a free account][azure_sub]
 * Azure Service Bus - [Namespace and management 
credentials][service_bus_namespace]
-* Python 3.8 or later - [Install Python][python]
+* Python 3.9 or later - [Install Python][python]
 
 
 If you need an Azure service bus namespace, you can create it via the [Azure 
Portal][azure_namespace_creation].
@@ -671,6 +670,19 @@
 
 # Release History
 
+## 7.14.2 (2025-04-09)
+
+### Bugs Fixed
+
+- Fixed a bug where max number of messages was not being requested when 
receiving from the service due to an incorrect link credit calculation. 
([#40156](https://github.com/Azure/azure-sdk-for-python/issues/40156))
+- 
+### Other Changes
+
+- Added support for handling a C# DateTime.MinValue timestamp, which is 
returned by the service as a sentinel for time which is not set.
+- Deprecating `uamqp_transport` in favor of pyAMQP transport. The 
`uamqp_transport` will be removed in the next minor release.
+- Fixed aiohttp websocket library showing a deprecation warning due to an 
incorrect timeout type 
([#40429](https://github.com/Azure/azure-sdk-for-python/issues/40429))
+- Dropped support for Python 3.8
+
 ## 7.14.1 (2025-03-12)
 
 ### Bugs Fixed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_servicebus-7.14.1/README.md 
new/azure_servicebus-7.14.2/README.md
--- old/azure_servicebus-7.14.1/README.md       2025-03-12 18:40:35.000000000 
+0100
+++ new/azure_servicebus-7.14.2/README.md       2025-04-09 22:07:29.000000000 
+0200
@@ -36,7 +36,7 @@
 To use this package, you must have:
 * Azure subscription - [Create a free account][azure_sub]
 * Azure Service Bus - [Namespace and management 
credentials][service_bus_namespace]
-* Python 3.8 or later - [Install Python][python]
+* Python 3.9 or later - [Install Python][python]
 
 
 If you need an Azure service bus namespace, you can create it via the [Azure 
Portal][azure_namespace_creation].
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_common/utils.py 
new/azure_servicebus-7.14.2/azure/servicebus/_common/utils.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_common/utils.py       
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_common/utils.py       
2025-04-09 22:07:29.000000000 +0200
@@ -65,9 +65,24 @@
 
 _log = logging.getLogger(__name__)
 
+TZ_UTC: timezone = timezone.utc
+# Number of seconds between the Unix epoch (1/1/1970) and year 1 CE.
+# This is the lowest value that can be represented by an AMQP timestamp.
+CE_ZERO_SECONDS: int = -62_135_596_800
 
-def utc_from_timestamp(timestamp):
-    return datetime.datetime.fromtimestamp(timestamp, tz=timezone.utc)
+def utc_from_timestamp(timestamp: float) -> datetime.datetime:
+    """
+    :param float timestamp: Timestamp in seconds to be converted to datetime.
+    :rtype: datetime.datetime
+    :returns: A datetime object representing the timestamp in UTC.
+    """
+    # The AMQP timestamp is the number of seconds since the Unix epoch.
+    # AMQP brokers represent the lowest value as -62_135_596_800 (the
+    # number of seconds between the Unix epoch (1/1/1970) and year 1 CE) as
+    # a sentinel for a time which is not set.
+    if timestamp == CE_ZERO_SECONDS:
+        return datetime.datetime.min.replace(tzinfo=TZ_UTC)
+    return datetime.datetime.fromtimestamp(timestamp, tz=TZ_UTC)
 
 
 def utc_now():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/aio/_client_async.py 
new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/aio/_client_async.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/aio/_client_async.py   
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/aio/_client_async.py   
2025-04-09 22:07:29.000000000 +0200
@@ -147,7 +147,7 @@
                 elapsed_time = current_time - start_time
                 if elapsed_time >= self._keep_alive_interval:
                     await asyncio.shield(
-                        self._connection.listen(wait=self._socket_timeout, 
batch=self._link.total_link_credit)
+                        self._connection.listen(wait=self._socket_timeout, 
batch=self._link.current_link_credit)
                     )
                     start_time = current_time
                 await asyncio.sleep(1)
@@ -733,7 +733,7 @@
         :rtype: bool
         """
         try:
-            if self._link.total_link_credit <= 0:
+            if self._link.current_link_credit<= 0:
                 await self._link.flow(link_credit=self._link_credit)
             await self._connection.listen(wait=self._socket_timeout, **kwargs)
         except ValueError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/aio/_link_async.py 
new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/aio/_link_async.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/aio/_link_async.py     
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/aio/_link_async.py     
2025-04-09 22:07:29.000000000 +0200
@@ -96,7 +96,6 @@
         self._on_link_state_change = kwargs.get("on_link_state_change")
         self._on_attach = kwargs.get("on_attach")
         self._error: Optional[AMQPLinkError] = None
-        self.total_link_credit = self.link_credit
 
     async def __aenter__(self) -> "Link":
         await self.attach()
@@ -276,19 +275,6 @@
             await self._set_state(LinkState.DETACHED)
 
     async def flow(self, *, link_credit: Optional[int] = None, **kwargs) -> 
None:
-        # Given the desired link credit `link_credit`, the link credit sent via
-        # FlowFrame is calculated as follows: The link credit to flow on the 
wire
-        # `self.current_link_credit` is the desired link credit `link_credit`
-        # minus the current link credit on the wire `self.total_link_credit`.
-        self.current_link_credit = link_credit - self.total_link_credit if 
link_credit is not None else self.link_credit
-
-        # If the link credit to flow is greater than 0 (i.e the desired link 
credit
-        # is greater than the current link credit on the wire), then we will 
send a
-        # flow to issue more link credit. Otherwise link credit on the wire is 
sufficient.
-        if self.current_link_credit > 0:
-            # Calculate the total link credit on the wire, by adding the credit
-            # we will flow to the total link credit.
-            self.total_link_credit = (
-                self.current_link_credit + self.total_link_credit if 
link_credit is not None else self.link_credit
-            )
-            await self._outgoing_flow(**kwargs)
+        # Reset link credit to the default and flow
+        self.current_link_credit = link_credit if link_credit is not None else 
self.link_credit
+        await self._outgoing_flow(**kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/aio/_receiver_async.py 
new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/aio/_receiver_async.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/aio/_receiver_async.py 
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/aio/_receiver_async.py 
2025-04-09 22:07:29.000000000 +0200
@@ -64,7 +64,6 @@
         if not frame[5]:
             self.delivery_count += 1
             self.current_link_credit -= 1
-            self.total_link_credit -= 1
         if self.received_delivery_id is not None:
             self._first_frame = frame
         if not self.received_delivery_id and not self._received_payload:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/aio/_transport_async.py 
new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/aio/_transport_async.py
--- 
old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/aio/_transport_async.py    
    2025-03-12 18:40:35.000000000 +0100
+++ 
new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/aio/_transport_async.py    
    2025-04-09 22:07:29.000000000 +0200
@@ -438,6 +438,7 @@
             from aiohttp import (  # pylint: 
disable=networking-import-outside-azure-core-transport
                 ClientSession,
                 ClientConnectorError,
+                ClientWSTimeout,
             )
             from urllib.parse import urlsplit
         except ImportError:
@@ -466,7 +467,7 @@
 
             self.sock = await self.session.ws_connect(
                 url=url,
-                timeout=self.socket_timeout,  # timeout for connect
+                timeout=ClientWSTimeout(ws_close=self.socket_timeout),
                 protocols=[AMQP_WS_SUBPROTOCOL],
                 autoclose=False,
                 proxy=http_proxy_host,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/client.py 
new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/client.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/client.py      
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/client.py      
2025-04-09 22:07:29.000000000 +0200
@@ -237,7 +237,7 @@
                 current_time = time.time()
                 elapsed_time = current_time - start_time
                 if elapsed_time >= self._keep_alive_interval:
-                    self._connection.listen(wait=self._socket_timeout, 
batch=self._link.total_link_credit)
+                    self._connection.listen(wait=self._socket_timeout, 
batch=self._link.current_link_credit)
                     start_time = current_time
                 time.sleep(1)
         except Exception as e:  # pylint: disable=broad-except
@@ -852,7 +852,7 @@
         :rtype: bool
         """
         try:
-            if self._link.total_link_credit <= 0:
+            if self._link.current_link_credit <= 0:
                 self._link.flow(link_credit=self._link_credit)
             self._connection.listen(wait=self._socket_timeout, **kwargs)
         except ValueError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/link.py 
new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/link.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/link.py        
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/link.py        
2025-04-09 22:07:29.000000000 +0200
@@ -92,7 +92,6 @@
         self._on_link_state_change = kwargs.get("on_link_state_change")
         self._on_attach = kwargs.get("on_attach")
         self._error: Optional[AMQPLinkError] = None
-        self.total_link_credit = self.link_credit
 
     def __enter__(self) -> "Link":
         self.attach()
@@ -273,18 +272,5 @@
             self._set_state(LinkState.DETACHED)
 
     def flow(self, *, link_credit: Optional[int] = None, **kwargs: Any) -> 
None:
-        # Given the desired link credit `link_credit`, the link credit sent via
-        # FlowFrame is calculated as follows: The link credit to flow on the 
wire
-        # `self.current_link_credit` is the desired link credit
-        # `link_credit` minus the current link credit on the wire 
`self.total_link_credit`.
-        self.current_link_credit = link_credit - self.total_link_credit if 
link_credit is not None else self.link_credit
-
-        # If the link credit to flow is greater than 0 (i.e the desired link 
credit is greater than
-        # the current link credit on the wire), then we will send a flow to 
issue more link credit.
-        # Otherwise link credit on the wire is sufficient.
-        if self.current_link_credit > 0:
-            # Calculate the total link credit on the wire, by adding the 
credit we will flow to the total link credit.
-            self.total_link_credit = (
-                self.current_link_credit + self.total_link_credit if 
link_credit is not None else self.link_credit
-            )
-            self._outgoing_flow(**kwargs)
+        self.current_link_credit = link_credit if link_credit is not None else 
self.link_credit
+        self._outgoing_flow(**kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/receiver.py 
new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/receiver.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/receiver.py    
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/receiver.py    
2025-04-09 22:07:29.000000000 +0200
@@ -60,7 +60,6 @@
         # If more is false --> this is the last frame of the message
         if not frame[5]:
             self.current_link_credit -= 1
-            self.total_link_credit -= 1
             self.delivery_count += 1
         self.received_delivery_id = frame[1]  # delivery_id
         if self.received_delivery_id is not None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/utils.py 
new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/utils.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_pyamqp/utils.py       
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_pyamqp/utils.py       
2025-04-09 22:07:29.000000000 +0200
@@ -14,9 +14,22 @@
 from ._encode import encode_payload
 
 TZ_UTC: timezone = timezone.utc
+# Number of seconds between the Unix epoch (1/1/1970) and year 1 CE.
+# This is the lowest value that can be represented by an AMQP timestamp.
+CE_ZERO_SECONDS: int = -62_135_596_800
 
-
-def utc_from_timestamp(timestamp):
+def utc_from_timestamp(timestamp: float) -> datetime.datetime:
+    """
+    :param float timestamp: Timestamp in seconds to be converted to datetime.
+    :rtype: datetime.datetime
+    :returns: A datetime object representing the timestamp in UTC.
+    """
+    # The AMQP timestamp is the number of seconds since the Unix epoch.
+    # AMQP brokers represent the lowest value as -62_135_596_800 (the
+    # number of seconds between the Unix epoch (1/1/1970) and year 1 CE) as
+    # a sentinel for a time which is not set.
+    if timestamp == CE_ZERO_SECONDS:
+        return datetime.datetime.min.replace(tzinfo=TZ_UTC)
     return datetime.datetime.fromtimestamp(timestamp, tz=TZ_UTC)
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/_servicebus_client.py 
new/azure_servicebus-7.14.2/azure/servicebus/_servicebus_client.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_servicebus_client.py  
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_servicebus_client.py  
2025-04-09 22:07:29.000000000 +0200
@@ -5,6 +5,7 @@
 # pylint: disable=client-method-missing-tracing-decorator
 from typing import Any, Union, Optional, TYPE_CHECKING, Type
 import logging
+import warnings
 from weakref import WeakSet
 from typing_extensions import Literal
 import certifi
@@ -120,6 +121,15 @@
         amqp_transport: Union[Type[PyamqpTransport], Type["UamqpTransport"]] = 
PyamqpTransport
 
         if uamqp_transport:
+            # Deprecation of uamqp transport
+            warnings.warn(
+                "uAMQP legacy support will be removed in the 7.15.0 minor 
release. "
+                "Please remove the use of `uamqp_transport` keyword argument 
from the client in order "
+                "to use the pure Python AMQP transport. "
+                "If you rely on this, please comment on [this issue]"
+                "(https://github.com/Azure/azure-sdk-for-python/issues/40347) 
",
+                DeprecationWarning, stacklevel=2
+            )
             try:
                 from ._transport._uamqp_transport import UamqpTransport
                 amqp_transport = UamqpTransport
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_servicebus-7.14.1/azure/servicebus/_version.py 
new/azure_servicebus-7.14.2/azure/servicebus/_version.py
--- old/azure_servicebus-7.14.1/azure/servicebus/_version.py    2025-03-12 
18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure/servicebus/_version.py    2025-04-09 
22:07:29.000000000 +0200
@@ -3,4 +3,4 @@
 # Licensed under the MIT License.
 # ------------------------------------
 
-VERSION = "7.14.1"
+VERSION = "7.14.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure/servicebus/aio/_servicebus_client_async.py 
new/azure_servicebus-7.14.2/azure/servicebus/aio/_servicebus_client_async.py
--- 
old/azure_servicebus-7.14.1/azure/servicebus/aio/_servicebus_client_async.py    
    2025-03-12 18:40:35.000000000 +0100
+++ 
new/azure_servicebus-7.14.2/azure/servicebus/aio/_servicebus_client_async.py    
    2025-04-09 22:07:29.000000000 +0200
@@ -5,6 +5,7 @@
 # pylint: disable=client-method-missing-tracing-decorator
 from typing import Any, Union, Optional, TYPE_CHECKING, Type
 import logging
+import warnings
 from weakref import WeakSet
 from typing_extensions import Literal
 import certifi
@@ -113,6 +114,15 @@
         amqp_transport: Union[Type[PyamqpTransportAsync], 
Type["UamqpTransportAsync"]] = PyamqpTransportAsync
 
         if uamqp_transport:
+            # Deprecation of uamqp transport
+            warnings.warn(
+                "uAMQP legacy support will be removed in the 7.15.0 minor 
release. "
+                "Please remove the use of `uamqp_transport` keyword argument 
from the client in order "
+                "to use the pure Python AMQP transport. "
+                "If you rely on this, please comment on [this issue]"
+                "(https://github.com/Azure/azure-sdk-for-python/issues/40347) 
",
+                DeprecationWarning, stacklevel=2
+            )
             try:
                 from ._transport._uamqp_transport_async import 
UamqpTransportAsync
                 amqp_transport = UamqpTransportAsync
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure_servicebus.egg-info/PKG-INFO 
new/azure_servicebus-7.14.2/azure_servicebus.egg-info/PKG-INFO
--- old/azure_servicebus-7.14.1/azure_servicebus.egg-info/PKG-INFO      
2025-03-12 18:43:01.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure_servicebus.egg-info/PKG-INFO      
2025-04-09 22:09:53.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: azure-servicebus
-Version: 7.14.1
+Version: 7.14.2
 Summary: Microsoft Azure Service Bus Client Library for Python
 Home-page: https://github.com/Azure/azure-sdk-for-python
 Author: Microsoft Corporation
@@ -11,7 +11,6 @@
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
@@ -63,7 +62,7 @@
 To use this package, you must have:
 * Azure subscription - [Create a free account][azure_sub]
 * Azure Service Bus - [Namespace and management 
credentials][service_bus_namespace]
-* Python 3.8 or later - [Install Python][python]
+* Python 3.9 or later - [Install Python][python]
 
 
 If you need an Azure service bus namespace, you can create it via the [Azure 
Portal][azure_namespace_creation].
@@ -671,6 +670,19 @@
 
 # Release History
 
+## 7.14.2 (2025-04-09)
+
+### Bugs Fixed
+
+- Fixed a bug where max number of messages was not being requested when 
receiving from the service due to an incorrect link credit calculation. 
([#40156](https://github.com/Azure/azure-sdk-for-python/issues/40156))
+- 
+### Other Changes
+
+- Added support for handling a C# DateTime.MinValue timestamp, which is 
returned by the service as a sentinel for time which is not set.
+- Deprecating `uamqp_transport` in favor of pyAMQP transport. The 
`uamqp_transport` will be removed in the next minor release.
+- Fixed aiohttp websocket library showing a deprecation warning due to an 
incorrect timeout type 
([#40429](https://github.com/Azure/azure-sdk-for-python/issues/40429))
+- Dropped support for Python 3.8
+
 ## 7.14.1 (2025-03-12)
 
 ### Bugs Fixed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/azure_servicebus.egg-info/SOURCES.txt 
new/azure_servicebus-7.14.2/azure_servicebus.egg-info/SOURCES.txt
--- old/azure_servicebus-7.14.1/azure_servicebus.egg-info/SOURCES.txt   
2025-03-12 18:43:01.000000000 +0100
+++ new/azure_servicebus-7.14.2/azure_servicebus.egg-info/SOURCES.txt   
2025-04-09 22:09:53.000000000 +0200
@@ -186,6 +186,7 @@
 samples/sync_samples/session_pool_receive.py
 samples/sync_samples/session_send_receive.py
 samples/sync_samples/topic_subscription_with_rule_operations.py
+tests/conftest.py
 tests/mocks.py
 tests/sb_env_loader.py
 tests/servicebus_preparer.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_servicebus-7.14.1/setup.py 
new/azure_servicebus-7.14.2/setup.py
--- old/azure_servicebus-7.14.1/setup.py        2025-03-12 18:40:35.000000000 
+0100
+++ new/azure_servicebus-7.14.2/setup.py        2025-04-09 22:07:29.000000000 
+0200
@@ -49,7 +49,6 @@
         "Programming Language :: Python",
         "Programming Language :: Python :: 3 :: Only",
         "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",
         "Programming Language :: Python :: 3.11",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/async_tests/test_queues_async.py 
new/azure_servicebus-7.14.2/tests/async_tests/test_queues_async.py
--- old/azure_servicebus-7.14.1/tests/async_tests/test_queues_async.py  
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/async_tests/test_queues_async.py  
2025-04-09 22:07:29.000000000 +0200
@@ -59,7 +59,7 @@
     OperationTimeoutError,
 )
 from devtools_testutils import AzureMgmtRecordedTestCase, 
AzureRecordedTestCase, get_credential
-from tests.servicebus_preparer import (
+from servicebus_preparer import (
     SERVICEBUS_ENDPOINT_SUFFIX,
     CachedServiceBusNamespacePreparer,
     CachedServiceBusQueuePreparer,
@@ -67,7 +67,7 @@
     CachedServiceBusResourceGroupPreparer,
 )
 from mocks_async import MockReceivedMessage, MockReceiver
-from tests.utilities import (
+from utilities import (
     get_logger,
     print_message,
     sleep_until_expired,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/async_tests/test_sb_client_async.py 
new/azure_servicebus-7.14.2/tests/async_tests/test_sb_client_async.py
--- old/azure_servicebus-7.14.1/tests/async_tests/test_sb_client_async.py       
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/async_tests/test_sb_client_async.py       
2025-04-09 22:07:29.000000000 +0200
@@ -28,7 +28,7 @@
     ServiceBusConnectionError,
 )
 from devtools_testutils import AzureMgmtRecordedTestCase, get_credential
-from tests.servicebus_preparer import (
+from servicebus_preparer import (
     CachedServiceBusNamespacePreparer,
     ServiceBusTopicPreparer,
     ServiceBusQueuePreparer,
@@ -40,7 +40,7 @@
     CachedServiceBusResourceGroupPreparer,
     SERVICEBUS_ENDPOINT_SUFFIX,
 )
-from tests.utilities import (
+from utilities import (
     get_logger,
     uamqp_transport as get_uamqp_transport,
     ArgPasserAsync,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/async_tests/test_sessions_async.py 
new/azure_servicebus-7.14.2/tests/async_tests/test_sessions_async.py
--- old/azure_servicebus-7.14.1/tests/async_tests/test_sessions_async.py        
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/async_tests/test_sessions_async.py        
2025-04-09 22:07:29.000000000 +0200
@@ -34,7 +34,7 @@
     AutoLockRenewTimeout,
 )
 from devtools_testutils import AzureMgmtRecordedTestCase, get_credential
-from tests.servicebus_preparer import (
+from servicebus_preparer import (
     SERVICEBUS_ENDPOINT_SUFFIX,
     CachedServiceBusNamespacePreparer,
     CachedServiceBusQueuePreparer,
@@ -43,7 +43,7 @@
     ServiceBusSubscriptionPreparer,
     CachedServiceBusResourceGroupPreparer,
 )
-from tests.utilities import get_logger, print_message, uamqp_transport as 
get_uamqp_transport, ArgPasserAsync
+from utilities import get_logger, print_message, uamqp_transport as 
get_uamqp_transport, ArgPasserAsync
 
 uamqp_transport_params, uamqp_transport_ids = get_uamqp_transport()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/async_tests/test_subscriptions_async.py 
new/azure_servicebus-7.14.2/tests/async_tests/test_subscriptions_async.py
--- old/azure_servicebus-7.14.1/tests/async_tests/test_subscriptions_async.py   
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/async_tests/test_subscriptions_async.py   
2025-04-09 22:07:29.000000000 +0200
@@ -19,7 +19,7 @@
 from azure.servicebus._common.constants import ServiceBusSubQueue
 
 from devtools_testutils import AzureMgmtRecordedTestCase, 
RandomNameResourceGroupPreparer, get_credential
-from tests.servicebus_preparer import (
+from servicebus_preparer import (
     CachedServiceBusNamespacePreparer,
     CachedServiceBusTopicPreparer,
     CachedServiceBusSubscriptionPreparer,
@@ -28,7 +28,7 @@
     CachedServiceBusResourceGroupPreparer,
     SERVICEBUS_ENDPOINT_SUFFIX,
 )
-from tests.utilities import get_logger, print_message, uamqp_transport as 
get_uamqp_transport, ArgPasserAsync
+from utilities import get_logger, print_message, uamqp_transport as 
get_uamqp_transport, ArgPasserAsync
 
 uamqp_transport_params, uamqp_transport_ids = get_uamqp_transport()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/async_tests/test_topic_async.py 
new/azure_servicebus-7.14.2/tests/async_tests/test_topic_async.py
--- old/azure_servicebus-7.14.1/tests/async_tests/test_topic_async.py   
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/async_tests/test_topic_async.py   
2025-04-09 22:07:29.000000000 +0200
@@ -17,7 +17,7 @@
 from azure.servicebus.aio import ServiceBusClient
 from azure.servicebus.aio._base_handler_async import 
ServiceBusSharedKeyCredential
 from azure.servicebus._common.message import ServiceBusMessage
-from tests.servicebus_preparer import (
+from servicebus_preparer import (
     ServiceBusNamespacePreparer,
     ServiceBusTopicPreparer,
     CachedServiceBusNamespacePreparer,
@@ -25,7 +25,7 @@
     CachedServiceBusResourceGroupPreparer,
     SERVICEBUS_ENDPOINT_SUFFIX,
 )
-from tests.utilities import get_logger, print_message, uamqp_transport as 
get_uamqp_transport, ArgPasserAsync
+from utilities import get_logger, print_message, uamqp_transport as 
get_uamqp_transport, ArgPasserAsync
 
 uamqp_transport_params, uamqp_transport_ids = get_uamqp_transport()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_servicebus-7.14.1/tests/conftest.py 
new/azure_servicebus-7.14.2/tests/conftest.py
--- old/azure_servicebus-7.14.1/tests/conftest.py       1970-01-01 
01:00:00.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/conftest.py       2025-04-09 
22:07:29.000000000 +0200
@@ -0,0 +1,32 @@
+# ------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for
+# license information.
+# -------------------------------------------------------------------------
+import pytest
+from devtools_testutils.sanitizers import (
+    add_remove_header_sanitizer,
+    add_general_regex_sanitizer,
+    add_oauth_response_sanitizer,
+)
+
+collect_ignore = []
+
+
+@pytest.fixture(scope="session", autouse=True)
+def add_sanitizers(test_proxy):
+    add_remove_header_sanitizer(headers="aeg-sas-key")
+    add_remove_header_sanitizer(headers="aeg-sas-token")
+    add_remove_header_sanitizer(headers="ServiceBusSupplementaryAuthorization")
+    
add_remove_header_sanitizer(headers="ServiceBusDlqSupplementaryAuthorization")
+    add_general_regex_sanitizer(value="fakeresource", 
regex="(?<=\\/\\/)[a-z-]+(?=\\.servicebus\\.windows\\.net)")
+    add_oauth_response_sanitizer()
+
+
+# Note: This is duplicated between here and the basic conftest, so that it 
does not throw warnings if you're
+# running locally to this SDK. (Everything works properly, pytest just makes a 
bit of noise.)
+def pytest_configure(config):
+    # register an additional marker
+    config.addinivalue_line("markers", "liveTest: mark test to be a live test 
only")
+    config.addinivalue_line("markers", "live_test_only: mark test to be a live 
test only")
+    config.addinivalue_line("markers", "playback_test_only: mark test to be a 
playback test only")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_namespaces_async.py
 
new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_namespaces_async.py
--- 
old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_namespaces_async.py
    2025-03-12 18:40:35.000000000 +0100
+++ 
new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_namespaces_async.py
    2025-04-09 22:07:29.000000000 +0200
@@ -9,7 +9,7 @@
 
 from devtools_testutils import AzureMgmtRecordedTestCase, get_credential
 from devtools_testutils.aio import recorded_by_proxy_async
-from tests.sb_env_loader import ServiceBusPreparer
+from sb_env_loader import ServiceBusPreparer
 
 
 class TestServiceBusManagementClientNamespaceAsync(AzureMgmtRecordedTestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_queues_async.py 
new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_queues_async.py
--- 
old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_queues_async.py    
    2025-03-12 18:40:35.000000000 +0100
+++ 
new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_queues_async.py    
    2025-04-09 22:07:29.000000000 +0200
@@ -15,8 +15,8 @@
 
 from devtools_testutils import AzureMgmtRecordedTestCase, get_credential
 from devtools_testutils.aio import recorded_by_proxy_async
-from tests.sb_env_loader import ServiceBusPreparer
-from tests.servicebus_preparer import SERVICEBUS_ENDPOINT_SUFFIX
+from sb_env_loader import ServiceBusPreparer
+from servicebus_preparer import SERVICEBUS_ENDPOINT_SUFFIX
 
 from mgmt_test_utilities_async import (
     AsyncMgmtQueueListTestHelper,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_rules_async.py 
new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_rules_async.py
--- old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_rules_async.py 
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_rules_async.py 
2025-04-09 22:07:29.000000000 +0200
@@ -17,7 +17,7 @@
     SqlRuleAction,
 )
 from azure.servicebus.management._constants import INT32_MAX_VALUE
-from tests.utilities import get_logger
+from utilities import get_logger
 from azure.core.exceptions import HttpResponseError, ResourceExistsError
 
 from devtools_testutils import (
@@ -27,7 +27,7 @@
     get_credential,
 )
 from devtools_testutils.aio import recorded_by_proxy_async
-from tests.sb_env_loader import ServiceBusPreparer
+from sb_env_loader import ServiceBusPreparer
 
 from mgmt_test_utilities_async import async_pageable_to_list, clear_topics
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_subscriptions_async.py
 
new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_subscriptions_async.py
--- 
old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_subscriptions_async.py
 2025-03-12 18:40:35.000000000 +0100
+++ 
new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_subscriptions_async.py
 2025-04-09 22:07:29.000000000 +0200
@@ -9,13 +9,13 @@
 
 from azure.servicebus.aio.management import ServiceBusAdministrationClient
 from azure.servicebus.management import SubscriptionProperties
-from tests.utilities import get_logger
+from utilities import get_logger
 from azure.core.exceptions import HttpResponseError, ResourceExistsError
 
 from devtools_testutils import AzureMgmtRecordedTestCase, 
CachedResourceGroupPreparer, get_credential
 from devtools_testutils.aio import recorded_by_proxy_async
-from tests.sb_env_loader import ServiceBusPreparer
-from tests.servicebus_preparer import SERVICEBUS_ENDPOINT_SUFFIX
+from sb_env_loader import ServiceBusPreparer
+from servicebus_preparer import SERVICEBUS_ENDPOINT_SUFFIX
 
 from mgmt_test_utilities_async import async_pageable_to_list, clear_topics
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_topics_async.py 
new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_topics_async.py
--- 
old/azure_servicebus-7.14.1/tests/mgmt_tests/async/test_mgmt_topics_async.py    
    2025-03-12 18:40:35.000000000 +0100
+++ 
new/azure_servicebus-7.14.2/tests/mgmt_tests/async/test_mgmt_topics_async.py    
    2025-04-09 22:07:29.000000000 +0200
@@ -13,12 +13,12 @@
 from azure.servicebus.management import TopicProperties, AccessRights, 
AuthorizationRule
 from azure.servicebus.aio._base_handler_async import 
ServiceBusSharedKeyCredential
 from azure.servicebus.management import ApiVersion
-from tests.utilities import get_logger
+from utilities import get_logger
 from azure.core.exceptions import HttpResponseError, ResourceExistsError
 
 from devtools_testutils import AzureMgmtRecordedTestCase, 
CachedResourceGroupPreparer, get_credential
 from devtools_testutils.aio import recorded_by_proxy_async
-from tests.sb_env_loader import ServiceBusPreparer
+from sb_env_loader import ServiceBusPreparer
 
 from mgmt_test_utilities_async import async_pageable_to_list, clear_topics
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_namespaces.py 
new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_namespaces.py
--- old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_namespaces.py        
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_namespaces.py        
2025-04-09 22:07:29.000000000 +0200
@@ -8,7 +8,7 @@
 from azure.servicebus.management import ServiceBusAdministrationClient
 
 from devtools_testutils import AzureMgmtRecordedTestCase, 
CachedResourceGroupPreparer, recorded_by_proxy, get_credential
-from tests.sb_env_loader import ServiceBusPreparer
+from sb_env_loader import ServiceBusPreparer
 
 
 class TestServiceBusManagementClientNamespace(AzureMgmtRecordedTestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_queues.py 
new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_queues.py
--- old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_queues.py    
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_queues.py    
2025-04-09 22:07:29.000000000 +0200
@@ -14,15 +14,15 @@
 
 from azure.servicebus.management import ServiceBusAdministrationClient, 
QueueProperties, ApiVersion, AuthorizationRule, AccessRights
 from azure.servicebus._common.utils import utc_now
-from tests.utilities import get_logger
+from utilities import get_logger
 from azure.core.exceptions import HttpResponseError, ResourceNotFoundError, 
ResourceExistsError
 from azure.servicebus._base_handler import ServiceBusSharedKeyCredential
 
 from devtools_testutils import AzureMgmtRecordedTestCase, 
CachedResourceGroupPreparer, recorded_by_proxy, get_credential
-from tests.sb_env_loader import (
+from sb_env_loader import (
     ServiceBusPreparer,
 )
-from tests.servicebus_preparer import SERVICEBUS_ENDPOINT_SUFFIX
+from servicebus_preparer import SERVICEBUS_ENDPOINT_SUFFIX
 
 from mgmt_test_utilities import (
     MgmtQueueListTestHelper,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_rules.py 
new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_rules.py
--- old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_rules.py     
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_rules.py     
2025-04-09 22:07:29.000000000 +0200
@@ -17,7 +17,7 @@
     SqlRuleAction,
 )
 from azure.servicebus.management._constants import INT32_MAX_VALUE
-from tests.utilities import get_logger
+from utilities import get_logger
 from azure.core.exceptions import HttpResponseError, ResourceExistsError
 
 from devtools_testutils import (
@@ -27,7 +27,7 @@
     set_bodiless_matcher,
     get_credential,
 )
-from tests.sb_env_loader import ServiceBusPreparer
+from sb_env_loader import ServiceBusPreparer
 
 from mgmt_test_utilities import clear_topics
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_subscriptions.py 
new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_subscriptions.py
--- old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_subscriptions.py     
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_subscriptions.py     
2025-04-09 22:07:29.000000000 +0200
@@ -8,12 +8,12 @@
 import datetime
 
 from azure.servicebus.management import ServiceBusAdministrationClient, 
SubscriptionProperties
-from tests.utilities import get_logger
+from utilities import get_logger
 from azure.core.exceptions import HttpResponseError, ResourceExistsError
 
 from devtools_testutils import AzureMgmtRecordedTestCase, 
CachedResourceGroupPreparer, recorded_by_proxy, get_credential
-from tests.sb_env_loader import ServiceBusPreparer
-from tests.servicebus_preparer import SERVICEBUS_ENDPOINT_SUFFIX
+from sb_env_loader import ServiceBusPreparer
+from servicebus_preparer import SERVICEBUS_ENDPOINT_SUFFIX
 
 from mgmt_test_utilities import clear_topics
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_topics.py 
new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_topics.py
--- old/azure_servicebus-7.14.1/tests/mgmt_tests/test_mgmt_topics.py    
2025-03-12 18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/mgmt_tests/test_mgmt_topics.py    
2025-04-09 22:07:29.000000000 +0200
@@ -9,11 +9,11 @@
 
 from azure.servicebus.management import ServiceBusAdministrationClient, 
TopicProperties, ApiVersion
 from azure.servicebus._base_handler import ServiceBusSharedKeyCredential
-from tests.utilities import get_logger
+from utilities import get_logger
 from azure.core.exceptions import HttpResponseError, ResourceExistsError
 
 from devtools_testutils import AzureMgmtRecordedTestCase, 
CachedResourceGroupPreparer, recorded_by_proxy, get_credential
-from tests.sb_env_loader import ServiceBusPreparer
+from sb_env_loader import ServiceBusPreparer
 
 from mgmt_test_utilities import clear_topics
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_servicebus-7.14.1/tests/test_message.py 
new/azure_servicebus-7.14.2/tests/test_message.py
--- old/azure_servicebus-7.14.1/tests/test_message.py   2025-03-12 
18:40:35.000000000 +0100
+++ new/azure_servicebus-7.14.2/tests/test_message.py   2025-04-09 
22:07:29.000000000 +0200
@@ -7,7 +7,7 @@
     from azure.servicebus._transport._uamqp_transport import UamqpTransport
 except (ModuleNotFoundError, ImportError):
     uamqp = None
-from datetime import datetime, timedelta
+from datetime import datetime, timedelta, timezone
 from azure.servicebus import (
     ServiceBusClient,
     ServiceBusMessage,
@@ -20,6 +20,10 @@
     _X_OPT_PARTITION_KEY,
     _X_OPT_VIA_PARTITION_KEY,
     _X_OPT_SCHEDULED_ENQUEUE_TIME,
+    _X_OPT_ENQUEUED_TIME,
+)
+from azure.servicebus._common.utils import (
+    CE_ZERO_SECONDS,
 )
 from azure.servicebus.amqp import AmqpAnnotatedMessage, AmqpMessageBodyType, 
AmqpMessageProperties, AmqpMessageHeader
 from azure.servicebus._pyamqp.message import Message
@@ -69,6 +73,15 @@
         in message.__repr__()
     )
 
+def test_servicebus_message_min_timestamp():
+    received_message = Message(
+        data=[b"data"],
+        message_annotations={
+            _X_OPT_ENQUEUED_TIME: CE_ZERO_SECONDS*1000,
+        },
+    )
+    received_message = ServiceBusReceivedMessage(received_message, 
receiver=None)
+    assert received_message.enqueued_time_utc == 
datetime.min.replace(tzinfo=timezone.utc)
 
 @pytest.mark.parametrize("uamqp_transport", uamqp_transport_params, 
ids=uamqp_transport_ids)
 def test_servicebus_received_message_repr(uamqp_transport):
@@ -80,6 +93,7 @@
                 _X_OPT_PARTITION_KEY: b"r_key",
                 _X_OPT_VIA_PARTITION_KEY: b"r_via_key",
                 _X_OPT_SCHEDULED_ENQUEUE_TIME: 123424566,
+                _X_OPT_ENQUEUED_TIME: CE_ZERO_SECONDS * 1000,
             },
             properties={},
         )

Reply via email to