|
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