From 1e8e7057f5ca68a9256b253e11638ba208a969f9 Mon Sep 17 00:00:00 2001 From: Kevin McCarthy Date: Sat, 3 May 2014 20:37:53 -1000 Subject: [PATCH] fix python3 compat --- vcr/stubs/__init__.py | 4 ++-- vcr/stubs/compat.py | 11 +++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/vcr/stubs/__init__.py b/vcr/stubs/__init__.py index 6cc1bfa..d49e78b 100644 --- a/vcr/stubs/__init__.py +++ b/vcr/stubs/__init__.py @@ -55,9 +55,9 @@ def parse_headers(header_list): def serialize_headers(response): out = {} - for key in response.msg.keys(): + for key, values in compat.get_headers(response): out.setdefault(key, []) - out[key].extend(response.msg.getheaders(key)) + out[key].extend(values) return out diff --git a/vcr/stubs/compat.py b/vcr/stubs/compat.py index 3b383e5..6b65ca0 100644 --- a/vcr/stubs/compat.py +++ b/vcr/stubs/compat.py @@ -28,12 +28,11 @@ def get_header_items(message): def get_headers(response): - if six.PY3: - header_list = response.msg._headers - return [b': '.join((k.encode('utf-8'), v.encode('utf-8'))) + b'\r\n' - for k, v in header_list] - else: - return response.msg.headers + for key in response.msg.keys(): + if six.PY3: + yield key, response.msg.get_all(key) + else: + yield key, response.msg.getheaders(key) def get_httpmessage(headers):