diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py index c0955dea..4596223c 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -98,8 +98,8 @@ def convert_to_markdown_v2(output_data: dict, gfm_supported: bool = True, increm else: markdown_text += f"{PRReviewHeader.INCREMENTAL.value} ๐Ÿ”\n\n" markdown_text += f"โฎ๏ธ Review for commits since previous PR-Agent review {incremental_review}.\n\n" - # if not output_data or not output_data.get('review', {}): - # return "" + if not output_data or not output_data.get('review', {}): + return "" if gfm_supported: markdown_text += "\n" @@ -112,10 +112,16 @@ def convert_to_markdown_v2(output_data: dict, gfm_supported: bool = True, increm emoji = emojis.get(key_nice, "") if 'Estimated effort to review' in key_nice: key_nice = 'Estimated effort to review' - value_int = int(value) + if value.isnumeric(): + value_int = int(value) + else: + try: + value_int = int(value.split(',')[0]) + except ValueError: + continue blue_bars = '๐Ÿ”ต' * value_int white_bars = 'โšช' * (5 - value_int) - value = f"{value.strip()} {blue_bars}{white_bars}" + value = f"{value_int} {blue_bars}{white_bars}" if gfm_supported: markdown_text += f"
" markdown_text += f"{emoji} {key_nice}: {value}" diff --git a/tests/unittest/test_convert_to_markdown.py b/tests/unittest/test_convert_to_markdown.py index 32f4bef5..f3c02d87 100644 --- a/tests/unittest/test_convert_to_markdown.py +++ b/tests/unittest/test_convert_to_markdown.py @@ -1,5 +1,5 @@ # Generated by CodiumAI -from pr_agent.algo.utils import PRReviewHeader, convert_to_markdown +from pr_agent.algo.utils import PRReviewHeader, convert_to_markdown_v2 from pr_agent.tools.pr_description import insert_br_after_x_chars """ @@ -52,9 +52,10 @@ class TestConvertToMarkdown: 'suggestion': "Consider raising an exception or logging a warning when 'pr_url' attribute is not found. This can help in debugging issues related to the absence of 'pr_url' in instances where it's expected. [important]\n", 'relevant_line': '[return ""](https://github.com/Codium-ai/pr-agent-pro/pull/102/files#diff-52d45f12b836f77ed1aef86e972e65404634ea4e2a6083fb71a9b0f9bb9e062fR199)'}]} - expected_output = f'{PRReviewHeader.REGULAR.value} ๐Ÿ”\n\n\n\n\n\n\n
โฑ๏ธ Estimated effort to review [1-5]\n1, because the changes are minimal and straightforward, focusing on a single functionality addition.\n\n\n
๐Ÿงช Relevant tests\nNo\n\n\n
โšก Possible issues\nNo\n\n\n
๐Ÿ”’ Security concerns\nNo\n\n
\n\n\n
Code feedback:\n\n
relevant filepr_agent/git_providers/git_provider.py\n
suggestion      \n\n\n\nConsider raising an exception or logging a warning when \'pr_url\' attribute is not found. This can help in debugging issues related to the absence of \'pr_url\' in instances where it\'s expected. [important]\n\n\n
relevant linereturn ""

\n\n
' - assert convert_to_markdown(input_data).strip() == expected_output.strip() + expected_output = f'{PRReviewHeader.REGULAR} ๐Ÿ”\n\n\n\n\n\n\n
โฑ๏ธ Estimated effort to review: 1 ๐Ÿ”ตโšชโšชโšชโšช
๐Ÿงช No relevant tests
โšก Possible issues: No\n
๐Ÿ”’ No security concerns identified
\n\n\n
Code feedback:\n\n
relevant filepr_agent/git_providers/git_provider.py\n
suggestion      \n\n\n\nConsider raising an exception or logging a warning when \'pr_url\' attribute is not found. This can help in debugging issues related to the absence of \'pr_url\' in instances where it\'s expected. [important]\n\n\n
relevant linereturn ""

\n\n
' + + assert convert_to_markdown_v2(input_data).strip() == expected_output.strip() # Tests that the function works correctly with an empty dictionary input def test_empty_dictionary_input(self): @@ -63,7 +64,7 @@ class TestConvertToMarkdown: expected_output = '' - assert convert_to_markdown(input_data).strip() == expected_output.strip() + assert convert_to_markdown_v2(input_data).strip() == expected_output.strip() def test_dictionary_with_empty_dictionaries(self): input_data = {'review': {}, 'code_feedback': [{}]} @@ -71,7 +72,7 @@ class TestConvertToMarkdown: expected_output = '' - assert convert_to_markdown(input_data).strip() == expected_output.strip() + assert convert_to_markdown_v2(input_data).strip() == expected_output.strip() class TestBR: def test_br1(self):