8000 Add method to validate ssl certificate (#421) · bradddd/twilio-python@de2c2c8 · GitHub
[go: up one dir, main page]

Skip to content

Commit de2c2c8

Browse files
author
Yannie Yip
authored
Add method to validate ssl certificate (twilio#421)
* Add method to validate ssl certificate * Remove extra import from test * Use snake case * Address review comment
1 parent 47b66ad commit de2c2c8

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

tests/unit/http/test_validation_client.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from requests import Request
88
from requests import Session
99

10+
from twilio.base.exceptions import TwilioRestException
1011
from twilio.http.validation_client import ValidationClient
1112
from twilio.http.response import Response
1213

@@ -119,3 +120,15 @@ def test_request_with_unicode_response(self):
119120
self.assertEqual('test-token', self.request_mock.headers['Twilio-Client-Validation'])
120121
self.assertEqual(200, response.status_code)
121122
self.assertEqual('test, omega: Ω, pile of poop: 💩', response.content)
123+
124+
@patch('twilio.http.validation_client')
125+
def test_validate_ssl_certificate_success(self, http_client):
126+
http_client.request.return_value = Response(200, 'success')
127+
self.client.validate_ssl_certificate(http_client)
128+
129+
@patch('twilio.http.validation_client')
130+
def test_validate_ssl_certificate_error(self, http_client):
131+
http_client.request.return_value = Response(504, 'error')
132+
133+
with self.assertRaises(TwilioRestException):
134+
self.client.validate_ssl_certificate(http_client)

twilio/http/validation_client.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from requests import Request, Session
44

5+
from twilio.base.exceptions import TwilioRestException
56
from twilio.compat import urlparse
67
from twilio.http import HttpClient
78
from twilio.http.response import Response
@@ -93,3 +94,13 @@ def _get_host(self, request):
9394
"""Pull the Host out of the request"""
9495
parsed = urlparse(request.url)
9596
return parsed.netloc
97+
98+
def validate_ssl_certificate(self, client):
99+
"""
100+
Validate that a request to the new SSL certificate is successful
101+
:return: null on success, raise TwilioRestException if the request fails
102+
"""
103+
response = client.request('GET', 'https://api.twilio.com:8443')
104+
105+
if response.status_code < 200 or response.status_code >= 300:
106+
raise TwilioRestException(response.status_code, 'https://api.twilio.com:8443', 'Failed to validate SSL certificate')

0 commit comments

Comments
 (0)
0