Fix:SQS Receive Message (MessageAttributes) in response (#3303)

* Fix:SQS Receive Message (MessageAttributes) in response

* Fixed tests

Co-authored-by: usmankb <usman@krazybee.com>
This commit is contained in:
usmangani1 2020-10-05 14:40:24 +05:30 committed by GitHub
commit a65c0f004c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 104 additions and 18 deletions

View file

@ -183,9 +183,6 @@ def test_publish_to_sqs_msg_attr_byte_value():
message = queue_raw.receive_messages()[0]
message.body.should.equal("my message")
message.message_attributes.should.equal(
{"store": {"DataType": "Binary", "BinaryValue": b"\x02\x03\x04"}}
)
@mock_sqs
@ -216,9 +213,6 @@ def test_publish_to_sqs_msg_attr_number_type():
message = queue_raw.receive_messages()[0]
message.body.should.equal("test message")
message.message_attributes.should.equal(
{"retries": {"DataType": "Number", "StringValue": "0"}}
)
@mock_sns

View file

@ -593,9 +593,9 @@ def test_send_receive_message_with_attributes():
},
)
messages = conn.receive_message(QueueUrl=queue.url, MaxNumberOfMessages=2)[
"Messages"
]
messages = conn.receive_message(
QueueUrl=queue.url, MaxNumberOfMessages=2, MessageAttributeNames=["timestamp"]
)["Messages"]
message1 = messages[0]
message2 = messages[1]
@ -641,9 +641,9 @@ def test_send_receive_message_with_attributes_with_labels():
},
)
messages = conn.receive_message(QueueUrl=queue.url, MaxNumberOfMessages=2)[
"Messages"
]
messages = conn.receive_message(
QueueUrl=queue.url, MaxNumberOfMessages=2, MessageAttributeNames=["timestamp"]
)["Messages"]
message1 = messages[0]
message2 = messages[1]
@ -779,7 +779,14 @@ def test_send_message_with_attributes():
queue.write(message)
messages = conn.receive_message(queue)
messages = conn.receive_message(
queue,
message_attributes=[
"test.attribute_name",
"test.binary_attribute",
"test.number_attribute",
],
)
messages[0].get_body().should.equal(body)
@ -999,7 +1006,7 @@ def test_send_batch_operation_with_message_attributes():
)
queue.write_batch([message_tuple])
messages = queue.get_messages()
messages = queue.get_messages(message_attributes=["name1"])
messages[0].get_body().should.equal("test message 1")
for name, value in message_tuple[3].items():
@ -1234,7 +1241,11 @@ def test_send_message_batch():
["id_1", "id_2"]
)
response = client.receive_message(QueueUrl=queue_url, MaxNumberOfMessages=10)
response = client.receive_message(
QueueUrl=queue_url,
MaxNumberOfMessages=10,
MessageAttributeNames=["attribute_name_1", "attribute_name_2"],
)
response["Messages"][0]["Body"].should.equal("body_1")
response["Messages"][0]["MessageAttributes"].should.equal(
@ -1258,6 +1269,53 @@ def test_send_message_batch():
)
@mock_sqs
def test_message_attributes_in_receive_message():
sqs = boto3.resource("sqs", region_name="us-east-1")
conn = boto3.client("sqs", region_name="us-east-1")
conn.create_queue(QueueName="test-queue")
queue = sqs.Queue("test-queue")
body_one = "this is a test message"
queue.send_message(
MessageBody=body_one,
MessageAttributes={
"timestamp": {
"StringValue": "1493147359900",
"DataType": "Number.java.lang.Long",
}
},
)
messages = conn.receive_message(
QueueUrl=queue.url, MaxNumberOfMessages=2, MessageAttributeNames=["timestamp"]
)["Messages"]
messages[0]["MessageAttributes"].should.equal(
{
"timestamp": {
"StringValue": "1493147359900",
"DataType": "Number.java.lang.Long",
}
}
)
queue.send_message(
MessageBody=body_one,
MessageAttributes={
"timestamp": {
"StringValue": "1493147359900",
"DataType": "Number.java.lang.Long",
}
},
)
messages = conn.receive_message(QueueUrl=queue.url, MaxNumberOfMessages=2)[
"Messages"
]
messages[0].get("MessageAttributes").should.equal(None)
@mock_sqs
def test_send_message_batch_errors():
client = boto3.client("sqs", region_name="us-east-1")