Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/pr/59'
Browse files Browse the repository at this point in the history
  • Loading branch information
sigmavirus24 committed Apr 12, 2015
2 parents ffaf669 + f2675f1 commit 9f0375e
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 3 deletions.
2 changes: 2 additions & 0 deletions betamax/cassette/interaction.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from .util import (deserialize_response, deserialize_prepared_request,
from_list)
from requests.cookies import extract_cookies_to_jar
from datetime import datetime


Expand Down Expand Up @@ -34,6 +35,7 @@ def deserialize(self):
"""Turn a serialized interaction into a Response."""
r = deserialize_response(self.json['response'])
r.request = deserialize_prepared_request(self.json['request'])
extract_cookies_to_jar(r.cookies, r.request, r.raw)
self.recorded_at = datetime.strptime(
self.json['recorded_at'], '%Y-%m-%dT%H:%M:%S'
)
Expand Down
7 changes: 4 additions & 3 deletions betamax/cassette/mock_response.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import re

from email import parser, message
import sys


class MockHTTPResponse(object):
Expand All @@ -10,6 +9,8 @@ def __init__(self, headers):
h = ["%s: %s" % (k, v) for (k, v) in headers.items()]
h = map(coerce_content, h)
h = '\r\n'.join(h)
if sys.version_info < (2, 7):
h = h.encode()
p = parser.Parser(EmailMessage)
# Thanks to Python 3, we have to use the slightly more awful API below
# mimetools was deprecated so we have to use email.message.Message
Expand All @@ -23,4 +24,4 @@ def isclosed(self):

class EmailMessage(message.Message):
def getheaders(self, value, *args):
return re.split(b', ', self.get(value, b'', *args))
return self.get_all(value, [])
7 changes: 7 additions & 0 deletions tests/unit/test_cassette.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,13 @@ def check_uri(attr):
headers = dict((k, v[0]) for k, v in self.response['headers'].items())
assert headers == r.headers

tested_cookie = False
for cookie in r.cookies:
cookie_str = "{0}={1}".format(cookie.name, cookie.value)
assert cookie_str == r.headers['Set-Cookie']
tested_cookie = True
assert tested_cookie

assert self.response['body']['string'] == decode(r.content)
actual_req = r.request
expected_req = self.request
Expand Down

0 comments on commit 9f0375e

Please sign in to comment.