|
1 | 1 | # -*- coding: utf-8 -*-
|
2 | 2 | import unittest
|
| 3 | +import os |
| 4 | +from collections import OrderedDict |
3 | 5 |
|
4 | 6 | from mock import patch, Mock
|
5 | 7 | from requests import Session
|
@@ -137,17 +139,37 @@ def test_last_response_empty_on_error(self):
|
137 | 139 | self.assertIsNone(self.client.last_response)
|
138 | 140 |
|
139 | 141 | def test_request_behind_proxy(self):
|
140 |
| - proxies = { |
141 |
| - 'http': 'http://proxy.twilio.com', |
142 |
| - 'https': 'https://proxy.twilio.com', |
143 |
| - } |
| 142 | + self.request_mock.url = 'https://api.twilio.com/' |
| 143 | + proxies = OrderedDict([ |
| 144 | + ('http', 'http://proxy.twilio.com'), |
| 145 | + ('https', 'https://proxy.twilio.com'), |
| 146 | + ]) |
144 | 147 | self.client = TwilioHttpClient(proxy=proxies)
|
145 | 148 | self.client.request('doesnt matter', 'doesnt matter')
|
146 |
| - self.assertEqual(proxies, self.session_mock.proxies) |
| 149 | + self.session_mock.send.assert_called_once_with( |
| 150 | + self.request_mock, verify=True, proxies=proxies, stream=False, |
| 151 | + cert=None, allow_redirects=False, timeout=None |
| 152 | + ) |
| 153 | + |
| 154 | + @patch.dict(os.environ, { |
| 155 | + "HTTP_PROXY": "http://proxy.twilio.com", |
| 156 | + "HTTPS_PROXY": "https://proxy.twilio.com" |
| 157 | + }) |
| 158 | + def test_request_behind_proxy_from_environment(self): |
| 159 | + self.request_mock.url = 'https://api.twilio.com/' |
| 160 | + self.client = TwilioHttpClient() |
| 161 | + self.client.request('doesnt matter', 'doesnt matter') |
| 162 | + self.session_mock.send.assert_called_once_with( |
| 163 | + self.request_mock, verify=True, proxies=OrderedDict([ |
| 164 | + ('http', 'http://proxy.twilio.com'), |
| 165 | + ('https', 'https://proxy.twilio.com'), |
| 166 | + ]), stream=False, cert=None, allow_redirects=False, timeout=None |
| 167 | + ) |
147 | 168 |
|
148 | 169 | def test_exception_with_details(self):
|
| 170 | + self.request_mock.url = 'https://api.twilio.com/' |
149 | 171 | v1 = MyVersion(self.client)
|
150 |
| - error_text = """{ |
| 172 | + error_text = """{ |
151 | 173 | "code": 20001,
|
152 | 174 | "message": "Bad request",
|
153 | 175 | "more_info": "https://www.twilio.com/docs/errors/20001",
|
@@ -179,7 +201,7 @@ def tearDown(self):
|
179 | 201 |
|
180 | 202 | def _setup_session_response(self, value):
|
181 | 203 | session_mock = Mock(wraps=Session())
|
182 |
| - request_mock = Mock() |
| 204 | + request_mock = Mock(url='https://api.twilio.com/') |
183 | 205 |
|
184 | 206 | session_mock.prepare_request.return_value = request_mock
|
185 | 207 | session_mock.send.return_value = Response(200, value)
|
|
0 commit comments