8000 Support all proxy types and the other args for good measure · arunssvm/twilio-python@a6319d1 · GitHub
[go: up one dir, main page]

Skip to content

Commit a6319d1

Browse files
committed
Support all proxy types and the other args for good measure
1 parent 96cbc8f commit a6319d1

File tree

3 files changed

+37
-6
lines changed

3 files changed

+37
-6
lines changed

tests/test_make_request.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from twilio import TwilioRestException
1010
from twilio.rest.resources.base import make_request, make_twilio_request
1111
from twilio.rest.resources.connection import Connection
12+
from twilio.rest.resources.connection import PROXY_TYPE_SOCKS5
1213

1314
get_headers = {
1415
"User-Agent": "twilio-python/%s" % (twilio.__version__),
@@ -99,11 +100,16 @@ def test_proxy_info(http_mock, resp_mock):
99100
http = Mock()
100101
http.request.return_value = (Mock(), Mock())
101102
http_mock.return_value = http
102-
Connection.set_proxy_info('http://example.com/proxy', '8080')
103+
Connection.set_proxy_info(
104+
'example.com',
105+
8080,
106+
proxy_type=PROXY_TYPE_SOCKS5,
107+
)
103108
make_request("GET", "http://httpbin.org/get")
104109
http_mock.assert_called_with(timeout=None, ca_certs=ANY, proxy_info=ANY)
105110
http.request.assert_called_with("http://httpbin.org/get", "GET",
106111
body=None, headers=None)
107112
proxy_info = http_mock.call_args[1]['proxy_info']
108-
assert_equal(proxy_info.proxy_host, 'http://example.com/proxy')
109-
assert_equal(proxy_info.proxy_port, '8080')
113+
assert_equal(proxy_info.proxy_host, 'example.com')
114+
assert_equal(proxy_info.proxy_port, 8080)
115+
assert_equal(proxy_info.proxy_type, PROXY_TYPE_SOCKS5)

twilio/rest/resources/connection.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
from twilio.rest.resources.imports import httplib2
22
from twilio.rest.resources.imports import socks
3+
from twilio.rest.resources.imports import PROXY_TYPE_HTTP
4+
from twilio.rest.resources.imports import PROXY_TYPE_HTTP_NO_TUNNEL
5+
from twilio.rest.resources.imports import PROXY_TYPE_SOCKS4
6+
from twilio.rest.resources.imports import PROXY_TYPE_SOCKS5
37

48

59
class Connection(object):
@@ -10,9 +14,22 @@ def proxy_info(cls):
1014
return cls._proxy_info
1115

1216
@classmethod
13-
def set_proxy_info(cls, proxy_url, proxy_port):
17+
def set_proxy_info(cls, proxy_host, proxy_port,
18+
proxy_type=PROXY_TYPE_HTTP, proxy_rdns=None,
19+
proxy_user=None, proxy_pass=None):
1420
cls._proxy_info = httplib2.ProxyInfo(
15-
socks.PROXY_TYPE_HTTP,
16-
proxy_url,
21+
proxy_type,
22+
proxy_host,
1723
proxy_port,
24+
proxy_rdns=proxy_rdns,
25+
proxy_user=proxy_user,
26+
proxy_pass=proxy_pass,
1827
)
28+
29+
30+
_hush_pyflakes = [
31+
socks,
32+
PROXY_TYPE_HTTP_NO_TUNNEL,
33+
PROXY_TYPE_SOCKS4,
34+
PROXY_TYPE_SOCKS5
35+
]

twilio/rest/resources/imports.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,13 @@
1919
# socks
2020
try:
2121
from httplib2 import socks
22+
from httplib2.socks import PROXY_TYPE_HTTP
23+
from httplib2.socks import PROXY_TYPE_HTTP_NO_TUNNEL
24+
from httplib2.socks import PROXY_TYPE_SOCKS4
25+
from httplib2.socks import PROXY_TYPE_SOCKS5
2226
except ImportError:
2327
import socks
28+
from socks import PROXY_TYPE_HTTP
29+
from socks import PROXY_TYPE_HTTP_NO_TUNNEL
30+
from socks import PROXY_TYPE_SOCKS4
31+
from socks import PROXY_TYPE_SOCKS5

0 commit comments

Comments
 (0)
0