10000 added tests for CallFeedback · LilyAcorn/twilio-python@e64f9d7 · GitHub
[go: up one dir, main page]

Skip to content

Commit e64f9d7

Browse files
author
Doug Black
committed
added tests for CallFeedback
1 parent d8b28bb commit e64f9d7

File tree

3 files changed

+77
-7
lines changed

3 files changed

+77
-7
lines changed

tests/resources/call_feedback.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"quality_score": 5,
3+
"issues": [
4+
"imperfect-audio",
5+
"post-dial-delay"
6+
]
7+
}

tests/test_call_feedback.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import unittest
2+
3+
from nose.tools import assert_equal
4+
from mock import Mock, patch, ANY
5+
from tools import create_mock_json
6+
from twilio.rest.resources import Call
7+
8+
AUTH = ('foo', 'bar')
9+
10+
11+
class CallFeedbackTest(unittest.TestCase):
12+
13+
@patch('twilio.rest.resources.base.make_twilio_request')
14+
def test_get_call_feedback(self, request):
15+
resp = create_mock_json('tests/resources/call_feedback.json')
16+
request.return_value = resp
17+
18+
mock = Mock()
19+
mock.uri = '/base'
20+
call = Call(mock, 'CA123')
21+
call.load_subresources()
22+
feedback = call.feedback.get()
23+
assert_equal(5, feedback.quality_score, 5)
24+
assert_equal(['imperfect-audio', 'post-dial-delay'], feedback.issues)
25+
26+
@patch('twilio.rest.resources.base.make_twilio_request')
27+
def test_create_call_feedback(self, request):
28+
resp = create_mock_json('tests/resources/call_feedback.json')
29+
resp.status_code = 201
30+
request.return_value = resp
31+
32+
mock = Mock()
33+
mock.uri = '/base'
34+
mock.auth = AUTH
35+
call = Call(mock, 'CA123')
36+
call.load_subresources()
37+
feedback = call.feedback.create(
38+
quality_score=5,
39+
issues=['imperfect-audio', 'post-dial-delay'],
40+
)
41+
42+
exp_data = {
43+
'QualityScore': 5,
44+
'Issues': ['imperfect-audio', 'post-dial-delay'],
45+
}
46+
assert_equal(5, feedback.quality_score, 5)
47+
assert_equal(['imperfect-audio', 'post-dial-delay'], feedback.issues)
48+
request.assert_called_with(
49+
"POST", "/base/CA123/Feedback",
50+
data=exp_data, auth=AUTH,
51+
timeout=ANY,
52+
)

twilio/rest/resources/call_feedback.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,19 @@
1-
from twilio.rest.resources import ListResource, InstanceResource, transform_params
1+
from twilio.rest.resources import (
2+
ListResource,
3+
InstanceResource,
4+
transform_params,
5+
)
6+
7+
8+
class CallFeedback(InstanceResource):
9+
10+
def __init__(self, parent):
11+
self.parent = parent
12+
super(InstanceResource, self).__init__(
13+
parent.uri,
14+
parent.auth,
15+
parent.timeout,
16+
)
217

318

419
class CallFeedbackFactory(ListResource):
@@ -37,16 +52,12 @@ def get(self, **kwargs):
3752
:raises: a :exc:`~twilio.TwilioRestException` if the request fails
3853
"""
3954
params = transform_params(kwargs)
40-
resp, _ = self.request("GET", self.uri, params=params)
41-
return self.load_instance(resp)
55+
_, data = self.request("GET", self.uri, params=params)
56+
return self.load_instance(data)
4257

4358
def load_instance(self, data):
4459
# Overridden because CallFeedback instances
4560
# don't contain sids :(
4661
instance = self.instance(self)
4762
instance.load(data)
4863
return instance
49-
50-
51-
class CallFeedback(InstanceResource):
52-
pass

0 commit comments

Comments
 (0)
0