@@ -105,9 +105,9 @@ def process_scan(
105105 parser = self .get_parser ()
106106 # Get the findings from the parser based on what methods the parser supplies
107107 # This could either mean traditional file parsing, or API pull parsing
108- self . parsed_findings = self .parse_findings (scan , parser )
108+ parsed_findings = self .parse_findings (scan , parser )
109109 # process the findings in the foreground or background
110- new_findings = self .determine_process_method (self . parsed_findings , ** kwargs )
110+ new_findings = self .determine_process_method (parsed_findings , ** kwargs )
111111 # Close any old findings in the processed list if the the user specified for that
112112 # to occur in the form that is then passed to the kwargs
113113 closed_findings = self .close_old_findings (self .test .finding_set .all (), ** kwargs )
@@ -329,13 +329,10 @@ def parse_findings(
329329 `get_tests` function on the parser object
330330 """
331331 # Attempt any preprocessing before generating findings
332- if len (self .parsed_findings ) == 0 and self .test is None :
333- scan = self .process_scan_file (scan )
334- if hasattr (parser , "get_tests" ):
335- self .parsed_findings = self .parse_findings_dynamic_test_type (scan , parser )
336- else :
337- self .parsed_findings = self .parse_findings_static_test_type (scan , parser )
338- return self .parsed_findings
332+ scan = self .process_scan_file (scan )
333+ if hasattr (parser , "get_tests" ):
334+ return self .parse_findings_dynamic_test_type (scan , parser )
335+ return self .parse_findings_static_test_type (scan , parser )
339336
340337 def parse_findings_static_test_type (
341338 self ,
@@ -348,7 +345,9 @@ def parse_findings_static_test_type(
348345 file import as usual from the base class
349346 """
350347 # by default test_type == scan_type
351- self .test = self .create_test (self .scan_type )
348+ # Create a new test if it has not already been created
349+ if not self .test :
350+ self .test = self .create_test (self .scan_type )
352351 logger .debug ("IMPORT_SCAN: Parse findings" )
353352 # Use the parent method for the rest of this
354353 return super ().parse_findings_static_test_type (scan , parser )
@@ -384,8 +383,9 @@ def parse_findings_dynamic_test_type(
384383 test_type_name = f"{ tests [0 ].type } Scan"
385384 if test_type_name != self .scan_type :
386385 test_type_name = f"{ test_type_name } ({ self .scan_type } )"
387- # Create a new test
388- self .test = self .create_test (test_type_name )
386+ # Create a new test if it has not already been created
387+ if not self .test :
388+ self .test = self .create_test (test_type_name )
389389 # This part change the name of the Test
390390 # we get it from the data of the parser
391391 test_raw = tests [0 ]
0 commit comments