2014-08-27 15:17:06 +00:00
|
|
|
from __future__ import unicode_literals
|
2013-02-24 03:26:46 +00:00
|
|
|
import boto
|
|
|
|
from boto.exception import SQSError
|
2015-05-30 03:26:43 +00:00
|
|
|
from boto.sqs.message import RawMessage, Message
|
2014-06-20 21:29:40 +00:00
|
|
|
|
2013-02-28 02:56:54 +00:00
|
|
|
import requests
|
2013-08-03 21:21:25 +00:00
|
|
|
import sure # noqa
|
2014-06-20 20:00:36 +00:00
|
|
|
import time
|
2013-02-24 03:26:46 +00:00
|
|
|
|
|
|
|
from moto import mock_sqs
|
2014-09-28 19:59:14 +00:00
|
|
|
from tests.helpers import requires_boto_gte
|
2013-02-24 03:26:46 +00:00
|
|
|
|
2014-11-16 22:57:46 +00:00
|
|
|
|
2013-02-24 03:26:46 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_create_queue():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
conn.create_queue("test-queue", visibility_timeout=60)
|
|
|
|
|
|
|
|
all_queues = conn.get_all_queues()
|
2013-03-05 13:35:18 +00:00
|
|
|
all_queues[0].name.should.equal("test-queue")
|
2013-02-24 03:26:46 +00:00
|
|
|
|
|
|
|
all_queues[0].get_timeout().should.equal(60)
|
|
|
|
|
|
|
|
|
2014-11-16 22:57:46 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_create_queues_in_multiple_region():
|
|
|
|
west1_conn = boto.sqs.connect_to_region("us-west-1")
|
|
|
|
west1_conn.create_queue("test-queue")
|
|
|
|
|
|
|
|
west2_conn = boto.sqs.connect_to_region("us-west-2")
|
|
|
|
west2_conn.create_queue("test-queue")
|
|
|
|
|
|
|
|
list(west1_conn.get_all_queues()).should.have.length_of(1)
|
|
|
|
list(west2_conn.get_all_queues()).should.have.length_of(1)
|
|
|
|
|
|
|
|
|
2013-04-19 03:07:24 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_get_queue():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
conn.create_queue("test-queue", visibility_timeout=60)
|
|
|
|
|
|
|
|
queue = conn.get_queue("test-queue")
|
|
|
|
queue.name.should.equal("test-queue")
|
|
|
|
queue.get_timeout().should.equal(60)
|
|
|
|
|
2013-04-24 07:41:45 +00:00
|
|
|
nonexisting_queue = conn.get_queue("nonexisting_queue")
|
|
|
|
nonexisting_queue.should.be.none
|
|
|
|
|
2013-04-19 03:07:24 +00:00
|
|
|
|
2014-02-20 19:00:08 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_get_queue_with_prefix():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
conn.create_queue("prefixa-queue")
|
|
|
|
conn.create_queue("prefixb-queue")
|
|
|
|
conn.create_queue("test-queue")
|
|
|
|
|
|
|
|
conn.get_all_queues().should.have.length_of(3)
|
|
|
|
|
|
|
|
queue = conn.get_all_queues("test-")
|
|
|
|
queue.should.have.length_of(1)
|
|
|
|
queue[0].name.should.equal("test-queue")
|
|
|
|
|
|
|
|
|
2013-02-24 03:26:46 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_delete_queue():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
|
|
|
|
|
|
|
conn.get_all_queues().should.have.length_of(1)
|
|
|
|
|
|
|
|
queue.delete()
|
|
|
|
conn.get_all_queues().should.have.length_of(0)
|
|
|
|
|
|
|
|
queue.delete.when.called_with().should.throw(SQSError)
|
2013-02-24 03:35:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_set_queue_attribute():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
conn.create_queue("test-queue", visibility_timeout=60)
|
|
|
|
|
|
|
|
queue = conn.get_all_queues()[0]
|
|
|
|
queue.get_timeout().should.equal(60)
|
|
|
|
|
|
|
|
queue.set_attribute("VisibilityTimeout", 45)
|
|
|
|
queue = conn.get_all_queues()[0]
|
|
|
|
queue.get_timeout().should.equal(45)
|
2013-02-24 16:06:42 +00:00
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_send_message():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
|
|
|
|
|
|
|
body_one = 'this is a test message'
|
|
|
|
body_two = 'this is another test message'
|
2013-02-24 16:06:42 +00:00
|
|
|
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.write(queue.new_message(body_one))
|
|
|
|
queue.write(queue.new_message(body_two))
|
2013-02-24 16:06:42 +00:00
|
|
|
|
2014-06-20 20:00:36 +00:00
|
|
|
messages = conn.receive_message(queue, number_messages=2)
|
2014-06-23 18:53:46 +00:00
|
|
|
|
|
|
|
messages[0].get_body().should.equal(body_one)
|
|
|
|
messages[1].get_body().should.equal(body_two)
|
2014-06-20 20:00:36 +00:00
|
|
|
|
|
|
|
|
2014-10-22 20:03:42 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_send_message_with_xml_characters():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
|
|
|
queue.set_message_class(RawMessage)
|
|
|
|
|
|
|
|
body_one = '< & >'
|
|
|
|
|
|
|
|
queue.write(queue.new_message(body_one))
|
|
|
|
|
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
|
|
|
|
|
|
|
messages[0].get_body().should.equal(body_one)
|
|
|
|
|
|
|
|
|
2014-09-28 19:59:14 +00:00
|
|
|
@requires_boto_gte("2.28")
|
|
|
|
@mock_sqs
|
|
|
|
def test_send_message_with_attributes():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
|
|
|
queue.set_message_class(RawMessage)
|
2014-11-16 22:57:46 +00:00
|
|
|
|
2014-09-28 19:59:14 +00:00
|
|
|
body = 'this is a test message'
|
|
|
|
message = queue.new_message(body)
|
|
|
|
message_attributes = {
|
2014-11-16 22:57:46 +00:00
|
|
|
'test.attribute_name': {'data_type': 'String', 'string_value': 'attribute value'},
|
|
|
|
'test.binary_attribute': {'data_type': 'Binary', 'binary_value': 'binary value'},
|
|
|
|
'test.number_attribute': {'data_type': 'Number', 'string_value': 'string value'}
|
2014-09-28 19:59:14 +00:00
|
|
|
}
|
|
|
|
message.message_attributes = message_attributes
|
|
|
|
|
|
|
|
queue.write(message)
|
|
|
|
|
|
|
|
messages = conn.receive_message(queue)
|
|
|
|
|
|
|
|
messages[0].get_body().should.equal(body)
|
|
|
|
|
|
|
|
for name, value in message_attributes.items():
|
|
|
|
dict(messages[0].message_attributes[name]).should.equal(value)
|
|
|
|
|
|
|
|
|
2014-06-20 20:00:36 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_send_message_with_delay():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
2014-06-20 20:00:36 +00:00
|
|
|
|
2014-06-23 18:53:46 +00:00
|
|
|
body_one = 'this is a test message'
|
|
|
|
body_two = 'this is another test message'
|
|
|
|
|
|
|
|
queue.write(queue.new_message(body_one), delay_seconds=60)
|
|
|
|
queue.write(queue.new_message(body_two))
|
2014-06-20 20:00:36 +00:00
|
|
|
|
|
|
|
queue.count().should.equal(1)
|
|
|
|
|
|
|
|
messages = conn.receive_message(queue, number_messages=2)
|
|
|
|
assert len(messages) == 1
|
|
|
|
message = messages[0]
|
2014-06-23 18:53:46 +00:00
|
|
|
assert message.get_body().should.equal(body_two)
|
2014-06-20 20:00:36 +00:00
|
|
|
queue.count().should.equal(0)
|
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
2014-06-22 18:34:32 +00:00
|
|
|
def test_message_becomes_inflight_when_received():
|
2014-06-20 20:00:36 +00:00
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=2)
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
2014-06-20 20:00:36 +00:00
|
|
|
|
2014-06-23 18:53:46 +00:00
|
|
|
body_one = 'this is a test message'
|
|
|
|
queue.write(queue.new_message(body_one))
|
2014-06-20 20:00:36 +00:00
|
|
|
queue.count().should.equal(1)
|
|
|
|
|
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
|
|
|
queue.count().should.equal(0)
|
|
|
|
|
|
|
|
assert len(messages) == 1
|
|
|
|
|
|
|
|
# Wait
|
|
|
|
time.sleep(3)
|
|
|
|
|
|
|
|
queue.count().should.equal(1)
|
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_change_message_visibility():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=2)
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
|
|
|
|
|
|
|
body_one = 'this is another test message'
|
|
|
|
queue.write(queue.new_message(body_one))
|
2014-06-20 20:00:36 +00:00
|
|
|
|
|
|
|
queue.count().should.equal(1)
|
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
|
|
|
|
|
|
|
assert len(messages) == 1
|
|
|
|
|
|
|
|
queue.count().should.equal(0)
|
|
|
|
|
|
|
|
messages[0].change_visibility(2)
|
|
|
|
|
|
|
|
# Wait
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
# Message is not visible
|
|
|
|
queue.count().should.equal(0)
|
|
|
|
|
|
|
|
time.sleep(2)
|
|
|
|
|
|
|
|
# Message now becomes visible
|
|
|
|
queue.count().should.equal(1)
|
|
|
|
|
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
|
|
|
messages[0].delete()
|
|
|
|
queue.count().should.equal(0)
|
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_message_attributes():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=2)
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
|
|
|
|
|
|
|
body_one = 'this is another test message'
|
|
|
|
queue.write(queue.new_message(body_one))
|
2014-06-20 20:00:36 +00:00
|
|
|
|
|
|
|
queue.count().should.equal(1)
|
|
|
|
|
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
|
|
|
queue.count().should.equal(0)
|
|
|
|
|
|
|
|
assert len(messages) == 1
|
|
|
|
|
|
|
|
message_attributes = messages[0].attributes
|
|
|
|
|
|
|
|
assert message_attributes.get('ApproximateFirstReceiveTimestamp')
|
|
|
|
assert int(message_attributes.get('ApproximateReceiveCount')) == 1
|
|
|
|
assert message_attributes.get('SentTimestamp')
|
|
|
|
assert message_attributes.get('SenderId')
|
2013-02-24 16:06:42 +00:00
|
|
|
|
|
|
|
|
2013-03-23 13:44:53 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_read_message_from_queue():
|
|
|
|
conn = boto.connect_sqs()
|
|
|
|
queue = conn.create_queue('testqueue')
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
|
|
|
|
|
|
|
body = 'foo bar baz'
|
|
|
|
queue.write(queue.new_message(body))
|
2013-03-23 13:44:53 +00:00
|
|
|
message = queue.read(1)
|
2014-06-23 18:53:46 +00:00
|
|
|
message.get_body().should.equal(body)
|
2013-03-23 13:44:53 +00:00
|
|
|
|
|
|
|
|
2013-02-24 16:06:42 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_queue_length():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
2013-02-24 16:06:42 +00:00
|
|
|
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.write(queue.new_message('this is a test message'))
|
|
|
|
queue.write(queue.new_message('this is another test message'))
|
2013-02-24 16:06:42 +00:00
|
|
|
queue.count().should.equal(2)
|
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_delete_message():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
2013-02-24 16:06:42 +00:00
|
|
|
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.write(queue.new_message('this is a test message'))
|
|
|
|
queue.write(queue.new_message('this is another test message'))
|
2014-06-20 20:00:36 +00:00
|
|
|
queue.count().should.equal(2)
|
2013-02-24 16:06:42 +00:00
|
|
|
|
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
2014-06-20 20:00:36 +00:00
|
|
|
assert len(messages) == 1
|
2013-02-24 16:06:42 +00:00
|
|
|
messages[0].delete()
|
|
|
|
queue.count().should.equal(1)
|
|
|
|
|
2014-06-20 20:00:36 +00:00
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
|
|
|
assert len(messages) == 1
|
|
|
|
messages[0].delete()
|
|
|
|
queue.count().should.equal(0)
|
|
|
|
|
2013-02-24 16:06:42 +00:00
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_send_batch_operation():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
|
|
|
|
2013-03-23 13:44:53 +00:00
|
|
|
# See https://github.com/boto/boto/issues/831
|
|
|
|
queue.set_message_class(RawMessage)
|
|
|
|
|
|
|
|
queue.write_batch([
|
2013-02-24 16:06:42 +00:00
|
|
|
("my_first_message", 'test message 1', 0),
|
|
|
|
("my_second_message", 'test message 2', 0),
|
|
|
|
("my_third_message", 'test message 3', 0),
|
|
|
|
])
|
|
|
|
|
|
|
|
messages = queue.get_messages(3)
|
|
|
|
messages[0].get_body().should.equal("test message 1")
|
|
|
|
|
|
|
|
# Test that pulling more messages doesn't break anything
|
|
|
|
messages = queue.get_messages(2)
|
|
|
|
|
|
|
|
|
2014-09-28 19:59:14 +00:00
|
|
|
@requires_boto_gte("2.28")
|
|
|
|
@mock_sqs
|
|
|
|
def test_send_batch_operation_with_message_attributes():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
|
|
|
queue.set_message_class(RawMessage)
|
|
|
|
|
|
|
|
message_tuple = ("my_first_message", 'test message 1', 0, {'name1': {'data_type': 'String', 'string_value': 'foo'}})
|
|
|
|
queue.write_batch([message_tuple])
|
|
|
|
|
|
|
|
messages = queue.get_messages()
|
|
|
|
messages[0].get_body().should.equal("test message 1")
|
|
|
|
|
|
|
|
for name, value in message_tuple[3].items():
|
|
|
|
dict(messages[0].message_attributes[name]).should.equal(value)
|
|
|
|
|
|
|
|
|
2013-02-24 16:06:42 +00:00
|
|
|
@mock_sqs
|
|
|
|
def test_delete_batch_operation():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
|
|
|
|
|
|
|
conn.send_message_batch(queue, [
|
|
|
|
("my_first_message", 'test message 1', 0),
|
|
|
|
("my_second_message", 'test message 2', 0),
|
|
|
|
("my_third_message", 'test message 3', 0),
|
|
|
|
])
|
|
|
|
|
|
|
|
messages = queue.get_messages(2)
|
|
|
|
queue.delete_message_batch(messages)
|
|
|
|
|
|
|
|
queue.count().should.equal(1)
|
2013-02-28 02:56:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_sqs_method_not_implemented():
|
|
|
|
requests.post.when.called_with("https://sqs.amazonaws.com/?Action=[foobar]").should.throw(NotImplementedError)
|
2013-04-24 06:53:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_queue_attributes():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
|
|
|
|
queue_name = 'test-queue'
|
|
|
|
visibility_timeout = 60
|
|
|
|
|
|
|
|
queue = conn.create_queue(queue_name, visibility_timeout=visibility_timeout)
|
|
|
|
|
|
|
|
attributes = queue.get_attributes()
|
|
|
|
|
|
|
|
attributes['QueueArn'].should.look_like(
|
|
|
|
'arn:aws:sqs:sqs.us-east-1:123456789012:%s' % queue_name)
|
|
|
|
|
|
|
|
attributes['VisibilityTimeout'].should.look_like(str(visibility_timeout))
|
|
|
|
|
|
|
|
attribute_names = queue.get_attributes().keys()
|
|
|
|
attribute_names.should.contain('ApproximateNumberOfMessagesNotVisible')
|
|
|
|
attribute_names.should.contain('MessageRetentionPeriod')
|
|
|
|
attribute_names.should.contain('ApproximateNumberOfMessagesDelayed')
|
|
|
|
attribute_names.should.contain('MaximumMessageSize')
|
|
|
|
attribute_names.should.contain('CreatedTimestamp')
|
|
|
|
attribute_names.should.contain('ApproximateNumberOfMessages')
|
|
|
|
attribute_names.should.contain('ReceiveMessageWaitTimeSeconds')
|
|
|
|
attribute_names.should.contain('DelaySeconds')
|
|
|
|
attribute_names.should.contain('VisibilityTimeout')
|
|
|
|
attribute_names.should.contain('LastModifiedTimestamp')
|
|
|
|
attribute_names.should.contain('QueueArn')
|
2014-06-20 21:29:40 +00:00
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_change_message_visibility_on_invalid_receipt():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=1)
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
2014-06-20 21:29:40 +00:00
|
|
|
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.write(queue.new_message('this is another test message'))
|
2014-06-20 21:29:40 +00:00
|
|
|
queue.count().should.equal(1)
|
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
|
|
|
|
|
|
|
assert len(messages) == 1
|
|
|
|
|
|
|
|
original_message = messages[0]
|
|
|
|
|
|
|
|
queue.count().should.equal(0)
|
|
|
|
|
|
|
|
time.sleep(2)
|
|
|
|
|
|
|
|
queue.count().should.equal(1)
|
|
|
|
|
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
|
|
|
|
|
|
|
assert len(messages) == 1
|
|
|
|
|
|
|
|
original_message.change_visibility.when.called_with(100).should.throw(SQSError)
|
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_change_message_visibility_on_visible_message():
|
|
|
|
conn = boto.connect_sqs('the_key', 'the_secret')
|
|
|
|
queue = conn.create_queue("test-queue", visibility_timeout=1)
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.set_message_class(RawMessage)
|
2014-06-20 21:29:40 +00:00
|
|
|
|
2014-06-23 18:53:46 +00:00
|
|
|
queue.write(queue.new_message('this is another test message'))
|
2014-06-20 21:29:40 +00:00
|
|
|
queue.count().should.equal(1)
|
|
|
|
messages = conn.receive_message(queue, number_messages=1)
|
|
|
|
|
|
|
|
assert len(messages) == 1
|
|
|
|
|
|
|
|
original_message = messages[0]
|
|
|
|
|
|
|
|
queue.count().should.equal(0)
|
|
|
|
|
|
|
|
time.sleep(2)
|
|
|
|
|
|
|
|
queue.count().should.equal(1)
|
|
|
|
|
|
|
|
original_message.change_visibility.when.called_with(100).should.throw(SQSError)
|
2015-05-30 03:21:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_purge_action():
|
|
|
|
conn = boto.sqs.connect_to_region("us-east-1")
|
|
|
|
|
|
|
|
queue = conn.create_queue('new-queue')
|
|
|
|
queue.write(queue.new_message('this is another test message'))
|
|
|
|
queue.count().should.equal(1)
|
|
|
|
|
|
|
|
queue.purge()
|
|
|
|
|
|
|
|
queue.count().should.equal(0)
|
2015-05-30 03:26:43 +00:00
|
|
|
|
|
|
|
|
|
|
|
@mock_sqs
|
|
|
|
def test_delete_message_after_visibility_timeout():
|
|
|
|
VISIBILITY_TIMEOUT = 1
|
|
|
|
conn = boto.sqs.connect_to_region("us-east-1")
|
|
|
|
new_queue = conn.create_queue('new-queue', visibility_timeout=VISIBILITY_TIMEOUT)
|
|
|
|
|
|
|
|
m1 = Message()
|
|
|
|
m1.set_body('Message 1!')
|
|
|
|
new_queue.write(m1)
|
|
|
|
|
|
|
|
assert new_queue.count() == 1
|
|
|
|
|
|
|
|
m1_retrieved = new_queue.read()
|
|
|
|
|
|
|
|
time.sleep(VISIBILITY_TIMEOUT + 1)
|
|
|
|
|
|
|
|
m1_retrieved.delete()
|
|
|
|
|
|
|
|
assert new_queue.count() == 0
|