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: