8000 Use requests library response.text (Unicode) instead of response.cont… · thecodeflash/twilio-python@e4c4154 · GitHub
[go: up one dir, main page]

Skip to content

Commit e4c4154

Browse files
committed
Use requests library response.text (Unicode) instead of response.content (bytes), and add tests with Unicode strings
1 parent b9a0b1b commit e4c4154

File tree

7 files changed

+19
-16
lines changed

7 files changed

+19
-16
lines changed

tests/unit/http/test_http_client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from requests import Session
1111

1212
from twilio.http.http_client import TwilioHttpClient
13+
from twilio.http.response import Response
1314

1415

1516
class TestHttpClientRequest(unittest.TestCase):
@@ -21,7 +22,7 @@ def setUp(self):
2122
self.request_mock = Mock()
2223

2324
self.session_mock.prepare_request.return_value = self.request_mock
24-
self.session_mock.send.return_value = Mock(status_code=200, content=six.u('testing-unicodeΩ≈ç√'))
25+
self.session_mock.send.return_value = Response(200, 'testing-unicode: Ω≈ç√, 💩')
2526
self.request_mock.headers = {}
2627

2728
session_constructor_mock = self.session_patcher.start()
@@ -48,4 +49,4 @@ def test_request_with_unicode_response(self):
4849

4950
self.assertEqual('other.twilio.com', self.request_mock.headers['Host'])
5051
self.assertEqual(200, response.status_code)
51-
self.assertEqual(six.u('testing-unicodeΩ≈ç√'), response.content)
52+
self.assertEqual('testing-unicode: Ω≈ç√, 💩', response.content)

tests/unit/http/test_validation_client.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# -*- coding: utf-8 -*-
22

3-
import six
4-
53
import unittest
64

75
import mock
@@ -10,6 +8,7 @@
108
from requests import Session
119

1210
from twilio.http.validation_client import ValidationClient
11+
from twilio.http.response import Response
1312

1413

1514
class TestValidationClientHelpers(unittest.TestCase):
@@ -80,7 +79,7 @@ def setUp(self):
8079
self.request_mock = Mock()
8180

8281
self.session_mock.prepare_request.return_value = self.request_mock
83-
self.session_mock.send.return_value = Mock(status_code=200, content=six.u('testΩ'))
82+
self.session_mock.send.return_value = Response(200, 'test, omega: Ω, pile of poop: 💩')
8483
self.validation_token.return_value.to_jwt.return_value = 'test-token'
8584
self.request_mock.headers = {}
8685

@@ -119,4 +118,4 @@ def test_request_with_unicode_response(self):
119118
self.assertEqual('other.twilio.com', self.request_mock.headers['Host'])
120119
self.assertEqual('test-token', self.request_mock.headers['Twilio-Client-Validation'])
121120
self.assertEqual(200, response.status_code)
122-
self.assertEqual(six.u('testΩ'), response.content)
121+
self.assertEqual('test, omega: Ω, pile of poop: 💩', response.content)

twilio/base/page.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def process_response(self, response):
5858
if response.status_code != 200:
5959
raise TwilioException('Unable to fetch page', response)
6060

61-
return json.loads(response.content)
61+
return json.loads(response.text)
6262

6363
def load_page(self, payload):
6464
"""

twilio/base/version.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def exception(cls, method, uri, response, message):
5454
"""
5555
# noinspection PyBroadException
5656
try:
57-
error_payload = json.loads(response.content)
57+
error_payload = json.loads(response.text)
5858
if 'message' in error_payload:
5959
message = '{}: {}'.format(message, error_payload['message'])
6060
code = error_payload.get('code', response.status_code)
@@ -81,7 +81,7 @@ def fetch(self, method, uri, params=None, data=None, headers=None, auth=None, ti
8181
if response.status_code < 200 or response.status_code >= 300:
8282
raise self.exception(method, uri, response, 'Unable to fetch record')
8383

84-
return json.loads(response.content)
84+
return json.loads(response.text)
8585

8686
def update(self, method, uri, params=None, data=None, headers=None, auth=None, timeout=None,
8787
allow_redirects=False):
@@ -102,7 +102,7 @@ def update(self, method, uri, params=None, data=None, headers=None, auth=None, t
102102
if response.status_code < 200 or response.status_code >= 300:
103103
raise self.exception(method, uri, response, 'Unable to update record')
104104

105-
return json.loads(response.content)
105+
return json.loads(response.text)
106106

107107
def delete(self, method, uri, params=None, data=None, headers=None, auth=None, timeout=None,
108108
allow_redirects=False):
@@ -208,5 +208,4 @@ def create(self, method, uri, params=None, data=None, headers=None, auth=None, t
208208
if response.status_code < 200 or response.status_code >= 300:
209209
raise self.exception(method, uri, response, 'Unable to create record')
210210

211-
return json.loads(response.content)
212-
211+
return json.loads(response.text)

twilio/http/http_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ def request(self, method, url, params=None, data=None, headers=None, auth=None,
3838
timeout=timeout,
3939
)
4040

41-
return Response(int(response.status_code), response.content)
41+
return Response(int(response.status_code), response.text)

twilio/http/response.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@ class Response(object):
22
"""
33
44
"""
5-
def __init__(self, status_code, content):
6-
self.content = content
5+
def __init__(self, status_code, text):
6+
self.content = text
77
self.cached = False
88
self.status_code = status_code
99
self.ok = self.status_code < 400
1010

11+
@property
12+
def text(self):
13+
return self.content
14+
1115
def __repr__(self):
1216
return 'HTTP {} {}'.format(self.status_code, self.content)

twilio/http/validation_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def request(self, method, url, params=None, data=None, headers=None, auth=None,
6969
timeout=timeout,
7070
)
7171

72-
return Response(int(response.status_code), response.content)
72+
return Response(int(response.status_code), response.text)
7373

7474
def _build_validation_payload(self, request):
7575
"""

0 commit comments

Comments
 (0)
0