@@ -49,41 +49,41 @@ def try_to_fit_in_scenario(candidate: Scenario, tracestate: TraceState):
4949 """
5050 model = tracestate .model if tracestate .model else ModelSpace ()
5151 model .new_scenario_scope ()
52- inserted , remainder , new_model , extra_data = process_scenario (candidate , model )
52+ inserted , remainder , extra_data = process_scenario (candidate , model )
5353 if not inserted : # insertion failed
5454 tracestate .reject_scenario (candidate .src_id )
5555 logger .debug (extra_data ['fail_msg' ])
5656 elif not remainder : # the scenario processed in full
57- new_model .end_scenario_scope ()
58- tracestate .confirm_full_scenario (inserted .src_id , inserted , new_model )
57+ model .end_scenario_scope ()
58+ tracestate .confirm_full_scenario (inserted .src_id , inserted , model )
5959 logger .debug (f"Inserted scenario { inserted .src_id } , { inserted .name } " )
6060 if tracestate .is_refinement_active ():
6161 handle_refinement_exit (inserted , tracestate )
6262 else : # the scenario is split into two parts, ready for refinement
6363 logger .debug (f"Partially inserted scenario { inserted .src_id } , { inserted .name } \n "
6464 f"Refinement needed at step: { remainder .steps [1 ]} " )
6565 inserted .name = f"{ inserted .name } (part { tracestate .highest_part (inserted .src_id )+ 1 } )"
66- tracestate .push_partial_scenario (inserted .src_id , inserted , new_model , remainder )
66+ tracestate .push_partial_scenario (inserted .src_id , inserted , model , remainder )
6767
6868
69- def process_scenario (scenario : Scenario , model : ModelSpace ) -> tuple [Scenario , Scenario , ModelSpace , dict [str , Any ]]:
69+ def process_scenario (scenario : Scenario , model : ModelSpace ) -> tuple [Scenario , Scenario , dict [str , Any ]]:
7070 for step in scenario .steps :
7171 if 'error' in step .model_info :
72- return None , None , model , dict (fail_masg = f"Error in scenario { scenario .name } "
73- f"at step { step } : { step .model_info ['error' ]} " )
72+ return None , None , dict (fail_masg = f"Error in scenario { scenario .name } "
73+ f"at step { step } : { step .model_info ['error' ]} " )
7474 for expr in _relevant_expressions (step ):
7575 try :
7676 if model .process_expression (expr , step .args ) is False :
7777 if step .gherkin_kw in ['when' , None ] and expr in step .model_info ['OUT' ]:
7878 part1 , part2 = split_for_refinement (scenario , step )
79- return part1 , part2 , model , dict ()
79+ return part1 , part2 , dict ()
8080 else :
81- return None , None , model , dict (fail_msg = f"Unable to insert scenario { scenario .src_id } , "
82- f"{ scenario .name } , due to step '{ step } ': [{ expr } ] is False" )
81+ return None , None , dict (fail_msg = f"Unable to insert scenario { scenario .src_id } , "
82+ f"{ scenario .name } , due to step '{ step } ': [{ expr } ] is False" )
8383 except Exception as err :
84- return None , None , model , dict (fail_msg = f"Unable to insert scenario { scenario .src_id } , "
85- f"{ scenario .name } , due to step '{ step } ': [{ expr } ] { err } " )
86- return scenario .copy (), None , model , dict ()
84+ return None , None , dict (fail_msg = f"Unable to insert scenario { scenario .src_id } , "
85+ f"{ scenario .name } , due to step '{ step } ': [{ expr } ] { err } " )
86+ return scenario .copy (), None , dict ()
8787
8888
8989def _relevant_expressions (step : Step ) -> list [str ]:
@@ -140,25 +140,26 @@ def handle_refinement_exit(inserted_refinement: Scenario, tracestate: TraceState
140140 f"did not meet refinement exit condition: { exit_conditions } " )
141141 return
142142
143- tail_inserted , remainder , new_model , extra_data = process_scenario (refinement_tail , tracestate .model )
143+ model = tracestate .model
144+ tail_inserted , remainder , extra_data = process_scenario (refinement_tail , model )
144145 if not tail_inserted :
145146 logger .debug (extra_data ['fail_msg' ])
146147 # Confirm then rewind, to roll back complete scenario, including its refiements
147148 # Because that exit check passed, this is an error in the refined scenario itself
148- tracestate .confirm_full_scenario (refinement_tail .src_id , refinement_tail , new_model )
149+ tracestate .confirm_full_scenario (refinement_tail .src_id , refinement_tail , model )
149150 tail = rewind (tracestate )
150151 logger .debug (f"Having to roll back up to { tail .scenario .name if tail else 'the beginning' } " )
151152 elif not remainder :
152- new_model .end_scenario_scope ()
153- tracestate .confirm_full_scenario (tail_inserted .src_id , tail_inserted , new_model )
153+ model .end_scenario_scope ()
154+ tracestate .confirm_full_scenario (tail_inserted .src_id , tail_inserted , model )
154155 logger .debug (f"Scenario '{ tail_inserted .name } ' completed after refinement" )
155156 if tracestate .is_refinement_active ():
156157 handle_refinement_exit (tail_inserted , tracestate )
157158 else :
158159 logger .debug (f"Partially inserted remainder of scenario { tail_inserted .src_id } , { tail_inserted .name } \n "
159160 f"refinement needed at step: { remainder .steps [1 ]} " )
160161 tail_inserted .name = f"{ tail_inserted .name } (part { tracestate .highest_part (tail_inserted .src_id )+ 1 } )"
161- tracestate .push_partial_scenario (tail_inserted .src_id , tail_inserted , new_model , remainder )
162+ tracestate .push_partial_scenario (tail_inserted .src_id , tail_inserted , model , remainder )
162163
163164
164165def generate_scenario_variant (scenario : Scenario , model : ModelSpace ) -> Scenario :
0 commit comments