@@ -289,36 +289,46 @@ def enqueue(item: Union[running.TestSuite, running.TestCase]) -> Iterator[str]:
289
289
290
290
self ._event_sended = True
291
291
292
- def end_suite (self , data : running .TestSuite , suite_result : result .TestSuite ) -> None :
293
- def report_status (item : Union [result .TestSuite , result .TestCase ], message : str ) -> None :
294
- if isinstance (item , result .TestCase ):
292
+ def end_suite (self , suite_data : running .TestSuite , suite_result : result .TestSuite ) -> None :
293
+ def report_status (
294
+ data_item : Union [running .TestSuite , running .TestCase , None ],
295
+ result_item : Union [result .TestSuite , result .TestCase ],
296
+ message : str ,
297
+ ) -> None :
298
+ if isinstance (result_item , result .TestCase ):
295
299
Debugger .instance ().send_event (
296
300
self ,
297
301
Event (
298
302
event = "robotSetFailed" ,
299
303
body = RobotExecutionEventBody (
300
304
type = "test" ,
301
305
attributes = {
302
- "longname" : item .longname ,
303
- "status" : str (item .status ),
304
- "elapsedtime" : item .elapsedtime ,
305
- "source" : str (item .source ),
306
- "lineno" : item .lineno ,
307
- "message" : item .message ,
306
+ "longname" : result_item .longname ,
307
+ "status" : str (result_item .status ),
308
+ "elapsedtime" : result_item .elapsedtime ,
309
+ "source" : str (result_item .source ),
310
+ "lineno" : data_item .lineno if data_item is not None else 0 ,
311
+ "message" : result_item .message ,
308
312
},
309
- id = f"{ item .source or '' } ;{ item .longname or '' } "
310
- + (f";{ item .lineno or 0 } " if isinstance (item , result .TestCase ) else "" ),
313
+ id = f"{ result_item .source or '' } ;{ result_item .longname or '' } "
314
+ + (
315
+ f";{ data_item .lineno if data_item is not None else 0 } "
316
+ if isinstance (result_item , result .TestCase )
317
+ else ""
318
+ ),
311
319
),
312
320
),
313
321
)
314
- if isinstance (item , result .TestSuite ):
315
- for r in item .suites :
316
- report_status (r , message )
317
- for r in item .tests :
318
- report_status (r , message )
319
-
320
- if data .teardown and suite_result .teardown .status in ["FAIL" , "SKIP" ]:
321
- report_status (suite_result , message = suite_result .message )
322
+ if isinstance (result_item , result .TestSuite ):
323
+ for r in result_item .suites :
324
+ p = next ((i for i in data_item .suites if i .id == r .id ), None ) if data_item else None
325
+ report_status (p , r , message )
326
+ for r in result_item .tests :
327
+ p = next ((i for i in data_item .tests if i .id == r .id ), None ) if data_item else None
328
+ report_status (p , r , message )
329
+
330
+ if suite_data .teardown and suite_result .teardown .status in ["FAIL" , "SKIP" ]:
331
+ report_status (suite_data , suite_result , message = suite_result .message )
322
332
323
333
def start_test (self , data : running .TestCase , result : result .TestCase ) -> None :
324
334
pass
0 commit comments