Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ad16755

Browse filesBrowse files
author
Alex Schworer
committed
Add support for setting timeouts, SSL certs verification and HTTPS proxies
1 parent d177224 commit ad16755
Copy full SHA for ad16755

File tree

2 files changed

+62
-12
lines changed
Filter options

2 files changed

+62
-12
lines changed

‎test/test_zencoder.py

Copy file name to clipboardExpand all lines: test/test_zencoder.py
+21Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,27 @@ def test_set_api_edge_version(self):
3434
zc = Zencoder(api_version='edge')
3535
self.assertEquals(zc.base_url, 'https://app.zencoder.com/api/')
3636

37+
def test_set_timeout(self):
38+
api_key = 'testapikey'
39+
zc = Zencoder(api_key=api_key, timeout=999)
40+
41+
self.assertEquals(zc.job.requests_params['timeout'], 999)
42+
43+
def test_set_proxies(self):
44+
api_key = 'testapikey'
45+
proxies = {
46+
'https': 'https://10.10.1.10:1080'
47+
}
48+
zc = Zencoder(api_key=api_key, proxies=proxies)
49+
50+
self.assertEquals(zc.job.requests_params['proxies'], proxies)
51+
52+
def test_set_verify_false(self):
53+
api_key = 'testapikey'
54+
zc = Zencoder(api_key=api_key, verify=False)
55+
56+
self.assertEquals(zc.job.requests_params['verify'], False)
57+
3758
if __name__ == "__main__":
3859
unittest.main()
3960

‎zencoder/core.py

Copy file name to clipboardExpand all lines: zencoder/core.py
+41-12Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ def __init__(self,
3939
test=False,
4040
version=None,
4141
proxies=None,
42-
cert=None,
43-
http_timeout=None):
42+
verify=True):
4443

4544
self.base_url = base_url
4645

@@ -49,10 +48,13 @@ def __init__(self,
4948

5049
self.http = requests.Session()
5150

52-
# set requests additional settings. `None` is default for all of these settings
53-
self.http.timeout = http_timeout
54-
self.http.proxies = proxies
55-
self.http.cert = cert
51+
# set requests additional settings.
52+
# `None` is default for all of these settings.
53+
self.requests_params = {
54+
'timeout': timeout,
55+
'proxies': proxies,
56+
'verify': verify
57+
}
5658

5759
self.api_key = api_key
5860
self.test = test
@@ -80,26 +82,38 @@ def delete(self, url, params=None):
8082
8183
``params`` should be a dictionary
8284
"""
83-
response = self.http.delete(url, params=params)
85+
response = self.http.delete(url,
86+
params=params,
87+
**self.requests_params)
8488
return self.process(response)
8589

8690
def get(self, url, data=None):
8791
""" Executes an HTTP GET request for the given URL.
8892
8993
``data`` should be a dictionary of url parameters
9094
"""
91-
response = self.http.get(url, headers=self.headers, params=data)
95+
response = self.http.get(url,
96+
headers=self.headers,
97+
params=data,
98+
**self.requests_params)
9299
return self.process(response)
93100

94101
def post(self, url, body=None):
95102
""" Executes an HTTP POST request for the given URL. """
96-
response = self.http.post(url, data=body, headers=self.headers)
103+
response = self.http.post(url,
104+
headers=self.headers,
105+
data=body,
106+
**self.requests_params)
97107

98108
return self.process(response)
99109

100110
def put(self, url, data=None, body=None):
101111
""" Executes an HTTP PUT request for the given URL. """
102-
response = self.http.put(url, params=data, data=body, headers=self.headers)
112+
response = self.http.put(url,
113+
headers=self.headers,
114+
data=body,
115+
params=data,
116+
**self.requests_params)
103117

104118
return self.process(response)
105119

@@ -135,8 +149,17 @@ class Zencoder(object):
135149
136150
Set ``api_version='edge'`` to get the Zencoder development API.
137151
(defaults to 'v2')
152+
153+
``timeout``, ``proxies`` and ``verify`` can be set to control the
154+
underlying HTTP requests that are made.
138155
"""
139-
def __init__(self, api_key=None, api_version=None, timeout=None, test=False):
156+
def __init__(self,
157+
api_key=None,
158+
api_version=None,
159+
timeout=None,
160+
test=False,
161+
proxies=None,
162+
verify=True):
140163
if not api_version:
141164
api_version = 'v2'
142165

@@ -155,7 +178,13 @@ def __init__(self, api_key=None, api_version=None, timeout=None, test=False):
155178
self.test = test
156179

157180
args = (self.base_url, self.api_key)
158-
kwargs = dict(timeout=timeout, test=self.test, version=api_version)
181+
182+
kwargs = dict(timeout=timeout,
183+
test=self.test,
184+
version=api_version,
185+
proxies=proxies,
186+
verify=verify)
187+
159188
self.job = Job(*args, **kwargs)
160189
self.account = Account(*args, **kwargs)
161190
self.output = Output(*args, **kwargs)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.