Skip to content

Commit 367c772

Browse files
committed
show useful error message for failed outcomes
1 parent 8a84195 commit 367c772

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

render_machine/actions/fix_conformance_test.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from render_machine.actions.base_action import BaseAction
1010
from render_machine.implementation_code_helpers import ImplementationCodeHelpers
1111
from render_machine.render_context import RenderContext
12-
from render_machine.render_types import TestExecutionPhase
12+
from render_machine.render_types import RenderError, TestExecutionPhase
1313

1414
MAX_CONFORMANCE_TEST_FIX_ATTEMPTS = 20
1515
MAX_CONFORMANCE_TEST_RERENDER_ATTEMPTS = 1
@@ -34,7 +34,10 @@ def execute(self, render_context: RenderContext, previous_action_payload: Any |
3434
if ctx.conformance_tests_render_attempts >= MAX_CONFORMANCE_TEST_RERENDER_ATTEMPTS:
3535
error_msg = f"The renderer was unable to produce an implementation that passes conformance tests for functionality '{render_context.frid_context.frid}' after many attempts. Please review and rewrite the specification. (Render ID: {render_context.run_state.render_id})"
3636
render_context.last_error_message = error_msg
37-
return self.LIMIT_EXCEEDED_OUTCOME, None
37+
return (
38+
self.LIMIT_EXCEEDED_OUTCOME,
39+
RenderError.encode(message=error_msg).to_payload(),
40+
)
3841
else:
3942
ctx.regenerating_conformance_tests = True
4043
return self.REGENERATE_CONFORMANCE_TESTS_OUTCOME, None

render_machine/actions/refactor_code.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from render_machine.actions.base_action import BaseAction
66
from render_machine.implementation_code_helpers import ImplementationCodeHelpers
77
from render_machine.render_context import RenderContext
8+
from render_machine.render_types import RenderError
89

910
MAX_REFACTORING_ITERATIONS = 5
1011

@@ -21,10 +22,13 @@ def execute(self, render_context: RenderContext, _previous_action_payload: Any |
2122
render_context.frid_context.refactoring_iteration += 1
2223

2324
if render_context.frid_context.refactoring_iteration >= MAX_REFACTORING_ITERATIONS:
24-
console.info(
25-
f"Refactoring iterations limit of {MAX_REFACTORING_ITERATIONS} reached for functionality {render_context.frid_context.frid}."
25+
error_message = "Refactoring iterations limit of {MAX_REFACTORING_ITERATIONS} reached for functionality {render_context.frid_context.frid}."
26+
render_context.last_error_message = error_message
27+
28+
return (
29+
self.ITERATION_LIMIT_EXCEEDED_OUTCOME,
30+
RenderError.encode(message=error_message).to_payload(),
2631
)
27-
return self.ITERATION_LIMIT_EXCEEDED_OUTCOME, None
2832

2933
existing_files, existing_files_content = ImplementationCodeHelpers.fetch_existing_files(
3034
render_context.build_folder

0 commit comments

Comments
 (0)