Skip to content

Commit 005ea67

Browse files
committed
[Librarian] Regenerated @ f167f1c70aa7e69507abb1d19134f00826f16241
1 parent 8107ef0 commit 005ea67

File tree

20 files changed

+1115
-66
lines changed

20 files changed

+1115
-66
lines changed

CHANGES.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@ twilio-python Changelog
33

44
Here you can see the full list of changes between each twilio-python release.
55

6+
[2018-07-05] Version 6.14.8
7+
----------------------------
8+
**Library**
9+
- PR #433: Fix all Docker image build and push issues. Thanks to @jonatasbaldin!
10+
- PR #432: Add docker to TravisCI. Thanks to @jonatasbaldin!
11+
- PR #431: Add provider to TravisCI. Thanks to @jonatasbaldin!
12+
- PR #430: Deploy just on tags and Python 3.6. Thanks to @jonatasbaldin!
13+
14+
**Api**
15+
- Release `Call Recording Controls` feature support in helper libraries
16+
- Add Voice Insights sub-category keys to usage records
17+
18+
619
[2018-06-29] Version 6.14.7
720
----------------------------
821
**Library**

tests/integration/api/v2010/account/call/test_recording.py

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,101 @@
1414

1515
class RecordingTestCase(IntegrationTestCase):
1616

