Skip to content

Commit

Permalink
Cleanup SQS body encoding. Closes #458, #460.
Browse files Browse the repository at this point in the history
  • Loading branch information
spulec committed Mar 19, 2017
1 parent f9b7a0a commit a0a2053
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
3 changes: 2 additions & 1 deletion moto/core/responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ def setup_class(self, request, full_url, headers):
for key, value in request.form.items():
querystring[key] = [value, ]

raw_body = self.body
if isinstance(self.body, six.binary_type):
self.body = self.body.decode('utf-8')

Expand All @@ -143,7 +144,7 @@ def setup_class(self, request, full_url, headers):
for key, value in flat.items():
querystring[key] = [value]
elif self.body:
querystring.update(parse_qs(self.body, keep_blank_values=True))
querystring.update(parse_qs(raw_body, keep_blank_values=True))
if not querystring:
querystring.update(headers)

Expand Down
15 changes: 15 additions & 0 deletions tests/test_sqs/test_sqs.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

import boto
Expand Down Expand Up @@ -54,6 +55,20 @@ def test_message_send():
messages.should.have.length_of(1)


@mock_sqs
def test_send_message_with_unicode_characters():
body_one = 'Héllo!😀'

sqs = boto3.resource('sqs', region_name='us-east-1')
queue = sqs.create_queue(QueueName="blah")
msg = queue.send_message(MessageBody=body_one)

messages = queue.receive_messages()
message_body = messages[0].body

message_body.should.equal(body_one)


@mock_sqs
def test_set_queue_attributes():
sqs = boto3.resource('sqs', region_name='us-east-1')
Expand Down

0 comments on commit a0a2053

Please sign in to comment.