8000 add a unit test · gustafa/twilio-python@ae9e359 · GitHub
[go: up one dir, main page]

Skip to content

Commit ae9e359

Browse files
committed
add a unit test
1 parent abdc9ad commit ae9e359

File tree

2 files changed

+50
-2
lines changed

2 files changed

+50
-2
lines changed

tests/test_base_resource.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
else:
77
import unittest2 as unittest
88

9-
from mock import Mock
9+
from mock import Mock, sentinel, patch, ANY
1010
from nose.tools import assert_equal, assert_true
11+
from twilio.rest.resources.imports import json
1112
from twilio.rest.resources import Resource
1213
from twilio.rest.resources import ListResource
1314
from twilio.rest.resources import InstanceResource
@@ -128,3 +129,28 @@ def testLoadSubresources(self):
128129
self.r.subresources = [m]
129130
self.r.load_subresources()
130131
m.assert_called_with(self.r.uri, self.r.auth, self.r.timeout)
132+
133+
134+
class testTimeoutPropagation(unittest.TestCase):
135+
def setUp(self):
136+
self.parent = ListResource(base_uri, auth, timeout=sentinel.timeout)
137+
self.r = InstanceResource(self.parent, "123")
138+
self.uri = "%s/%s" % (self.parent.uri, "123")
139+
140+
@patch('twilio.rest.resources.base.make_request')
141+
def testPassThrough(self, mock_request):
142+
mock_response = Mock()
143+
mock_response.ok = True,
144+
mock_response.content = json.dumps({'key': 'value'})
145+
mock_request.return_value = mock_response
146+
147+
self.assertEquals(self.r.timeout, sentinel.timeout)
148+
self.assertEquals((mock_response, {'key': 'value'}), self.r.request('GET', base_uri))
149+
150+
mock_request.assert_called_once_with(
151+
'GET',
152+
base_uri + '.json',
153+
headers=ANY,
154+
timeout=sentinel.timeout,
155+
auth=ANY
156+
)

tests/test_client.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
else:
55
import unittest2 as unittest
66

7+
from twilio.rest.resources.imports import json
78
from twilio.rest import TwilioRestClient, resources
8-
from mock import patch, Mock
9+
from mock import patch, Mock, sentinel, ANY
910
from tools import create_mock_json
1011

1112
AUTH = ("ACCOUNT_SID", "AUTH_TOKEN")
@@ -46,3 +47,24 @@ def test_members(self, mock):
4647
self.client.members("QU123").list()
4748
uri = "https://api.twilio.com/2010-04-01/Accounts/ACCOUNT_SID/Queues/QU123/Members"
4849
mock.assert_called_with("GET", uri, params={}, auth=AUTH)
50+
51+
52+
class RestClientTimeoutTest(unittest.TestCase):
53+
def setUp(self):
54+
self.client = TwilioRestClient("ACCOUNT_SID", "AUTH_TOKEN", timeout=sentinel.timeout)
55+
56+
@patch("twilio.rest.resources.base.make_twilio_request")
57+
def test_members(self, mock_request):
58+
resp = create_mock_json("tests/resources/members_list.json")
59+
mock_request.return_value = resp
60+
self.client.members("QU123").list()
61+
mock_request.assert_called_with("GET", ANY, params=ANY, auth=AUTH, timeout=sentinel.timeout)
62+
63+
@patch("twilio.rest.resources.base.make_twilio_request")
64+
def test_arbitrary_member(self, mock_request):
542E 65+
mock_response = Mock()
66+
mock_response.ok = True
67+
mock_response.content = json.dumps({"short_codes": []})
68+
mock_request.return_value = mock_response
69+
self.assertEqual([], self.client.sms.short_codes.list())
70+
mock_request.assert_called_once_with("GET", ANY, params=ANY, auth=AUTH, timeout=sentinel.timeout)

0 commit comments

Comments
 (0)
0