17+
def test_create_request(self):
18+
self.holodeck.mock(Response(500, ''))
19+
20+
with self.assertRaises(TwilioException):
21+
self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
22+
.calls(sid="CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
23+
.recordings.create()
24+
25+
self.holodeck.assert_has_request(Request(
26+
'post',
27+
'https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings.json',
28+
))
29+
30+
def test_create_response(self):
31+
self.holodeck.mock(Response(
32+
201,
33+
'''
34+
{
35+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
36+
"api_version": "2010-04-01",
37+
"call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
38+
"conference_sid": null,
39+
"channels": 2,
40+
"date_created": "Fri, 14 Oct 2016 21:56:34 +0000",
41+
"date_updated": "Fri, 14 Oct 2016 21:56:34 +0000",
42+
"start_time": "Fri, 14 Oct 2016 21:56:34 +0000",
43+
"end_time": null,
44+
"price": null,
45+
"price_unit": null,
46+
"duration": "-1",
47+
"sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
48+
"source": "StartCallRecordingAPI",
49+
"status": "in-progress",
50+
"error_code": null,
51+
"encryption_details": null,
52+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings/REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
53+
}
54+
'''
55+
))
56+
57+
actual = self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
58+
.calls(sid="CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
59+
.recordings.create()
60+
61+
self.assertIsNotNone(actual)
62+
63+
def test_update_request(self):
64+
self.holodeck.mock(Response(500, ''))
65+
66+
with self.assertRaises(TwilioException):
67+
self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
68+
.calls(sid="CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
69+
.recordings(sid="REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").update(status="in-progress")
70+
71+
values = {'Status': "in-progress", }
72+
73+
self.holodeck.assert_has_request(Request(
74+
'post',
75+
'https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json',
76+
data=values,
77+
))
78+
79+
def test_update_response(self):
80+
self.holodeck.mock(Response(
81+
200,
82+
'''
83+
{
84+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
85+
"api_version": "2010-04-01",
86+
"call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
87+
"conference_sid": null,
88+
"channels": 2,
89+
"date_created": "Fri, 14 Oct 2016 21:56:34 +0000",
90+
"date_updated": "Fri, 14 Oct 2016 21:56:34 +0000",
91+
"start_time": "Fri, 14 Oct 2016 21:56:34 +0000",
92+
"end_time": null,
93+
"price": null,
94+
"price_unit": null,
95+
"duration": "-1",
96+
"sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
97+
"source": "StartCallRecordingAPI",
98+
"status": "paused",
99+
"error_code": null,
100+
"encryption_details": null,
101+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings/REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
102+
}
103+
'''
104+
))
105+
106+
actual = self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
107+
.calls(sid="CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
108+
.recordings(sid="REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").update(status="in-progress")
109+
110+
self.assertIsNotNone(actual)
111+
17112
def test_fetch_request(self):
18113
self.holodeck.mock(Response(500, ''))
19114

Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
# coding=utf-8
2+
"""
3+
This code was generated by
4+
\ / _ _ _| _ _
5+
| (_)\/(_)(_|\/| |(/_ v1.0.0
6+
/ /
7+
"""
8+
9+
from tests import IntegrationTestCase
10+
from tests.holodeck import Request
11+
from twilio.base.exceptions import TwilioException
12+
from twilio.http.response import Response
13+
14+
15+
class RecordingTestCase(IntegrationTestCase):
16+
17+
def test_update_request(self):
18+
self.holodeck.mock(Response(500, ''))
19+
20+
with self.assertRaises(TwilioException):
21+
self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
22+
.conferences(sid="CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
23+
.recordings(sid="REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").update(status="in-progress")
24+
25+
values = {'Status': "in-progress", }
26+
27+
self.holodeck.assert_has_request(Request(
28+
'post',
29+
'https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Conferences/CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json',
30+
data=values,
31+
))
32+
33+
def test_update_response(self):
34+
self.holodeck.mock(Response(
35+
200,
36+
'''
37+
{
38+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
39+
"api_version": "2010-04-01",
40+
"call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
41+
"conference_sid": "CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
42+
"channels": 1,
43+
"date_created": "Fri, 14 Oct 2016 21:56:34 +0000",
44+
"date_updated": "Fri, 14 Oct 2016 21:56:34 +0000",
45+
"start_time": "Fri, 14 Oct 2016 21:56:34 +0000",
46+
"end_time": null,
47+
"price": null,
48+
"price_unit": null,
49+
"duration": "-1",
50+
"sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
51+
"source": "StartConferenceRecordingAPI",
52+
"status": "paused",
53+
"error_code": null,
54+
"encryption_details": null,
55+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings/REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
56+
}
57+
'''
58+
))
59+
60+
actual = self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
61+
.conferences(sid="CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
62+
.recordings(sid="REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").update(status="in-progress")
63+
64+
self.assertIsNotNone(actual)
65+
66+
def test_fetch_request(self):
67+
self.holodeck.mock(Response(500, ''))
68+
69+
with self.assertRaises(TwilioException):
70+
self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
71+
.conferences(sid="CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
72+
.recordings(sid="REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").fetch()
73+
74+
self.holodeck.assert_has_request(Request(
75+
'get',
76+
'https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Conferences/CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json',
77+
))
78+
79+
def test_fetch_response(self):
80+
self.holodeck.mock(Response(
81+
200,
82+
'''
83+
{
84+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
85+
"api_version": "2010-04-01",
86+
"call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
87+
"conference_sid": "CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
88+
"channels": "1",
89+
"date_created": "Fri, 14 Oct 2016 21:56:34 +0000",
90+
"date_updated": "Fri, 14 Oct 2016 21:56:38 +0000",
91+
"start_time": "Fri, 14 Oct 2016 21:56:34 +0000",
92+
"end_time": "Fri, 14 Oct 2016 21:56:38 +0000",
93+
"price": "-0.0025",
94+
"price_unit": "USD",
95+
"duration": "4",
96+
"sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
97+
"source": "StartConferenceRecordingAPI",
98+
"status": "completed",
99+
"error_code": null,
100+
"encryption_details": {
101+
"encryption_public_key_sid": "CRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
102+
"encryption_cek": "OV4h6zrsxMIW7h0Zfqwfn6TI2GCNl54KALlg8wn8YB8KYZhXt6HlgvBWAmQTlfYVeLWydMiCewY0YkDDT1xmNe5huEo9vjuKBS5OmYK4CZkSx1NVv3XOGrZHpd2Pl/5WJHVhUK//AUO87uh5qnUP2E0KoLh1nyCLeGcEkXU0RfpPn/6nxjof/n6m6OzZOyeIRK4Oed5+rEtjqFDfqT0EVKjs6JAxv+f0DCc1xYRHl2yV8bahUPVKs+bHYdy4PVszFKa76M/Uae4jFA9Lv233JqWcxj+K2UoghuGhAFbV/JQIIswY2CBYI8JlVSifSqNEl9vvsTJ8bkVMm3MKbG2P7Q==",
103+
"encryption_iv": "8I2hhNIYNTrwxfHk"
104+
},
105+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings/REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
106+
}
107+
'''
108+
))
109+
110+
actual = self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
111+
.conferences(sid="CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
112+
.recordings(sid="REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").fetch()
113+
114+
self.assertIsNotNone(actual)
115+
116+
def test_delete_request(self):
117+
self.holodeck.mock(Response(500, ''))
118+
119+
with self.assertRaises(TwilioException):
120+
self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
121+
.conferences(sid="CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
122+
.recordings(sid="REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").delete()
123+
124+
self.holodeck.assert_has_request(Request(
125+
'delete',
126+
'https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Conferences/CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json',
127+
))
128+
129+
def test_delete_response(self):
130+
self.holodeck.mock(Response(
131+
204,
132+
None,
133+
))
134+
135+
actual = self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
136+
.conferences(sid="CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
137+
.recordings(sid="REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").delete()
138+
139+
self.assertTrue(actual)
140+
141+
def test_list_request(self):
142+
self.holodeck.mock(Response(500, ''))
143+
144+
with self.assertRaises(TwilioException):
145+
self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
146+
.conferences(sid="CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
147+
.recordings.list()
148+
149+
self.holodeck.assert_has_request(Request(
150+
'get',
151+
'https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Conferences/CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings.json',
152+
))
153+
154+
def test_read_full_response(self):
155+
self.holodeck.mock(Response(
156+
200,
157+
'''
158+
{
159+
"end": 0,
160+
"first_page_uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings.json?PageSize=50&Page=0",
161+
"next_page_uri": null,
162+
"page": 0,
163+
"page_size": 50,
164+
"previous_page_uri": null,
165+
"recordings": [
166+
{
167+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
168+
"api_version": "2010-04-01",
169+
"call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
170+
"conference_sid": "CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
171+
"channels": "1",
172+
"date_created": "Fri, 14 Oct 2016 21:56:34 +0000",
173+
"date_updated": "Fri, 14 Oct 2016 21:56:38 +0000",
174+
"start_time": "Fri, 14 Oct 2016 21:56:34 +0000",
175+
"end_time": "Fri, 14 Oct 2016 21:56:38 +0000",
176+
"price": "-0.0025",
177+
"price_unit": "USD",
178+
"duration": "4",
179+
"sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
180+
"source": "StartConferenceRecordingAPI",
181+
"status": "completed",
182+
"error_code": null,
183+
"encryption_details": {
184+
"encryption_public_key_sid": "CRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
185+
"encryption_cek": "OV4h6zrsxMIW7h0Zfqwfn6TI2GCNl54KALlg8wn8YB8KYZhXt6HlgvBWAmQTlfYVeLWydMiCewY0YkDDT1xmNe5huEo9vjuKBS5OmYK4CZkSx1NVv3XOGrZHpd2Pl/5WJHVhUK//AUO87uh5qnUP2E0KoLh1nyCLeGcEkXU0RfpPn/6nxjof/n6m6OzZOyeIRK4Oed5+rEtjqFDfqT0EVKjs6JAxv+f0DCc1xYRHl2yV8bahUPVKs+bHYdy4PVszFKa76M/Uae4jFA9Lv233JqWcxj+K2UoghuGhAFbV/JQIIswY2CBYI8JlVSifSqNEl9vvsTJ8bkVMm3MKbG2P7Q==",
186+
"encryption_iv": "8I2hhNIYNTrwxfHk"
187+
},
188+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings.json"
189+
}
190+
],
191+
"start": 0,
192+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings.json?PageSize=50&Page=0"
193+
}
194+
'''
195+
))
196+
197+
actual = self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
198+
.conferences(sid="CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
199+
.recordings.list()
200+
201+
self.assertIsNotNone(actual)
202+
203+
def test_read_empty_response(self):
204+
self.holodeck.mock(Response(
205+
200,
206+
'''
207+
{
208+
"end": 0,
209+
"first_page_uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings.json?PageSize=50&Page=0",
210+
"next_page_uri": null,
211+
"page": 0,
212+
"page_size": 50,
213+
"previous_page_uri": null,
214+
"recordings": [],
215+
"start": 0,
216+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings.json?PageSize=50&Page=0"
217+
}
218+
'''
219+
))
220+
221+
actual = self.client.api.v2010.accounts(sid="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
222+
.conferences(sid="CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
223+
.recordings.list()
224+
225+
self.assertIsNotNone(actual)

0 commit comments

Comments
 (0)