diff --git a/tests/integration/test_request.py b/tests/integration/test_request.py index 0e01674..cbb6242 100644 --- a/tests/integration/test_request.py +++ b/tests/integration/test_request.py @@ -9,3 +9,14 @@ def test_recorded_request_uri_with_redirected_request(tmpdir): assert cass.requests[0].uri == 'http://httpbin.org/redirect/3' assert cass.requests[3].uri == 'http://httpbin.org/get' assert len(cass) == 4 + + +def test_records_multiple_header_values(tmpdir, httpserver): + httpserver.serve_content('Hello!', headers=[('foo', 'bar'), ('foo', 'baz')]) + + with vcr.use_cassette(str(tmpdir.join('test.yml'))) as cass: + assert len(cass) == 0 + + urlopen(httpserver.url) + assert len(cass) == 1 + assert cass.responses[0]['headers']['foo'] == ['bar', 'baz'] diff --git a/vcr/stubs/compat.py b/vcr/stubs/compat.py index 6b65ca0..13f30a0 100644 --- a/vcr/stubs/compat.py +++ b/vcr/stubs/compat.py @@ -28,7 +28,7 @@ def get_header_items(message): def get_headers(response): - for key in response.msg.keys(): + for key in set(response.msg.keys()): if six.PY3: yield key, response.msg.get_all(key) else: