Skip to content

Commit 41de7be

Browse files
Merge branch 'feat/feedback-loop-for-unmatched-test-results' of github.com:codeflash-ai/codeflash into feat/feedback-loop-for-unmatched-test-results
2 parents 9d099ac + cb8ce22 commit 41de7be

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

codeflash/code_utils/code_utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,10 @@ def exit_with_message(message: str, *, error_on_exit: bool = False) -> None:
362362
sys.exit(1 if error_on_exit else 0)
363363

364364

365+
def shorten_pytest_error(pytest_error_string: str) -> str:
366+
return "\n".join(re.findall(r"^[E>] +(.*)$", pytest_error_string, re.MULTILINE))
367+
368+
365369
def extract_unique_errors(pytest_output: str) -> set[str]:
366370
unique_errors = set()
367371

codeflash/verification/equivalence.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from __future__ import annotations
22

3+
import reprlib
34
import sys
45
from typing import TYPE_CHECKING
56

67
from codeflash.cli_cmds.console import logger
8+
from codeflash.code_utils.code_utils import shorten_pytest_error
79
from codeflash.models.models import TestDiff, TestDiffScope, TestResults, TestType, VerificationType
810
from codeflash.verification.comparator import comparator
911

@@ -57,11 +59,29 @@ def compare_test_results(original_results: TestResults, candidate_results: TestR
5759
if candidate_test_failures
5860
else ""
5961
)
62+
if cdd_pytest_error:
63+
cdd_pytest_error = shorten_pytest_error(cdd_pytest_error)
6064
original_pytest_error = (
6165
original_test_failures.get(original_test_result.id.test_fn_qualified_name(), "")
6266
if original_test_failures
6367
else ""
6468
)
69+
if original_pytest_error:
70+
original_pytest_error = shorten_pytest_error(original_pytest_error)
71+
test_src_code = original_test_result.id.get_src_code(original_test_result.file_name)
72+
test_diff = TestDiff(
73+
scope=TestDiffScope.RETURN_VALUE,
74+
original_value=reprlib.repr(original_test_result.return_value),
75+
candidate_value=reprlib.repr(cdd_test_result.return_value),
76+
test_src_code=test_src_code,
77+
candidate_pytest_error=cdd_pytest_error,
78+
original_pass=original_test_result.did_pass,
79+
candidate_pass=cdd_test_result.did_pass,
80+
original_pytest_error=original_pytest_error,
81+
)
82+
if not comparator(original_test_result.return_value, cdd_test_result.return_value, superset_obj=superset_obj):
83+
test_diff.scope = TestDiffScope.RETURN_VALUE
84+
test_diffs.append(test_diff)
6585

6686
if not comparator(original_test_result.return_value, cdd_test_result.return_value, superset_obj=superset_obj):
6787
test_diffs.append(

0 commit comments

Comments
 (0)