def test_delayed_transaction_message_pass(self):
        queue_name = "transaction_message_pass"
        client_id = "transaction_message_pass"
        kube_add = "localhost:50000"
        queue = MessageQueue(queue_name, client_id, kube_add)
        mm = []

        queuePolicy = QueueMessagePolicy(DelaySeconds=3)
        message = create_queue_message("queueName {}".format(0),
                                       "first test Ack".encode('UTF-8'),
                                       queuePolicy)
        mm.append(message)

        queuePolicy2 = QueueMessagePolicy(DelaySeconds=5)
        message2 = create_queue_message("queueName {}".format(1),
                                        "first test Ack".encode('UTF-8'),
                                        queuePolicy2)
        mm.append(message2)
        queue.send_queue_messages_batch(mm)

        tr = queue.create_transaction()
        recm = tr.receive()
        self.assertEqual(
            recm.error,
            "Error 138: no new message in queue, wait time expired")
        tr.close_stream()
        time.sleep(0.1)

        recm = tr.receive(2, 3)
        self.assertFalse(recm.is_error)
        tr.close_stream()
        time.sleep(0.01)

        recm = tr.receive(2, 5)
        self.assertFalse(recm.is_error)
    def test_delayed_message_pass(self):
        queue_name = "message_pass"
        client_id = "message_pass"
        kube_add = "localhost:50000"
        queue = MessageQueue(queue_name, client_id, kube_add)
        mm = []

        queuePolicy = QueueMessagePolicy(DelaySeconds=3)
        message = create_queue_message(
            "queueName {}".format(0),
            "some-simple_queue-queue-message".encode('UTF-8'), queuePolicy)
        mm.append(message)

        queuePolicy2 = QueueMessagePolicy(DelaySeconds=5)
        message2 = create_queue_message(
            "queueName {}".format(1),
            "some-simple_queue-queue-message".encode('UTF-8'), queuePolicy2)
        mm.append(message2)
        queue.send_queue_messages_batch(mm)

        res = queue.receive_queue_messages()
        self.assertFalse(res.is_error)
        self.assertEqual(0, len(res.messages))
        time.sleep(3.0)
        res = queue.receive_queue_messages()
        self.assertFalse(res.is_error)
        self.assertEqual(1, len(res.messages))
        time.sleep(2.0)
        res = queue.receive_queue_messages()
        self.assertFalse(res.is_error)
        self.assertEqual(1, len(res.messages))
Exemple #3
0
    def test_get_message_pass_with_auth(self):
        client_id = "message_pass"
        kube_add = "localhost:50000"
        queue = MessageQueue("Get_Messages{}".format(randomString(10)),
                             client_id,
                             kube_add,
                             encryptionHeader=jwt.encode({},
                                                         algorithm="HS256",
                                                         key="some-key"))
        mm = []

        message = create_queue_message("first test Ack",
                                       "hi there".encode('UTF-8'))
        mm.append(message)

        message2 = create_queue_message("sec test Ack",
                                        "hi again".encode('UTF-8'))
        mm.append(message2)
        queue.send_queue_messages_batch(mm)

        tr = queue.create_transaction()
        recm = tr.receive(3)
        self.assertFalse(recm.error)
        self.assertFalse(
            tr.ack_message(recm.message.Attributes.Sequence).is_error)
        self.assertEqual(1, len(queue.peek_queue_message().messages))
        self.assertFalse(tr.receive().is_error)
        tr.close_stream()
Exemple #4
0
    def test_modify_after_ack_fail_with_auth(self):
        client_id = "ack_fail"
        kube_add = "localhost:50000"
        queue = MessageQueue("test_modify_after_ack_fail",
                             client_id,
                             kube_add,
                             encryptionHeader=jwt.encode({},
                                                         algorithm="HS256",
                                                         key="some-key"))
        mm = []

        message = create_queue_message("first test Ack",
                                       "hi there".encode('UTF-8'))
        mm.append(message)

        message2 = create_queue_message("sec test Ack",
                                        "hi again".encode('UTF-8'))
        mm.append(message2)
        queue.send_queue_messages_batch(mm)

        tr = queue.create_transaction()
        recm = tr.receive(5)

        tr.ack_message(recm.message.Attributes.Sequence)
        time.sleep(0.1)
        recMod = tr.extend_visibility(5)
        self.assertTrue(recMod.is_error)
Exemple #5
0
def send_batch_message_to_queue(queue_name, client_id, kube_add,
                                max_number_messages, max_timeout):
    queue = MessageQueue(queue_name, client_id, kube_add, max_number_messages,
                         max_timeout)
    mm = []
    for i in range(2):
        message = create_queue_message(
            "queueName {}".format(i),
            "some-simple_queue-queue-message".encode('UTF-8'))
        mm.append(message)
    queue_send_batch_response = queue.send_queue_messages_batch(mm)
    print("finished sending message to queue with batch answer: {} ".format(
        queue_send_batch_response))
Exemple #6
0
    ]
    message.attributes = None
    message.policy = policy
    return message


if __name__ == "__main__":
    client_id = "python-sdk-cookbook-queues-resend-sender"
    kube_add = "localhost:50000"
    queue = MessageQueue("Get_Messages{}".format(random_string(10)), client_id,
                         kube_add)
    mm = []

    message = create_queue_message("some-metadata", "hi there".encode('UTF-8'))
    mm.append(message)

    message2 = create_queue_message("some-metadata",
                                    "hi again".encode('UTF-8'))
    mm.append(message2)
    queue.send_queue_messages_batch(mm)

    tr = queue.create_transaction()
    for seq in range(3):
        stream = tr.receive(1, 5)
        print(stream.message)
        if seq == 0:
            tr.resend(queue.queue_name)
        else:
            tr.ack_message(stream.message.Attributes.Sequence)
        tr.close_stream()
Exemple #7
0
    channel = "queues.ack"
    queue = MessageQueue(channel, "python-sdk-cookbook-queues-ack-client",
                         "localhost:50000")
    mm = []

    message = create_queue_message(
        "queueName {}".format(channel),
        "some-simple-queue-ack-message-1".encode('UTF-8'))
    mm.append(message)

    message2 = create_queue_message(
        "queueName {}".format(channel),
        "some-simple-queue-ack-message-2".encode('UTF-8'))
    mm.append(message2)
    try:
        sent = queue.send_queue_messages_batch(mm)
        if sent.have_errors:
            print('message enqueue error, error:' + sent.have_errors)
        else:
            print('Send to Queue')
    except Exception as err:
        print('message enqueue error, error:%s' % (err))

    queue = MessageQueue(channel,
                         "python-sdk-cookbook-queues-ack-client-receiver",
                         "localhost:50000", 2, 1)
    try:
        res = queue.receive_queue_messages()
        if res.error:
            print("'Received:'%s'" % (res.error))
        else: