@@ -130,8 +130,8 @@ def run_unittests(args, codeplainAPI, frid, plain_source_tree, linked_resources,
130
130
return existing_files , changed_files
131
131
132
132
133
- def generate_end_to_end_tests (args , codeplainAPI , frid , plain_source_tree , linked_resources , existing_files , e2e_tests_folder_name ):
134
- specifications = plain_spec .get_specifications_for_frid (plain_source_tree , frid )
133
+ def generate_end_to_end_tests (args , codeplainAPI , frid , functional_requirement_id , plain_source_tree , linked_resources , existing_files , e2e_tests_folder_name ):
134
+ specifications = plain_spec .get_specifications_for_frid (plain_source_tree , functional_requirement_id )
135
135
if args .verbose :
136
136
# TODO: Print the definitions.
137
137
print (f"\n Implementing test requirements:" )
@@ -158,7 +158,7 @@ def generate_end_to_end_tests(args, codeplainAPI, frid, plain_source_tree, linke
158
158
159
159
existing_files_content = file_utils .get_existing_files_content (args .build_folder , existing_files )
160
160
161
- response_files = codeplainAPI .render_e2e_tests (frid , plain_source_tree , linked_resources , existing_files_content )
161
+ response_files = codeplainAPI .render_e2e_tests (frid , functional_requirement_id , plain_source_tree , linked_resources , existing_files_content )
162
162
163
163
e2e_tests_files = file_utils .store_response_files (e2e_tests_folder_name , response_files , [])
164
164
@@ -172,6 +172,7 @@ def generate_end_to_end_tests(args, codeplainAPI, frid, plain_source_tree, linke
172
172
173
173
174
174
def run_e2e_tests (args , codeplainAPI , frid , functional_requirement_id , plain_source_tree , linked_resources , existing_files , existing_files_content , code_diff , e2e_tests_folder_name ):
175
+ recreated_e2e_tests = False
175
176
e2e_test_fix_count = 0
176
177
implementation_fix_count = 1
177
178
e2e_tests_files = file_utils .list_all_text_files (e2e_tests_folder_name )
@@ -183,8 +184,24 @@ def run_e2e_tests(args, codeplainAPI, frid, functional_requirement_id, plain_sou
183
184
184
185
e2e_tests_issue = execute_test_script (args .e2e_tests_script , [args .build_folder , e2e_tests_folder_name ], args .verbose )
185
186
186
- if not e2e_tests_issue or e2e_test_fix_count > MAX_E2E_TEST_FIX_ATTEMPTS :
187
+ if not e2e_tests_issue :
187
188
break
189
+
190
+ if e2e_test_fix_count > MAX_E2E_TEST_FIX_ATTEMPTS :
191
+ print (f"End-to-end tests script { args .e2e_tests_script } for { e2e_tests_folder_name } still failed after { e2e_test_fix_count - 1 } attemps at fixing issues." )
192
+ if recreated_e2e_tests :
193
+ print ("We've already tried to fix the issue by recreating the end-to-end tests but tests still fail. Please fix the issues manually." )
194
+ sys .exit (1 )
195
+
196
+ print ("Recreating end-to-end tests." )
197
+
198
+ generate_end_to_end_tests (args , codeplainAPI , frid , functional_requirement_id , plain_source_tree , linked_resources , existing_files , e2e_tests_folder_name )
199
+
200
+ recreated_e2e_tests = True
201
+ e2e_test_fix_count = 0
202
+ implementation_fix_count = 1
203
+ e2e_tests_files = file_utils .list_all_text_files (e2e_tests_folder_name )
204
+ continue
188
205
189
206
e2e_tests_files_content = file_utils .get_existing_files_content (e2e_tests_folder_name , e2e_tests_files )
190
207
@@ -217,10 +234,6 @@ def run_e2e_tests(args, codeplainAPI, frid, functional_requirement_id, plain_sou
217
234
except Exception as e :
218
235
print (f"Error fixing end-to-end tests issue: { str (e )} " )
219
236
sys .exit (1 )
220
-
221
- if e2e_tests_issue :
222
- print (f"End-to-end tests script { args .e2e_tests_script } for { e2e_tests_folder_name } still failed after { e2e_test_fix_count - 1 } attemps at fixing issues. Please fix the issues manually." )
223
- sys .exit (1 )
224
237
225
238
return [False , existing_files ]
226
239
@@ -256,7 +269,7 @@ def end_to_end_testing(args, codeplainAPI, frid, plain_source_tree, linked_resou
256
269
else :
257
270
e2e_tests_folder_name = None
258
271
259
- e2e_tests [frid ] = generate_end_to_end_tests (args , codeplainAPI , frid , plain_source_tree , linked_resources , existing_files , e2e_tests_folder_name )
272
+ e2e_tests [frid ] = generate_end_to_end_tests (args , codeplainAPI , frid , frid , plain_source_tree , linked_resources , existing_files , e2e_tests_folder_name )
260
273
261
274
e2e_tests_folder_name = e2e_tests [functional_requirement_id ]['folder_name' ]
262
275
0 commit comments