async def test_async_mgmt_queue_list_basic( self, servicebus_namespace_connection_string, servicebus_namespace, servicebus_namespace_key_name, servicebus_namespace_primary_key): mgmt_service = ServiceBusAdministrationClient.from_connection_string( servicebus_namespace_connection_string) await clear_queues(mgmt_service) queues = await async_pageable_to_list(mgmt_service.list_queues()) assert len(queues) == 0 await mgmt_service.create_queue("test_queue") queues = await async_pageable_to_list(mgmt_service.list_queues()) assert len(queues) == 1 and queues[0].name == "test_queue" await mgmt_service.delete_queue("test_queue") queues = await async_pageable_to_list(mgmt_service.list_queues()) assert len(queues) == 0 fully_qualified_namespace = servicebus_namespace.name + '.servicebus.windows.net' mgmt_service = ServiceBusAdministrationClient( fully_qualified_namespace, credential=ServiceBusSharedKeyCredential( servicebus_namespace_key_name, servicebus_namespace_primary_key)) queues = await async_pageable_to_list(mgmt_service.list_queues()) assert len(queues) == 0 await mgmt_service.create_queue("test_queue") queues = await async_pageable_to_list(mgmt_service.list_queues()) assert len(queues) == 1 and queues[0].name == "test_queue" await mgmt_service.delete_queue("test_queue") queues = await async_pageable_to_list(mgmt_service.list_queues()) assert len(queues) == 0
async def test_async_mgmt_queue_list_with_negative_credential( self, servicebus_namespace, servicebus_namespace_key_name, servicebus_namespace_primary_key): # invalid_conn_str = 'Endpoint=sb://invalid.servicebus.windows.net/;SharedAccessKeyName=invalid;SharedAccessKey=invalid' # mgmt_service = ServiceBusAdministrationClient.from_connection_string(invalid_conn_str) # with pytest.raises(ServiceRequestError): # await async_pageable_to_list(mgmt_service.list_queues()) invalid_conn_str = 'Endpoint=sb://{}.servicebus.windows.net/;SharedAccessKeyName=invalid;SharedAccessKey=invalid'.format( servicebus_namespace.name) mgmt_service = ServiceBusAdministrationClient.from_connection_string( invalid_conn_str) with pytest.raises(HttpResponseError): await async_pageable_to_list(mgmt_service.list_queues()) # fully_qualified_namespace = 'invalid.servicebus.windows.net' # mgmt_service = ServiceBusAdministrationClient( # fully_qualified_namespace, # credential=ServiceBusSharedKeyCredential(servicebus_namespace_key_name, servicebus_namespace_primary_key) # ) # with pytest.raises(ServiceRequestError): # await async_pageable_to_list(mgmt_service.list_queues()) fully_qualified_namespace = servicebus_namespace.name + '.servicebus.windows.net' mgmt_service = ServiceBusAdministrationClient( fully_qualified_namespace, credential=ServiceBusSharedKeyCredential("invalid", "invalid")) with pytest.raises(HttpResponseError): await async_pageable_to_list(mgmt_service.list_queues())
async def test_client_credential_async(self, servicebus_queue, servicebus_namespace, servicebus_namespace_key_name, servicebus_namespace_primary_key, servicebus_namespace_connection_string, **kwargs): # This should "just work" to validate known-good. credential = ServiceBusSharedKeyCredential(servicebus_namespace_key_name, servicebus_namespace_primary_key) hostname = "{}.servicebus.windows.net".format(servicebus_namespace.name) client = ServiceBusClient(hostname, credential) async with client: assert len(client._handlers) == 0 async with client.get_queue_sender(servicebus_queue.name) as sender: await sender.send_messages(ServiceBusMessage("foo")) hostname = "sb://{}.servicebus.windows.net".format(servicebus_namespace.name) client = ServiceBusClient(hostname, credential) async with client: assert len(client._handlers) == 0 async with client.get_queue_sender(servicebus_queue.name) as sender: await sender.send_messages(ServiceBusMessage("foo")) hostname = "https://{}.servicebus.windows.net \ ".format(servicebus_namespace.name) client = ServiceBusClient(hostname, credential) async with client: assert len(client._handlers) == 0 async with client.get_queue_sender(servicebus_queue.name) as sender: await sender.send_messages(ServiceBusMessage("foo"))
async def test_subscription_by_sas_token_credential_conn_str_send_basic( self, servicebus_namespace, servicebus_namespace_key_name, servicebus_namespace_primary_key, servicebus_topic, servicebus_subscription, **kwargs): fully_qualified_namespace = servicebus_namespace.name + '.servicebus.windows.net' async with ServiceBusClient( fully_qualified_namespace=fully_qualified_namespace, credential=ServiceBusSharedKeyCredential( policy=servicebus_namespace_key_name, key=servicebus_namespace_primary_key), logging_enable=False) as sb_client: async with sb_client.get_topic_sender( topic_name=servicebus_topic.name) as sender: message = Message(b"Sample topic message") await sender.send_messages(message) async with sb_client.get_subscription_receiver( topic_name=servicebus_topic.name, subscription_name=servicebus_subscription.name, max_wait_time=5) as receiver: count = 0 async for message in receiver: count += 1 await message.complete() assert count == 1
async def test_async_mgmt_topic_basic_v2017_04(self, servicebus_namespace_connection_string, servicebus_namespace, servicebus_namespace_key_name, servicebus_namespace_primary_key): mgmt_service = ServiceBusAdministrationClient.from_connection_string(servicebus_namespace_connection_string, api_version=ApiVersion.V2017_04) await clear_topics(mgmt_service) await mgmt_service.create_topic("test_topic") topics = await async_pageable_to_list(mgmt_service.list_topics()) assert len(topics) == 1 and topics[0].name == "test_topic" topic = await mgmt_service.get_topic("test_topic") assert topic.name == "test_topic" await mgmt_service.delete_topic("test_topic") topics = await async_pageable_to_list(mgmt_service.list_topics()) assert len(topics) == 0 with pytest.raises(HttpResponseError): await mgmt_service.create_topic("topic_can_not_be_created", max_message_size_in_kilobytes=1024) fully_qualified_namespace = servicebus_namespace.name + '.servicebus.windows.net' mgmt_service = ServiceBusAdministrationClient( fully_qualified_namespace, credential=ServiceBusSharedKeyCredential(servicebus_namespace_key_name, servicebus_namespace_primary_key), api_version=ApiVersion.V2017_04 ) await mgmt_service.create_topic("test_topic") topics = await async_pageable_to_list(mgmt_service.list_topics()) assert len(topics) == 1 and topics[0].name == "test_topic" topic = await mgmt_service.get_topic("test_topic") assert topic.name == "test_topic" await mgmt_service.delete_topic("test_topic") topics = await async_pageable_to_list(mgmt_service.list_topics()) assert len(topics) == 0 with pytest.raises(HttpResponseError): await mgmt_service.create_topic("topic_can_not_be_created", max_message_size_in_kilobytes=1024)
async def test_sb_client_bad_credentials_async(self, servicebus_namespace, servicebus_queue, **kwargs): client = ServiceBusClient( fully_qualified_namespace=servicebus_namespace.name + '.servicebus.windows.net', credential=ServiceBusSharedKeyCredential('invalid', 'invalid'), logging_enable=False) async with client: with pytest.raises(ServiceBusAuthenticationError): async with client.get_queue_sender(servicebus_queue.name) as sender: await sender.send_messages(ServiceBusMessage("test"))
async def test_topic_by_sas_token_credential_conn_str_send_basic( self, servicebus_namespace, servicebus_namespace_key_name, servicebus_namespace_primary_key, servicebus_topic, **kwargs): fully_qualified_namespace = servicebus_namespace.name + '.servicebus.windows.net' async with ServiceBusClient( fully_qualified_namespace=fully_qualified_namespace, credential=ServiceBusSharedKeyCredential( policy=servicebus_namespace_key_name, key=servicebus_namespace_primary_key), logging_enable=False) as sb_client: async with sb_client.get_topic_sender( servicebus_topic.name) as sender: message = ServiceBusMessage(b"Sample topic message") await sender.send_messages(message)
async def test_client_azure_sas_credential_async(self, servicebus_queue, servicebus_namespace, servicebus_namespace_key_name, servicebus_namespace_primary_key, servicebus_namespace_connection_string, **kwargs): # This should "just work" to validate known-good. credential = ServiceBusSharedKeyCredential(servicebus_namespace_key_name, servicebus_namespace_primary_key) hostname = "{}.servicebus.windows.net".format(servicebus_namespace.name) auth_uri = "sb://{}/{}".format(hostname, servicebus_queue.name) token = (await credential.get_token(auth_uri)).token.decode() credential = AzureSasCredential(token) client = ServiceBusClient(hostname, credential) async with client: assert len(client._handlers) == 0 async with client.get_queue_sender(servicebus_queue.name) as sender: await sender.send_messages(ServiceBusMessage("foo"))
async def test_client_sas_credential_async(self, servicebus_queue, servicebus_namespace, servicebus_namespace_key_name, servicebus_namespace_primary_key, servicebus_namespace_connection_string, **kwargs): # This should "just work" to validate known-good. credential = ServiceBusSharedKeyCredential(servicebus_namespace_key_name, servicebus_namespace_primary_key) hostname = "{}.servicebus.windows.net".format(servicebus_namespace.name) auth_uri = "sb://{}/{}".format(hostname, servicebus_queue.name) token = (await credential.get_token(auth_uri)).token # Finally let's do it with SAS token + conn str token_conn_str = "Endpoint=sb://{}/;SharedAccessSignature={};".format(hostname, token.decode()) client = ServiceBusClient.from_connection_string(token_conn_str) async with client: assert len(client._handlers) == 0 async with client.get_queue_sender(servicebus_queue.name) as sender: await sender.send_messages(ServiceBusMessage("foo"))