diff --git a/sdk/servicebus/azure-servicebus/tests/async_tests/test_sessions_async.py b/sdk/servicebus/azure-servicebus/tests/async_tests/test_sessions_async.py index ff27ad657d07..d502e1486bb1 100644 --- a/sdk/servicebus/azure-servicebus/tests/async_tests/test_sessions_async.py +++ b/sdk/servicebus/azure-servicebus/tests/async_tests/test_sessions_async.py @@ -613,6 +613,26 @@ async def lock_lost_callback(renewable, error): await renewer.close() assert len(messages) == 2 + session_id = str(uuid.uuid4()) + async with sb_client.get_queue_sender(servicebus_queue.name) as sender: + messages = [ServiceBusMessage("{}".format(i), session_id=session_id) for i in range(10)] + await sender.send_messages(messages) + + renewer = AutoLockRenewer(max_lock_renewal_duration=100) + receiver = sb_client.get_queue_receiver(servicebus_queue.name, + session_id=session_id, + max_wait_time=5, + prefetch_count=10, + auto_lock_renewer=renewer) + + async with receiver: + received_msgs = await receiver.receive_messages(max_wait_time=5) + for msg in received_msgs: + await receiver.complete_message(msg) + + await receiver.close() + assert not renewer._renewable(receiver._session) + @pytest.mark.liveTest @pytest.mark.live_test_only diff --git a/sdk/servicebus/azure-servicebus/tests/test_sessions.py b/sdk/servicebus/azure-servicebus/tests/test_sessions.py index fd6039e83aa5..477ff4dc8290 100644 --- a/sdk/servicebus/azure-servicebus/tests/test_sessions.py +++ b/sdk/servicebus/azure-servicebus/tests/test_sessions.py @@ -731,6 +731,27 @@ def lock_lost_callback(renewable, error): renewer.close() assert len(messages) == 2 + # test voluntary halt of auto lock renewer when session is closed + session_id = str(uuid.uuid4()) + with sb_client.get_queue_sender(servicebus_queue.name) as sender: + messages = [ServiceBusMessage("{}".format(i), session_id=session_id) for i in range(10)] + sender.send_messages(messages) + + renewer = AutoLockRenewer(max_lock_renewal_duration=100) + receiver = sb_client.get_queue_receiver(servicebus_queue.name, + session_id=session_id, + max_wait_time=5, + prefetch_count=10, + auto_lock_renewer=renewer) + + with receiver: + received_msgs = receiver.receive_messages(max_wait_time=5) + for msg in received_msgs: + receiver.complete_message(msg) + + receiver.close() + assert not renewer._renewable(receiver._session) + @pytest.mark.liveTest @pytest.mark.live_test_only @CachedResourceGroupPreparer(name_prefix='servicebustest')