From d87a2eab499f9875f143e63238b5be1a83105ee3 Mon Sep 17 00:00:00 2001 From: Bert Blommers Date: Thu, 23 Sep 2021 18:55:22 +0000 Subject: [PATCH] SQS - Allow XML content to be received as a message attr (#4337) --- moto/sqs/responses.py | 2 +- tests/test_sqs/test_sqs.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/moto/sqs/responses.py b/moto/sqs/responses.py index e3d53b5b6..f45f00f24 100644 --- a/moto/sqs/responses.py +++ b/moto/sqs/responses.py @@ -648,7 +648,7 @@ RECEIVE_MESSAGE_RESPONSE = """ {% if 'Binary' in value.data_type %} {{ value.binary_value }} {% else %} - {{ value.string_value }} + {% endif %} diff --git a/tests/test_sqs/test_sqs.py b/tests/test_sqs/test_sqs.py index 6aee36fd5..33560daef 100644 --- a/tests/test_sqs/test_sqs.py +++ b/tests/test_sqs/test_sqs.py @@ -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 = '' + 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: