Including Message attributes when ALL is passed (#3393)

* Including Message attributes when ALL is passes

* Added tests

Co-authored-by: usmankb <usman@krazybee.com>
This commit is contained in:
usmangani1 2020-10-19 13:34:38 +05:30 committed by GitHub
parent 2fe3aee359
commit fcc85a9645
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 1 deletions

View File

@ -537,8 +537,9 @@ class Queue(CloudFormationModel):
def _filter_message_attributes(message, input_message_attributes):
filtered_message_attributes = {}
return_all = "All" in input_message_attributes
for key, value in message.message_attributes.items():
if key in input_message_attributes:
if return_all or key in input_message_attributes:
filtered_message_attributes[key] = value
message.message_attributes = filtered_message_attributes

View File

@ -1320,6 +1320,28 @@ def test_message_attributes_in_receive_message():
messages[0].get("MessageAttributes").should.equal(None)
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=["All"]
)["Messages"]
messages[0]["MessageAttributes"].should.equal(
{
"timestamp": {
"StringValue": "1493147359900",
"DataType": "Number.java.lang.Long",
}
}
)
@mock_sqs
def test_send_message_batch_errors():