async def create_queue(servicebus_mgmt_client):
    print("-- Create Queue")
    queue_description = QueueDescription(QUEUE_NAME)
    # You can adjust the settings of a queue when creating.
    # Please refer to the QueueDescription class for available settings.
    queue_description.max_delivery_count = 10
    queue_description.dead_lettering_on_message_expiration = True

    await servicebus_mgmt_client.create_queue(queue_description)
    print("Queue {} is created.".format(QUEUE_NAME))
    print("")
    def test_mgmt_queue_create_with_invalid_name(
            self, servicebus_namespace_connection_string, **kwargs):
        mgmt_service = ServiceBusManagementClient.from_connection_string(
            servicebus_namespace_connection_string)

        with pytest.raises(msrest.exceptions.ValidationError):
            mgmt_service.create_queue(Exception())

        with pytest.raises(msrest.exceptions.ValidationError):
            mgmt_service.create_queue(QueueDescription(name=Exception()))

        with pytest.raises(msrest.exceptions.ValidationError):
            mgmt_service.create_queue('')

        with pytest.raises(msrest.exceptions.ValidationError):
            mgmt_service.create_queue(QueueDescription(name=''))
    async def test_async_mgmt_queue_create_with_invalid_name(
            self, servicebus_namespace_connection_string, **kwargs):
        mgmt_service = ServiceBusManagementClient.from_connection_string(
            servicebus_namespace_connection_string)

        with pytest.raises(TypeError):
            await mgmt_service.create_queue(Exception())

        with pytest.raises(ValueError):
            await mgmt_service.create_queue(
                QueueDescription(queue_name=Exception()))

        with pytest.raises(ValueError):
            await mgmt_service.create_queue('')

        with pytest.raises(ValueError):
            await mgmt_service.create_queue(QueueDescription(queue_name=''))
    def test_mgmt_queue_create_with_queue_description(
            self, servicebus_namespace_connection_string, **kwargs):
        mgmt_service = ServiceBusManagementClient.from_connection_string(
            servicebus_namespace_connection_string)
        clear_queues(mgmt_service)
        queue_name = "iweidk"

        #TODO: Why don't we have an input model (queueOptions? as superclass of QueueDescription?) and output model to not show these params?
        #TODO: This fails with the following: E           msrest.exceptions.DeserializationError: Find several XML 'prefix:DeadLetteringOnMessageExpiration' where it was not expected .tox\whl\lib\site-packages\msrest\serialization.py:1262: DeserializationError
        mgmt_service.create_queue(
            QueueDescription(
                name=queue_name,
                auto_delete_on_idle=datetime.timedelta(minutes=10),
                dead_lettering_on_message_expiration=True,
                default_message_time_to_live=datetime.timedelta(minutes=11),
                duplicate_detection_history_time_window=datetime.timedelta(
                    minutes=12),
                enable_batched_operations=True,
                enable_express=True,
                enable_partitioning=True,
                is_anonymous_accessible=True,
                lock_duration=datetime.timedelta(seconds=13),
                max_delivery_count=14,
                max_size_in_megabytes=3072,
                #requires_duplicate_detection=True,
                requires_session=True,
                support_ordering=True))
        try:
            queue = mgmt_service.get_queue(queue_name)
            assert queue.name == queue_name
            assert queue.auto_delete_on_idle == datetime.timedelta(minutes=10)
            assert queue.dead_lettering_on_message_expiration == True
            assert queue.default_message_time_to_live == datetime.timedelta(
                minutes=11)
            assert queue.duplicate_detection_history_time_window == datetime.timedelta(
                minutes=12)
            assert queue.enable_batched_operations == True
            assert queue.enable_express == True
            assert queue.enable_partitioning == True
            assert queue.is_anonymous_accessible == True
            assert queue.lock_duration == datetime.timedelta(seconds=13)
            assert queue.max_delivery_count == 14
            assert queue.max_size_in_megabytes % 3072 == 0  # TODO: In my local test, I don't see a multiple of the input number. To confirm
            #assert queue.requires_duplicate_detection == True
            assert queue.requires_session == True
            assert queue.support_ordering == True
        finally:
            mgmt_service.delete_queue(queue_name)
Exemple #5
0
 async def test_async_mgmt_queue_create_with_queue_description(
         self, servicebus_namespace_connection_string, **kwargs):
     mgmt_service = ServiceBusManagementClient.from_connection_string(
         servicebus_namespace_connection_string)
     await clear_queues(mgmt_service)
     queue_name = "dkldf"
     await mgmt_service.create_queue(
         QueueDescription(
             name=queue_name,
             auto_delete_on_idle=datetime.timedelta(minutes=10),
             dead_lettering_on_message_expiration=True,
             default_message_time_to_live=datetime.timedelta(minutes=11),
             duplicate_detection_history_time_window=datetime.timedelta(
                 minutes=12),
             enable_batched_operations=True,
             enable_express=True,
             enable_partitioning=True,
             is_anonymous_accessible=True,
             lock_duration=datetime.timedelta(seconds=13),
             max_delivery_count=14,
             max_size_in_megabytes=3072,
             #requires_duplicate_detection=True,
             requires_session=True,
             support_ordering=True))
     try:
         queue = await mgmt_service.get_queue(queue_name)
         assert queue.name == queue_name
         assert queue.auto_delete_on_idle == datetime.timedelta(minutes=10)
         assert queue.dead_lettering_on_message_expiration == True
         assert queue.default_message_time_to_live == datetime.timedelta(
             minutes=11)
         assert queue.duplicate_detection_history_time_window == datetime.timedelta(
             minutes=12)
         assert queue.enable_batched_operations == True
         assert queue.enable_express == True
         assert queue.enable_partitioning == True
         assert queue.is_anonymous_accessible == True
         assert queue.lock_duration == datetime.timedelta(seconds=13)
         assert queue.max_delivery_count == 14
         assert queue.max_size_in_megabytes % 3072 == 0
         #assert queue.requires_duplicate_detection == True
         assert queue.requires_session == True
         assert queue.support_ordering == True
     finally:
         await mgmt_service.delete_queue(queue_name)