def test_update_msg_visibility_timeout(): job_item_key = id_generator.generate_job_item_id() queue_name = id_generator.generate_job_item_id() queue = get_test_queue(queue_name) attribs = {} attribs['VisibilityTimeout'] = str(120) sqs.set_queue_attributes(queue, attribs) message_id = sqs.send_message( queue, 'boto3', {"job_item_key": { "StringValue": job_item_key, "DataType": "String" }}) # 1st Try message = sqs.get_message_by_key(queue.url, job_item_key) msg_receipt = message['ReceiptHandle'] assert message is not None # 2nd - Visibilty Timeout not exceeded message = sqs.get_message_by_key(queue.url, job_item_key) assert message is None new_timeout = 10 response = sqs.update_msg_visibility_timeout(queue.url, msg_receipt, new_timeout) # 3rd - Visibilty Timeout not exceeded message = sqs.get_message_by_key(queue.url, job_item_key) assert message is None # Visibilty Timeout exceeded time.sleep(new_timeout) # 4th message request succeeds message = sqs.get_next_message(queue) assert message['MessageId'] == message_id sqs.delete_queue(queue)
def test_update_msg_visibility_timeout(): job_item_key = id_generator.generate_job_item_id() queue_name = id_generator.generate_job_item_id() queue = get_test_queue(queue_name) attribs = {} attribs['VisibilityTimeout'] = str(120) sqs.set_queue_attributes(queue, attribs) message_id = sqs.send_message(queue, 'boto3', { "job_item_key" : { "StringValue" : job_item_key, "DataType" : "String" } }) # 1st Try message = sqs.get_message_by_key(queue.url, job_item_key) msg_receipt = message['ReceiptHandle'] assert message is not None # 2nd - Visibilty Timeout not exceeded message = sqs.get_message_by_key(queue.url, job_item_key) assert message is None new_timeout = 10 response = sqs.update_msg_visibility_timeout(queue.url, msg_receipt, new_timeout) # 3rd - Visibilty Timeout not exceeded message = sqs.get_message_by_key(queue.url, job_item_key) assert message is None # Visibilty Timeout exceeded time.sleep(new_timeout) # 4th message request succeeds message = sqs.get_next_message(queue) assert message['MessageId'] == message_id sqs.delete_queue(queue)
def test_get_message_by_key(): TEST_JOB_ITEM_KEY = id_generator.generate_job_item_id() queue_name = id_generator.generate_job_item_id() queue = get_test_queue(queue_name) message_id = sqs.send_message(queue, 'boto3', { "job_item_key" : { "StringValue" : TEST_JOB_ITEM_KEY, "DataType" : "String" }, "job_type" : { "StringValue" : "process_job_item", "DataType" : "String" } }) message = sqs.get_message_by_key(queue.url, TEST_JOB_ITEM_KEY) assert message_id == message['MessageId'] assert message['MessageAttributes']['job_item_key']['StringValue'] == TEST_JOB_ITEM_KEY sqs.delete_queue(queue)
def test_get_message_by_key(): TEST_JOB_ITEM_KEY = id_generator.generate_job_item_id() queue_name = id_generator.generate_job_item_id() queue = get_test_queue(queue_name) message_id = sqs.send_message( queue, 'boto3', { "job_item_key": { "StringValue": TEST_JOB_ITEM_KEY, "DataType": "String" }, "job_type": { "StringValue": "process_job_item", "DataType": "String" } }) message = sqs.get_message_by_key(queue.url, TEST_JOB_ITEM_KEY) assert message_id == message['MessageId'] assert message['MessageAttributes']['job_item_key'][ 'StringValue'] == TEST_JOB_ITEM_KEY sqs.delete_queue(queue)