diff --git a/httmock.py b/httmock.py index a69e6bc..a36abe9 100644 --- a/httmock.py +++ b/httmock.py @@ -39,14 +39,14 @@ def response(status_code=200, content='', headers=None, reason=None, elapsed=0, request=None, stream=False, http_vsn=11): res = requests.Response() res.status_code = status_code + res.headers = structures.CaseInsensitiveDict(headers or {}) + res.encoding = utils.get_encoding_from_headers(res.headers) if isinstance(content, (dict, list)): - content = json.dumps(content).encode('utf-8') + content = json.dumps(content).encode(res.encoding or 'utf-8') if isinstance(content, text_type): - content = content.encode('utf-8') + content = content.encode(res.encoding or 'utf-8') res._content = content res._content_consumed = content - res.headers = structures.CaseInsensitiveDict(headers or {}) - res.encoding = utils.get_encoding_from_headers(res.headers) res.reason = reason res.elapsed = datetime.timedelta(elapsed) res.request = request diff --git a/tests.py b/tests.py index 9d4cabb..6cf8ad8 100644 --- a/tests.py +++ b/tests.py @@ -58,6 +58,15 @@ def charset_utf8(url, request): } } +@all_requests +def charset_ISO88591(url, request): + return { + 'content': u'