Skip to content

Commit 4a216c1

Browse files
committed
[Librarian] Regenerated @ 976ae96ea6cb1a15afb9a97d3ef0291050a1939a
1 parent 6e1e811 commit 4a216c1

File tree

12 files changed

+399
-17
lines changed

12 files changed

+399
-17
lines changed

CHANGES.md

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

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

6+
[2022-01-12] Version 7.5.0
7+
--------------------------
8+
**Library - Chore**
9+
- [PR #587](https://github.com/twilio/twilio-python/pull/587): add sonarcloud integration. Thanks to [@BrimmingDev](https://github.com/BrimmingDev)!
10+
11+
**Library - Feature**
12+
- [PR #586](https://github.com/twilio/twilio-python/pull/586): add GitHub release step during deploy. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
13+
14+
**Api**
15+
- Make fixed time scheduling parameters public **(breaking change)**
16+
17+
**Messaging**
18+
- Add update brand registration API
19+
20+
**Numbers**
21+
- Add API endpoint for List Bundle Copies resource
22+
23+
**Video**
24+
- Enable external storage for all customers
25+
26+
627
[2021-12-15] Version 7.4.0
728
--------------------------
829
**Library - Feature**

tests/integration/api/v2010/account/test_message.py

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,114 @@ def test_create_with_queued_status_response(self):
173173

174174
self.assertIsNotNone(actual)
175175

176+
def test_create_scheduled_message_sms_response(self):
177+
self.holodeck.mock(Response(
178+
201,
179+
'''
180+
{
181+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
182+
"api_version": "2010-04-01",
183+
"body": "Hello! \\ud83d\\udc4d",
184+
"date_created": "Mon, 29 Nov 2021 22:40:10 +0000",
185+
"date_sent": null,
186+
"date_updated": "Mon, 29 Nov 2021 22:40:10 +0000",
187+
"direction": "outbound-api",
188+
"error_code": null,
189+
"error_message": null,
190+
"from": null,
191+
"messaging_service_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
192+
"num_media": "0",
193+
"num_segments": "0",
194+
"price": null,
195+
"price_unit": null,
196+
"sid": "SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
197+
"status": "scheduled",
198+
"subresource_uris": {
199+
"media": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json"
200+
},
201+
"to": "+15558675310",
202+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
203+
}
204+
'''
205+
))
206+
207+
actual = self.client.api.v2010.accounts("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
208+
.messages.create(to="+15558675310")
209+
210+
self.assertIsNotNone(actual)
211+
212+
def test_create_scheduled_message_mms_response(self):
213+
self.holodeck.mock(Response(
214+
201,
215+
'''
216+
{
217+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
218+
"api_version": "2010-04-01",
219+
"body": "Hello! \\ud83d\\udc4d",
220+
"date_created": "Mon, 29 Nov 2021 22:40:10 +0000",
221+
"date_sent": null,
222+
"date_updated": "Mon, 29 Nov 2021 22:40:10 +0000",
223+
"direction": "outbound-api",
224+
"error_code": null,
225+
"error_message": null,
226+
"from": null,
227+
"messaging_service_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
228+
"num_media": "1",
229+
"num_segments": "1",
230+
"price": null,
231+
"price_unit": null,
232+
"sid": "SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
233+
"status": "scheduled",
234+
"subresource_uris": {
235+
"media": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json"
236+
},
237+
"to": "+15558675310",
238+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
239+
}
240+
'''
241+
))
242+
243+
actual = self.client.api.v2010.accounts("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
244+
.messages.create(to="+15558675310")
245+
246+
self.assertIsNotNone(actual)
247+
248+
def test_create_scheduled_message_whatsapp_response(self):
249+
self.holodeck.mock(Response(
250+
201,
251+
'''
252+
{
253+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
254+
"api_version": "2010-04-01",
255+
"body": "Hello! \\ud83d\\udc4d",
256+
"date_created": "Mon, 29 Nov 2021 22:40:10 +0000",
257+
"date_sent": null,
258+
"date_updated": "Mon, 29 Nov 2021 22:40:10 +0000",
259+
"direction": "outbound-api",
260+
"error_code": null,
261+
"error_message": null,
262+
"from": null,
263+
"messaging_service_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
264+
"num_media": "0",
265+
"num_segments": "0",
266+
"price": null,
267+
"price_unit": null,
268+
"sid": "SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
269+
"status": "scheduled",
270+
"subresource_uris": {
271+
"media": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json"
272+
},
273+
"to": "whatsapp:+15558675310",
274+
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
275+
}
276+
'''
277+
))
278+
279+
actual = self.client.api.v2010.accounts("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
280+
.messages.create(to="+15558675310")
281+
282+
self.assertIsNotNone(actual)
283+
176284
def test_delete_request(self):
177285
self.holodeck.mock(Response(500, ''))
178286

tests/integration/media/v1/test_player_streamer.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ def test_fetch_response(self):
4141
"ended_reason": null,
4242
"url": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe",
4343
"links": {
44-
"access_token": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/AccessToken",
4544
"timed_metadata": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/TimedMetadata",
4645
"playback_grant": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/PlaybackGrant"
4746
}
@@ -80,7 +79,6 @@ def test_create_response(self):
8079
"ended_reason": null,
8180
"url": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe",
8281
"links": {
83-
"access_token": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/AccessToken",
8482
"timed_metadata": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/TimedMetadata",
8583
"playback_grant": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/PlaybackGrant"
8684
}
@@ -122,7 +120,6 @@ def test_update_response(self):
122120
"ended_reason": "ended-via-api",
123121
"url": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe",
124122
"links": {
125-
"access_token": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/AccessToken",
126123
"timed_metadata": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/TimedMetadata",
127124
"playback_grant": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/PlaybackGrant"
128125
}
@@ -195,7 +192,6 @@ def test_read_items_response(self):
195192
"ended_reason": "ended-via-api",
196193
"url": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe",
197194
"links": {
198-
"access_token": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/AccessToken",
199195
"timed_metadata": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/TimedMetadata",
200196
"playback_grant": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/PlaybackGrant"
201197
}
@@ -236,7 +232,6 @@ def test_read_items_page_larger_than_max_response(self):
236232
"ended_reason": "ended-via-api",
237233
"url": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe",
238234
"links": {
239-
"access_token": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/AccessToken",
240235
"timed_metadata": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/TimedMetadata",
241236
"playback_grant": "https://media.twilio.com/v1/PlayerStreamers/VJcafebabecafebabecafebabecafebabe/PlaybackGrant"
242237
}

tests/integration/messaging/v1/test_brand_registration.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,3 +176,51 @@ def test_create_response(self):
176176
actual = self.client.messaging.v1.brand_registrations.create(customer_profile_bundle_sid="BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", a2p_profile_bundle_sid="BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
177177

178178
self.assertIsNotNone(actual)
179+
180+
def test_update_request(self):
181+
self.holodeck.mock(Response(500, ''))
182+
183+
with self.assertRaises(TwilioException):
184+
self.client.messaging.v1.brand_registrations("BNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").update()
185+
186+
self.holodeck.assert_has_request(Request(
187+
'post',
188+
'https://messaging.twilio.com/v1/a2p/BrandRegistrations/BNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
189+
))
190+
191+
def test_update_response(self):
192+
self.holodeck.mock(Response(
193+
200,
194+
'''
195+
{
196+
"sid": "BNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
197+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
198+
"customer_profile_bundle_sid": "BU3344409f7e067e279523808d267e2d85",
199+
"a2p_profile_bundle_sid": "BU3344409f7e067e279523808d267e2d85",
200+
"date_created": "2021-01-27T14:18:35Z",
201+
"date_updated": "2021-01-27T14:18:36Z",
202+
"brand_type": "STANDARD",
203+
"status": "PENDING",
204+
"tcr_id": "BXXXXXX",
205+
"failure_reason": "Registration error",
206+
"url": "https://messaging.twilio.com/v1/a2p/BrandRegistrations/BNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
207+
"brand_score": 42,
208+
"brand_feedback": [
209+
"TAX_ID",
210+
"NONPROFIT"
211+
],
212+
"identity_status": "VERIFIED",
213+
"russell_3000": false,
214+
"tax_exempt_status": "501c3",
215+
"skip_automatic_sec_vet": false,
216+
"mock": false,
217+
"links": {
218+
"brand_vettings": "https://messaging.twilio.com/v1/a2p/BrandRegistrations/BNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Vettings"
219+
}
220+
}
221+
'''
222+
))
223+
224+
actual = self.client.messaging.v1.brand_registrations("BNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").update()
225+
226+
self.assertIsNotNone(actual)

tests/integration/numbers/v2/regulatory_compliance/bundle/test_bundle_copy.py

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,79 @@ def test_create_response(self):
5151
.bundle_copies.create()
5252

5353
self.assertIsNotNone(actual)
54+
55+
def test_list_request(self):
56+
self.holodeck.mock(Response(500, ''))
57+
58+
with self.assertRaises(TwilioException):
59+
self.client.numbers.v2.regulatory_compliance \
60+
.bundles("BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
61+
.bundle_copies.list()
62+
63+
self.holodeck.assert_has_request(Request(
64+
'get',
65+
'https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Copies',
66+
))
67+
68+
def test_read_empty_response(self):
69+
self.holodeck.mock(Response(
70+
200,
71+
'''
72+
{
73+
"results": [],
74+
"meta": {
75+
"page": 0,
76+
"page_size": 50,
77+
"first_page_url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Copies?PageSize=50&Page=0",
78+
"previous_page_url": null,
79+
"url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Copies?PageSize=50&Page=0",
80+
"next_page_url": null,
81+
"key": "results"
82+
}
83+
}
84+
'''
85+
))
86+
87+
actual = self.client.numbers.v2.regulatory_compliance \
88+
.bundles("BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
89+
.bundle_copies.list()
90+
91+
self.assertIsNotNone(actual)
92+
93+
def test_read_full_response(self):
94+
self.holodeck.mock(Response(
95+
200,
96+
'''
97+
{
98+
"results": [
99+
{
100+
"sid": "BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
101+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
102+
"regulation_sid": "RNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
103+
"friendly_name": "friendly_name",
104+
"status": "twilio-approved",
105+
"email": "email",
106+
"status_callback": "http://www.example.com",
107+
"valid_until": "2020-07-31T01:00:00Z",
108+
"date_created": "2019-07-30T22:29:24Z",
109+
"date_updated": "2019-07-31T01:09:00Z"
110+
}
111+
],
112+
"meta": {
113+
"page": 0,
114+
"page_size": 50,
115+
"first_page_url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Copies?PageSize=50&Page=0",
116+
"previous_page_url": null,
117+
"url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Copies?PageSize=50&Page=0",
118+
"next_page_url": null,
119+
"key": "results"
120+
}
121+
}
122+
'''
123+
))
124+
125+
actual = self.client.numbers.v2.regulatory_compliance \
126+
.bundles("BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
127+
.bundle_copies.list()
128+
129+
self.assertIsNotNone(actual)

tests/integration/numbers/v2/regulatory_compliance/test_bundle.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ def test_create_response(self):
4747
"url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
4848
"links": {
4949
"evaluations": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations",
50-
"item_assignments": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ItemAssignments"
50+
"item_assignments": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ItemAssignments",
51+
"bundle_copies": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Copies"
5152
}
5253
}
5354
'''
@@ -114,7 +115,8 @@ def test_read_full_response(self):
114115
"url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
115116
"links": {
116117
"evaluations": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations",
117-
"item_assignments": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ItemAssignments"
118+
"item_assignments": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ItemAssignments",
119+
"bundle_copies": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Copies"
118120
}
119121
}
120122
],
@@ -166,7 +168,8 @@ def test_fetch_response(self):
166168
"url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
167169
"links": {
168170
"evaluations": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations",
169-
"item_assignments": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ItemAssignments"
171+
"item_assignments": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ItemAssignments",
172+
"bundle_copies": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Copies"
170173
}
171174
}
172175
'''
@@ -207,7 +210,8 @@ def test_update_response(self):
207210
"url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
208211
"links": {
209212
"evaluations": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations",
210-
"item_assignments": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ItemAssignments"
213+
"item_assignments": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ItemAssignments",
214+
"bundle_copies": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Copies"
211215
}
212216
}
213217
'''

0 commit comments

Comments
 (0)