@@ -15,6 +15,10 @@ 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+
1822 def execute (self , render_context : RenderContext , previous_action_payload : Any | None ):
1923 console .info (
2024 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 +57,15 @@ def execute(self, render_context: RenderContext, previous_action_payload: Any |
5357 render_context .build_folder , render_context .plain_source_tree , render_context .frid_context .frid
5458 )
5559
60+ conflicting_module_name = render_context .conformance_tests_running_context .conflicting_module_name
61+ conflicting_frid = render_context .conformance_tests_running_context .conflicting_frid
62+ current_testing_module_name = render_context .conformance_tests_running_context .current_testing_module_name
63+ current_testing_frid = render_context .conformance_tests_running_context .current_testing_frid
64+
65+ # Reset the conflicting requirement count if the current testing functionality is not the same as the previously conflicting functionality
66+ if conflicting_module_name != current_testing_module_name or conflicting_frid != current_testing_frid :
67+ render_context .conformance_tests_running_context .conflicting_requirement_count = 0
68+
5669 if render_context .verbose :
5770 tmp_resources_list = []
5871 plain_spec .collect_linked_resources (
@@ -79,7 +92,7 @@ def execute(self, render_context: RenderContext, previous_action_payload: Any |
7992 )
8093
8194 with console .status (console_message ):
82- [conformance_tests_fixed , response_files ] = render_context .codeplain_api .fix_conformance_tests_issue (
95+ [issue_reason_code , response_files ] = render_context .codeplain_api .fix_conformance_tests_issue (
8396 render_context .frid_context .frid ,
8497 render_context .conformance_tests_running_context .current_testing_frid ,
8598 render_context .plain_source_tree ,
@@ -96,11 +109,21 @@ def execute(self, render_context: RenderContext, previous_action_payload: Any |
96109 render_context .conformance_tests_running_context .fix_attempts ,
97110 render_context .conformance_tests_running_context .get_current_conformance_test_folder_name (),
98111 render_context .conformance_tests_running_context .current_testing_frid_high_level_implementation_plan ,
112+ render_context .conformance_tests_running_context .conflicting_requirement_count ,
99113 run_state = render_context .run_state ,
100114 )
101115 code_diff_files_content = {}
102116
103- if conformance_tests_fixed :
117+ if issue_reason_code == self .ISSUE_REASON_CODE_CONFLICTING_REQUIREMENTS :
118+ render_context .conformance_tests_running_context .conflicting_requirement_count += 1
119+ console .info (
120+ f"Conflicting requirements detected. Conflicting requirement count: { render_context .conformance_tests_running_context .conflicting_requirement_count } "
121+ )
122+
123+ if (
124+ issue_reason_code == self .ISSUE_REASON_CODE_CONFORMANCE_TESTS
125+ or issue_reason_code == self .ISSUE_REASON_CODE_CONFLICTING_REQUIREMENTS
126+ ):
104127 render_context .conformance_tests .store_conformance_tests_files (
105128 render_context .module_name ,
106129 render_context .required_modules ,
0 commit comments