Stop autodecoding content so we can mimic requests. Closes #963.

This commit is contained in:
Steve Pulec 2017-06-03 19:06:49 -04:00
parent 3d886aeadc
commit 49c947ece7
2 changed files with 31 additions and 0 deletions

View File

@ -270,6 +270,8 @@ class RequestsMock(object):
body=body,
headers=headers,
preload_content=False,
# Need to not decode_content to mimic requests
decode_content=False,
)
response = adapter.build_response(request, response)

View File

@ -6,7 +6,9 @@ import datetime
from six.moves.urllib.request import urlopen
from six.moves.urllib.error import HTTPError
from functools import wraps
from gzip import GzipFile
from io import BytesIO
import zlib
import json
import boto
@ -1405,6 +1407,33 @@ def test_boto3_delete_markers():
)
@mock_s3
def test_get_stream_gzipped():
payload = "this is some stuff here"
s3_client = boto3.client("s3", region_name='us-east-1')
s3_client.create_bucket(Bucket='moto-tests')
buffer_ = BytesIO()
with GzipFile(fileobj=buffer_, mode='w') as f:
f.write(payload)
payload_gz = buffer_.getvalue()
s3_client.put_object(
Bucket='moto-tests',
Key='keyname',
Body=payload_gz,
ContentEncoding='gzip',
)
obj = s3_client.get_object(
Bucket='moto-tests',
Key='keyname',
)
res = zlib.decompress(obj['Body'].read(), 16+zlib.MAX_WBITS)
assert res == payload
TEST_XML = """\
<?xml version="1.0" encoding="UTF-8"?>
<ns0:WebsiteConfiguration xmlns:ns0="http://s3.amazonaws.com/doc/2006-03-01/">