@@ -51,12 +51,14 @@ class RobotService:
51
51
agent_name : str
52
52
agent_version : str
53
53
rp : Optional [RP ]
54
+ debug : bool
54
55
55
56
def __init__ (self ) -> None :
56
57
"""Initialize service attributes."""
57
58
self .agent_name = "robotframework-reportportal"
58
59
self .agent_version = get_package_version (self .agent_name )
59
60
self .rp = None
61
+ self .debug = False
60
62
61
63
def _get_launch_attributes (self , cmd_attrs : list ) -> list :
62
64
"""Generate launch attributes including both system and user ones.
@@ -74,6 +76,7 @@ def init_service(self, variables: Variables) -> None:
74
76
:param variables: ReportPortal variables
75
77
"""
76
78
if self .rp is None :
79
+ self .debug = variables .debug_mode
77
80
logger .debug (
78
81
f"ReportPortal - Init service: endpoint={ variables .endpoint } , "
79
82
f"project={ variables .project } , api_key={ variables .api_key } "
@@ -129,7 +132,13 @@ def start_launch(
129
132
"start_time" : ts or to_epoch (launch .start_time ) or timestamp (),
130
133
}
131
134
logger .debug ("ReportPortal - Start launch: request_body={0}" .format (sl_pt ))
132
- return self .rp .start_launch (** sl_pt )
135
+ try :
136
+ return self .rp .start_launch (** sl_pt )
137
+ except Exception as e :
138
+ if self .debug :
139
+ logger .error (f"Unable to start launch: { e } " )
140
+ logger .exception (e )
141
+ raise e
133
142
134
143
def finish_launch (self , launch : Launch , ts : Optional [str ] = None ) -> None :
135
144
"""Finish started launch.
@@ -139,7 +148,13 @@ def finish_launch(self, launch: Launch, ts: Optional[str] = None) -> None:
139
148
"""
140
149
fl_rq = {"end_time" : ts or to_epoch (launch .end_time ) or timestamp (), "status" : STATUS_MAPPING [launch .status ]}
141
150
logger .debug ("ReportPortal - Finish launch: request_body={0}" .format (fl_rq ))
142
- self .rp .finish_launch (** fl_rq )
151
+ try :
152
+ self .rp .finish_launch (** fl_rq )
153
+ except Exception as e :
154
+ if self .debug :
155
+ logger .error (f"Unable to finish launch: { e } " )
156
+ logger .exception (e )
157
+ raise e
143
158
144
159
def start_suite (self , suite : Suite , ts : Optional [str ] = None ) -> Optional [str ]:
145
160
"""Call start_test method of the common client.
@@ -157,7 +172,13 @@ def start_suite(self, suite: Suite, ts: Optional[str] = None) -> Optional[str]:
157
172
"start_time" : ts or to_epoch (suite .start_time ) or timestamp (),
158
173
}
159
174
logger .debug ("ReportPortal - Start suite: request_body={0}" .format (start_rq ))
160
- return self .rp .start_test_item (** start_rq )
175
+ try :
176
+ return self .rp .start_test_item (** start_rq )
177
+ except Exception as e :
178
+ if self .debug :
179
+ logger .error (f"Unable to start suite: { e } " )
180
+ logger .exception (e )
181
+ raise e
161
182
162
183
def finish_suite (self , suite : Suite , issue : Optional [str ] = None , ts : Optional [str ] = None ) -> None :
163
184
"""Finish started suite.
@@ -173,7 +194,13 @@ def finish_suite(self, suite: Suite, issue: Optional[str] = None, ts: Optional[s
173
194
"status" : STATUS_MAPPING [suite .status ],
174
195
}
175
196
logger .debug ("ReportPortal - Finish suite: request_body={0}" .format (fta_rq ))
176
- self .rp .finish_test_item (** fta_rq )
197
+ try :
198
+ self .rp .finish_test_item (** fta_rq )
199
+ except Exception as e :
200
+ if self .debug :
201
+ logger .error (f"Unable to finish suite: { e } " )
202
+ logger .exception (e )
203
+ raise e
177
204
178
205
def start_test (self , test : Test , ts : Optional [str ] = None ):
179
206
"""Call start_test method of the common client.
@@ -195,7 +222,13 @@ def start_test(self, test: Test, ts: Optional[str] = None):
195
222
"test_case_id" : test .test_case_id ,
196
223
}
197
224
logger .debug ("ReportPortal - Start test: request_body={0}" .format (start_rq ))
198
- return self .rp .start_test_item (** start_rq )
225
+ try :
226
+ return self .rp .start_test_item (** start_rq )
227
+ except Exception as e :
228
+ if self .debug :
229
+ logger .error (f"Unable to start test: { e } " )
230
+ logger .exception (e )
231
+ raise e
199
232
200
233
def finish_test (self , test : Test , issue : Optional [str ] = None , ts : Optional [str ] = None ):
201
234
"""Finish started test case.
@@ -224,7 +257,13 @@ def finish_test(self, test: Test, issue: Optional[str] = None, ts: Optional[str]
224
257
if description :
225
258
fta_rq ["description" ] = description
226
259
logger .debug ("ReportPortal - Finish test: request_body={0}" .format (fta_rq ))
227
- self .rp .finish_test_item (** fta_rq )
260
+ try :
261
+ self .rp .finish_test_item (** fta_rq )
262
+ except Exception as e :
263
+ if self .debug :
264
+ logger .error (f"Unable to finish test: { e } " )
265
+ logger .exception (e )
266
+ raise e
228
267
229
268
def start_keyword (self , keyword : Keyword , ts : Optional [str ] = None ):
230
269
"""Call start_test method of the common client.
@@ -243,7 +282,13 @@ def start_keyword(self, keyword: Keyword, ts: Optional[str] = None):
243
282
if keyword .rp_item_id :
244
283
start_rq ["uuid" ] = keyword .rp_item_id
245
284
logger .debug ("ReportPortal - Start keyword: request_body={0}" .format (start_rq ))
246
- return self .rp .start_test_item (** start_rq )
285
+ try :
286
+ return self .rp .start_test_item (** start_rq )
287
+ except Exception as e :
288
+ if self .debug :
289
+ logger .error (f"Unable to start keyword: { e } " )
290
+ logger .exception (e )
291
+ raise e
247
292
248
293
def finish_keyword (self , keyword : Keyword , issue : Optional [str ] = None , ts : Optional [str ] = None ):
249
294
"""Finish started keyword item.
@@ -259,7 +304,13 @@ def finish_keyword(self, keyword: Keyword, issue: Optional[str] = None, ts: Opti
259
304
"status" : STATUS_MAPPING [keyword .status ],
260
305
}
261
306
logger .debug ("ReportPortal - Finish keyword: request_body={0}" .format (fta_rq ))
262
- self .rp .finish_test_item (** fta_rq )
307
+ try :
308
+ self .rp .finish_test_item (** fta_rq )
309
+ except Exception as e :
310
+ if self .debug :
311
+ logger .error (f"Unable to finish keyword: { e } " )
312
+ logger .exception (e )
313
+ raise e
263
314
264
315
def log (self , message : LogMessage , ts : Optional [str ] = None ):
265
316
"""Send log message to ReportPortal.
@@ -274,4 +325,10 @@ def log(self, message: LogMessage, ts: Optional[str] = None):
274
325
"message" : message .message ,
275
326
"time" : ts or to_epoch (message .timestamp ) or timestamp (),
276
327
}
277
- self .rp .log (** sl_rq )
328
+ try :
329
+ self .rp .log (** sl_rq )
330
+ except Exception as e :
331
+ if self .debug :
332
+ logger .error (f"Unable to send log message: { e } " )
333
+ logger .exception (e )
334
+ raise e
0 commit comments