@@ -167,6 +167,7 @@ def __init__(self,
167
167
verify_ssl = True ,
168
168
retries = None ,
169
169
max_pool_size = 50 ,
170
+ http_timeout = (10 , 10 ),
170
171
** kwargs ):
171
172
"""Init the service class.
172
173
@@ -181,6 +182,9 @@ def __init__(self,
181
182
verify_ssl: option to not verify ssl certificates
182
183
max_pool_size: option to set the maximum number of
183
184
connections to save in the pool.
185
+ http_timeout: a float in seconds for the connect and read
186
+ timeout. Use a Tuple to specific connect and
187
+ read separately.
184
188
"""
185
189
self ._batch_logs = []
186
190
self .endpoint = endpoint
@@ -190,6 +194,7 @@ def __init__(self,
190
194
self .is_skipped_an_issue = is_skipped_an_issue
191
195
self .base_url_v1 = uri_join (self .endpoint , "api/v1" , self .project )
192
196
self .base_url_v2 = uri_join (self .endpoint , "api/v2" , self .project )
197
+ self .http_timeout = http_timeout
193
198
194
199
self .session = requests .Session ()
195
200
if retries :
@@ -228,7 +233,13 @@ def start_launch(self,
228
233
"rerunOf" : rerunOf
229
234
}
230
235
url = uri_join (self .base_url_v2 , "launch" )
231
- r = self .session .post (url = url , json = data , verify = self .verify_ssl )
236
+ r = self .session .request (
237
+ method = 'POST' ,
238
+ url = url ,
239
+ json = data ,
240
+ verify = self .verify_ssl ,
241
+ timeout = self .http_timeout
242
+ )
232
243
self .launch_id = _get_id (r )
233
244
logger .debug ("start_launch - ID: %s" , self .launch_id )
234
245
return self .launch_id
@@ -270,7 +281,11 @@ def get_launch_info(self, max_retries=5):
270
281
271
282
for _ in range (max_retries ):
272
283
logger .debug ("get_launch_info - ID: %s" , self .launch_id )
273
- resp = self .session .get (url = url , verify = self .verify_ssl )
284
+ resp = self .session .request (
285
+ method = 'GET' ,
286
+ url = url ,
287
+ verify = self .verify_ssl ,
288
+ timeout = self .http_timeout )
274
289
275
290
if resp .status_code == 200 :
276
291
launch_info = _get_json (resp )
@@ -355,7 +370,13 @@ def start_test_item(self,
355
370
url = uri_join (self .base_url_v2 , "item" , parent_item_id )
356
371
else :
357
372
url = uri_join (self .base_url_v2 , "item" )
358
- r = self .session .post (url = url , json = data , verify = self .verify_ssl )
373
+ r = self .session .request (
374
+ method = 'POST' ,
375
+ url = url ,
376
+ json = data ,
377
+ verify = self .verify_ssl ,
378
+ timeout = self .http_timeout
379
+ )
359
380
360
381
item_id = _get_id (r )
361
382
logger .debug ("start_test_item - ID: %s" , item_id )
@@ -423,8 +444,11 @@ def get_item_id_by_uuid(self, uuid):
423
444
:return str: Test item id
424
445
"""
425
446
url = uri_join (self .base_url_v1 , "item" , "uuid" , uuid )
426
- return _get_json (self .session .get (
427
- url = url , verify = self .verify_ssl ))["id" ]
447
+ return _get_json (self .session .request (
448
+ method = 'GET' ,
449
+ url = url ,
450
+ verify = self .verify_ssl ,
451
+ timeout = self .http_timeout ))["id" ]
428
452
429
453
def get_project_settings (self ):
430
454
"""
@@ -433,7 +457,12 @@ def get_project_settings(self):
433
457
:return: json body
434
458
"""
435
459
url = uri_join (self .base_url_v1 , "settings" )
436
- r = self .session .get (url = url , json = {}, verify = self .verify_ssl )
460
+ r = self .session .request (
461
+ method = 'GET' ,
462
+ url = url ,
463
+ json = {},
464
+ verify = self .verify_ssl ,
465
+ timeout = self .http_timeout )
437
466
logger .debug ("settings" )
438
467
return _get_json (r )
439
468
@@ -509,10 +538,12 @@ def _log_batch(self, log_data, force=False):
509
538
files .extend (attachments )
510
539
for i in range (POST_LOGBATCH_RETRY_COUNT ):
511
540
try :
512
- r = self .session .post (
541
+ r = self .session .request (
542
+ method = 'POST' ,
513
543
url = url ,
514
544
files = files ,
515
- verify = self .verify_ssl
545
+ verify = self .verify_ssl ,
546
+ timeout = self .http_timeout
516
547
)
517
548
logger .debug ("log_batch response: %s" , r .text )
518
549
self ._batch_logs = []
0 commit comments