(self, render_context: RenderContext, previous_action_payload: Any | None)
| 15 | SUCCESSFUL_OUTCOME = "unit_tests_fix_generated" |
| 16 | |
| 17 | def execute(self, render_context: RenderContext, previous_action_payload: Any | None): |
| 18 | if not previous_action_payload.get("previous_unittests_issue"): |
| 19 | raise InternalClientError( |
| 20 | "Internal client error: Previous action payload does not contain previous unit tests issue." |
| 21 | ) |
| 22 | previous_unittests_issue = previous_action_payload["previous_unittests_issue"] |
| 23 | |
| 24 | if previous_unittests_issue and len(previous_unittests_issue) > MAX_ISSUE_LENGTH: |
| 25 | console.debug( |
| 26 | f"Unit tests issue text is too long and will be smartly truncated to {MAX_ISSUE_LENGTH} characters." |
| 27 | ) |
| 28 | |
| 29 | existing_files, existing_files_content = ImplementationCodeHelpers.fetch_existing_files( |
| 30 | render_context.build_folder |
| 31 | ) |
| 32 | |
| 33 | render_utils.print_inputs(render_context, existing_files_content, "Files sent as input to unit tests fixing:") |
| 34 | |
| 35 | response_files = render_context.codeplain_api.fix_unittests_issue( |
| 36 | render_context.frid_context.frid, |
| 37 | render_context.plain_source_tree, |
| 38 | render_context.frid_context.linked_resources, |
| 39 | existing_files_content, |
| 40 | render_context.module_name, |
| 41 | render_context.get_required_modules_functionalities(), |
| 42 | previous_unittests_issue, |
| 43 | run_state=render_context.run_state, |
| 44 | ) |
| 45 | |
| 46 | _, changed_files = file_utils.update_build_folder_with_rendered_files( |
| 47 | render_context.build_folder, existing_files, response_files |
| 48 | ) |
| 49 | |
| 50 | render_context.unit_tests_running_context.changed_files.update(changed_files) |
| 51 | |
| 52 | console.print_files("Files fixed:", render_context.build_folder, response_files, style=console.OUTPUT_STYLE) |
| 53 | |
| 54 | return self.SUCCESSFUL_OUTCOME, None |
nothing calls this directly
no test coverage detected