SQS - Allow XML content to be received as a message attr (#4337)

This commit is contained in:
Bert Blommers 2021-09-23 18:55:22 +00:00 committed by GitHub
parent dadc529445
commit d87a2eab49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 1 deletions

View File

@ -648,7 +648,7 @@ RECEIVE_MESSAGE_RESPONSE = """<ReceiveMessageResponse>
{% if 'Binary' in value.data_type %}
<BinaryValue>{{ value.binary_value }}</BinaryValue>
{% else %}
<StringValue>{{ value.string_value }}</StringValue>
<StringValue><![CDATA[{{ value.string_value }}]]></StringValue>
{% endif %}
</Value>
</MessageAttribute>

View File

@ -916,6 +916,28 @@ def test_send_receive_message_with_attributes_with_labels():
)
@mock_sqs
def test_receive_message_with_xml_content():
sqs = boto3.client("sqs", region_name="eu-west-2")
queue_url = sqs.create_queue(QueueName="test-queue")["QueueUrl"]
original_payload = '<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom"/>'
data = {"Payload": {"DataType": "String", "StringValue": original_payload}}
sqs.send_message(
QueueUrl=queue_url, MessageBody="NSWSS Atom Feed", MessageAttributes=data
)
messages = sqs.receive_message(
QueueUrl=queue_url,
MessageAttributeNames=("Payload",),
MaxNumberOfMessages=1,
VisibilityTimeout=0,
)["Messages"]
attr = messages[0]["MessageAttributes"]["Payload"]["StringValue"]
attr.should.equal(original_payload)
@mock_sqs
def test_change_message_visibility_than_permitted():
if settings.TEST_SERVER_MODE: