mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
Make Request headers to be a dict of lists
This commit is contained in:
@@ -4,3 +4,18 @@ from vcr.request import Request
|
||||
def test_str():
|
||||
req = Request('GET', 'http://www.google.com:80/', '', {})
|
||||
str(req) == '<Request (GET) http://www.google.com:80/>'
|
||||
|
||||
|
||||
def test_headers():
|
||||
headers = {'X-Header1': ['h1'], 'X-Header2': 'h2'}
|
||||
req = Request('GET', 'http://go.com:80/', '', headers)
|
||||
assert req.headers == {'X-Header1': ['h1'], 'X-Header2': ['h2']}
|
||||
|
||||
req.add_header('X-Header1', 'h11')
|
||||
assert req.headers == {'X-Header1': ['h1', 'h11'], 'X-Header2': ['h2']}
|
||||
|
||||
|
||||
def test_flat_headers_dict():
|
||||
headers = {'X-Header1': ['h1', 'h11'], 'X-Header2': ['h2']}
|
||||
req = Request('GET', 'http://go.com:80/', '', headers)
|
||||
assert req.flat_headers_dict() == {'X-Header1': 'h1', 'X-Header2': 'h2'}
|
||||
|
||||
@@ -7,10 +7,16 @@ class Request(object):
|
||||
self.method = method
|
||||
self.uri = uri
|
||||
self.body = body
|
||||
self.headers = headers
|
||||
self.headers = {}
|
||||
for key in headers:
|
||||
self.add_header(key, headers[key])
|
||||
|
||||
def add_header(self, key, value):
|
||||
self.headers[key] = value
|
||||
value = list(value) if isinstance(value, (tuple, list)) else [value]
|
||||
self.headers.setdefault(key, []).extend(value)
|
||||
|
||||
def flat_headers_dict(self):
|
||||
return {key: self.headers[key][0] for key in self.headers}
|
||||
|
||||
@property
|
||||
def scheme(self):
|
||||
@@ -54,7 +60,7 @@ class Request(object):
|
||||
'method': self.method,
|
||||
'uri': self.uri,
|
||||
'body': self.body,
|
||||
'headers': dict(self.headers),
|
||||
'headers': self.headers,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
|
||||
@@ -225,7 +225,7 @@ class VCRConnection:
|
||||
method=self._vcr_request.method,
|
||||
url=self._url(self._vcr_request.uri),
|
||||
body=self._vcr_request.body,
|
||||
headers=dict(self._vcr_request.headers or {})
|
||||
headers=self._vcr_request.flat_headers_dict(),
|
||||
)
|
||||
|
||||
# get the response
|
||||
|
||||
Reference in New Issue
Block a user