@@ -15,6 +15,11 @@ class FixConformanceTest(BaseAction):
1515 IMPLEMENTATION_CODE_NOT_UPDATED = "implementation_code_not_updated"
1616 IMPLEMENTATION_CODE_UPDATED = "implementation_code_updated"
1717
18+ ISSUE_REASON_CODE_CONFORMANCE_TESTS = 0
19+ ISSUE_REASON_CODE_IMPLEMENTATION_CODE = 1
20+ ISSUE_REASON_CODE_CONFLICTING_REQUIREMENTS = 2
21+ ISSUE_REASON_CODE_CONFLICTING_ACCEPTANCE_TESTS = 3
22+
1823 def execute (self , render_context : RenderContext , previous_action_payload : Any | None ):
1924 console .info (
2025 f"Fixing conformance test for functionality { render_context .conformance_tests_running_context .current_testing_frid } in module { render_context .conformance_tests_running_context .current_testing_module_name } ."
@@ -53,6 +58,15 @@ def execute(self, render_context: RenderContext, previous_action_payload: Any |
5358 render_context .build_folder , render_context .plain_source_tree , render_context .frid_context .frid
5459 )
5560
61+ conflicting_module_name = render_context .conformance_tests_running_context .conflicting_module_name
62+ conflicting_frid = render_context .conformance_tests_running_context .conflicting_frid
63+ current_testing_module_name = render_context .conformance_tests_running_context .current_testing_module_name
64+ current_testing_frid = render_context .conformance_tests_running_context .current_testing_frid
65+
66+ # Reset the conflicting requirement count if the current testing functionality is not the same as the previously conflicting functionality
67+ if conflicting_module_name != current_testing_module_name or conflicting_frid != current_testing_frid :
68+ render_context .conformance_tests_running_context .conflicting_requirement_count = 0
69+
5670 if render_context .verbose :
5771 tmp_resources_list = []
5872 plain_spec .collect_linked_resources (
@@ -78,28 +92,40 @@ def execute(self, render_context: RenderContext, previous_action_payload: Any |
7892 style = console .INPUT_STYLE ,
7993 )
8094
81- [conformance_tests_fixed , response_files ] = render_context .codeplain_api .fix_conformance_tests_issue (
82- render_context .frid_context .frid ,
83- render_context .conformance_tests_running_context .current_testing_frid ,
84- render_context .plain_source_tree ,
85- render_context .frid_context .linked_resources ,
86- existing_files_content ,
87- memory_files_content ,
88- render_context .module_name ,
89- render_context .conformance_tests_running_context .current_testing_module_name ,
90- render_context .get_required_modules_functionalities (),
91- previous_frid_code_diff ,
92- existing_conformance_test_files_content ,
93- render_context .conformance_tests_running_context .get_current_acceptance_tests (),
94- previous_conformance_tests_issue ,
95- render_context .conformance_tests_running_context .fix_attempts ,
96- render_context .conformance_tests_running_context .get_current_conformance_test_folder_name (),
97- render_context .conformance_tests_running_context .current_testing_frid_high_level_implementation_plan ,
98- run_state = render_context .run_state ,
99- )
95+ [issue_reason_code , response_files ] = render_context .codeplain_api .fix_conformance_tests_issue (
96+ render_context .frid_context .frid ,
97+ render_context .conformance_tests_running_context .current_testing_frid ,
98+ render_context .plain_source_tree ,
99+ render_context .frid_context .linked_resources ,
100+ existing_files_content ,
101+ memory_files_content ,
102+ render_context .module_name ,
103+ render_context .conformance_tests_running_context .current_testing_module_name ,
104+ render_context .get_required_modules_functionalities (),
105+ previous_frid_code_diff ,
106+ existing_conformance_test_files_content ,
107+ render_context .conformance_tests_running_context .get_current_acceptance_tests (),
108+ previous_conformance_tests_issue ,
109+ render_context .conformance_tests_running_context .fix_attempts ,
110+ render_context .conformance_tests_running_context .get_current_conformance_test_folder_name (),
111+ render_context .conformance_tests_running_context .current_testing_frid_high_level_implementation_plan ,
112+ render_context .conformance_tests_running_context .conflicting_requirement_count ,
113+ run_state = render_context .run_state ,
114+ )
100115 code_diff_files_content = {}
101116
102- if conformance_tests_fixed :
117+ if (
118+ issue_reason_code == self .ISSUE_REASON_CODE_CONFLICTING_REQUIREMENTS
119+ or issue_reason_code == self .ISSUE_REASON_CODE_CONFLICTING_ACCEPTANCE_TESTS
120+ ):
121+ render_context .conformance_tests_running_context .conflicting_requirement_count += 1
122+ render_context .conformance_tests_running_context .conflicting_module_name = current_testing_module_name
123+ render_context .conformance_tests_running_context .conflicting_frid = current_testing_frid
124+ console .info (
125+ f"Potential conflicting functionalities detected while fixing conformance tests for functionality { current_testing_frid } in module { current_testing_module_name } ."
126+ )
127+
128+ if issue_reason_code == self .ISSUE_REASON_CODE_CONFORMANCE_TESTS :
103129 render_context .conformance_tests .store_conformance_tests_files (
104130 render_context .module_name ,
105131 render_context .required_modules ,
0 commit comments