Beispiel #1
0
async def test_publish_message_specific_queue(*, mock_server, mock_client,
                                              amqp_client):
    with given:
        queue1, queue2 = "test_queue1", "test_queue2"
        message1, message2 = "text1", "text2"
        await mock_client.publish_message(queue1, Message(message1))

    with when:
        await mock_client.publish_message(queue2, Message(message2))

    with then:
        await amqp_client.consume(queue1)
        messages = await amqp_client.wait_for(message_count=1)

        assert len(messages) == 1
        assert messages[0].body == to_binary(message1)
async def test_get_queue_message_history(*, mock_server, mock_client, amqp_client):
    with given:
        queue = "test_queue"
        message1, message2 = "text1", "text2"
        await mock_client.publish_message(queue, Message(message1))
        await mock_client.publish_message(queue, Message(message2))
        await amqp_client.consume(queue)
        await amqp_client.wait_for(message_count=2)

    with when:
        history = await mock_client.get_queue_message_history(queue)

    with then:
        assert len(history) == 2
        assert history[0].message.value == message2
        assert history[1].message.value == message1
Beispiel #3
0
async def test_publish_multiple_messages(*, mock_server, mock_client,
                                         amqp_client):
    with given:
        queue = "test_queue"
        message1, message2 = "text1", "text2"
        await mock_client.publish_message(queue, Message(message1))

    with when:
        await mock_client.publish_message(queue, Message(message2))

    with then:
        await amqp_client.consume(queue)
        messages = await amqp_client.wait_for(message_count=2)

        assert len(messages) == 2
        assert messages[0].body == to_binary(message1)
        assert messages[1].body == to_binary(message2)
async def test_reset_history(*, mock_server, mock_client, amqp_client):
    with given:
        queue = "test_queue"
        await mock_client.publish_message(queue, Message("text"))
        await amqp_client.consume(queue)

    with when:
        result = await mock_client.reset()

    with then:
        assert result is None

        history = await mock_client.get_queue_message_history(queue)
        assert len(history) == 0
async def test_reset_queues(*, mock_server, mock_client, amqp_client):
    with given:
        queue = "test_queue"
        await mock_client.publish_message(queue, Message("text"))

    with when:
        result = await mock_client.reset()

    with then:
        assert result is None

        await amqp_client.consume(queue)
        await amqp_client.wait(seconds=0.1)
        assert len(amqp_client.get_consumed_messages()) == 0
async def test_get_queue_message_history_nacked(*, mock_server, mock_client, amqp_client):
    with given:
        queue = "test_queue"
        await mock_client.publish_message(queue, Message("text"))
        await amqp_client.consume_nack(queue)
        await amqp_client.wait_for(message_count=1)

    with when:
        history = await mock_client.get_queue_message_history(queue)

    with then:
        assert len(history) == 1
        assert isinstance(history[0], QueuedMessage)
        assert history[0].status == MessageStatus.NACKED
Beispiel #7
0
async def test_publish_single_message(*, mock_server, mock_client,
                                      amqp_client):
    with given:
        queue = "test_queue"
        message = "text"

    with when:
        await mock_client.publish_message(queue, Message(message))

    with then:
        await amqp_client.consume(queue)
        messages = await amqp_client.wait_for(message_count=1)

        assert len(messages) == 1
        assert messages[0].body == to_binary(message)
async def test_get_queue_message_history_init(*, mock_server, mock_client):
    with given:
        queue = "test_queue"
        message = "text"
        await mock_client.publish_message(queue, Message(message))

    with when:
        history = await mock_client.get_queue_message_history(queue)

    with then:
        assert len(history) == 1
        assert isinstance(history[0], QueuedMessage)
        assert history[0].status == MessageStatus.INIT
        assert history[0].queue == queue
        assert history[0].message.value == message
Beispiel #9
0
async def main():
    async with create_amqp_mock() as mock:
        await mock.client.publish_message("queue", Message([1, 2, 3]))

        connection = await aiormq.connect(
            f"amqp://{mock.amqp_server.host}:{mock.amqp_server.port}")
        channel = await connection.channel()

        async def on_message(message):
            await channel.basic_ack(message.delivery.delivery_tag)

        await channel.basic_consume("queue", on_message)

        history = await mock.client.get_queue_message_history("queue")
        assert history[0].message.value == [1, 2, 3]
        assert history[0].status == MessageStatus.ACKED
async def test_async_context_manager():
    with given:
        storage = Storage()
        http_server = HttpServer(storage, port=8080)
        amqp_server = AmqpServer(storage, port=5674)
        queue = "test_queue"

    async with given, \
            create_amqp_mock(http_server, amqp_server) as mock, \
            AmqpClient(amqp_server.host, amqp_server.port) as amqp_client:
        with when:
            await mock.client.publish_message(queue, Message("text"))

        with then:
            await amqp_client.consume(queue)
            messages = await amqp_client.wait_for(message_count=1)
            assert len(messages) == 1