3939def parse_func (file_path : Path ) -> XMLParser :
4040 """Parse the XML file with lxml.etree.XMLParser as the backend."""
4141 xml_parser = XMLParser (huge_tree = True )
42- return parse (file_path , xml_parser ) # type: ignore # noqa: PGH003, S320
42+ return parse (file_path , xml_parser )
4343
4444
4545def parse_test_return_values_bin (file_location : Path , test_files : TestFiles , test_config : TestConfig ) -> TestResults :
@@ -259,10 +259,6 @@ def parse_test_xml(
259259 message = testcase .result [0 ].message .lower ()
260260 if "timed out" in message :
261261 timed_out = True
262-
263- stdout = run_result .stdout if run_result and run_result .stdout else None
264- stderr = run_result .stderr if run_result and run_result .stderr else None
265-
266262 matches = re .findall (r"!######(.*?):(.*?)([^\.:]*?):(.*?):(.*?):(.*?)######!" , testcase .system_out or "" )
267263 if not matches or not len (matches ):
268264 test_results .add (
@@ -282,10 +278,9 @@ def parse_test_xml(
282278 test_type = test_type ,
283279 return_value = None ,
284280 timed_out = timed_out ,
285- stdout = stdout ,
286- stderr = stderr ,
287281 )
288282 )
283+
289284 else :
290285 for match in matches :
291286 split_val = match [5 ].split (":" )
@@ -311,17 +306,21 @@ def parse_test_xml(
311306 test_type = test_type ,
312307 return_value = None ,
313308 timed_out = timed_out ,
314- stdout = stdout ,
315- stderr = stderr ,
316309 )
317310 )
318311
319312 if not test_results :
320313 logger .info (
321314 f"Tests '{ [test_file .original_file_path for test_file in test_files .test_files ]} ' failed to run, skipping"
322315 )
323- stdout , stderr = run_result .stdout , run_result .stderr
324- logger .debug (f"Test log - STDOUT : { stdout } \n STDERR : { stderr } " )
316+ if run_result is not None :
317+ stdout , stderr = "" , ""
318+ try :
319+ stdout = run_result .stdout .decode ()
320+ stderr = run_result .stderr .decode ()
321+ except AttributeError :
322+ stdout = run_result .stderr
323+ logger .debug (f"Test log - STDOUT : { stdout } \n STDERR : { stderr } " )
325324 return test_results
326325
327326
@@ -336,11 +335,7 @@ def merge_test_results(
336335 # This is done to match the right iteration_id which might not be available in the xml
337336 for result in xml_test_results :
338337 if test_framework == "pytest" :
339- if (
340- result .id .test_function_name
341- and result .id .test_function_name .endswith ("]" )
342- and "[" in result .id .test_function_name
343- ): # parameterized test
338+ if result .id .test_function_name .endswith ("]" ) and "[" in result .id .test_function_name : # parameterized test
344339 test_function_name = result .id .test_function_name [: result .id .test_function_name .index ("[" )]
345340 else :
346341 test_function_name = result .id .test_function_name
0 commit comments