# Generated by CodiumAI from pr_agent.algo.utils import PRReviewHeader, convert_to_markdown_v2 from pr_agent.tools.pr_description import insert_br_after_x_chars """ Code Analysis Objective: The objective of the 'convert_to_markdown' function is to convert a dictionary of data into a markdown-formatted text. The function takes in a dictionary as input and recursively iterates through its keys and values to generate the markdown text. Inputs: - A dictionary of data containing information about a pull request. Flow: - Initialize an empty string variable 'markdown_text'. - Create a dictionary 'emojis' containing emojis for each key in the input dictionary. - Iterate through the input dictionary: - If the value is empty, continue to the next iteration. - If the value is a dictionary, recursively call the 'convert_to_markdown' function with the value as input and append the returned markdown text to 'markdown_text'. - If the value is a list: - If the key is 'code suggestions', add an additional line break to 'markdown_text'. - Get the corresponding emoji for the key from the 'emojis' dictionary. If no emoji is found, use a dash. - Append the emoji and key to 'markdown_text'. - Iterate through the items in the list: - If the item is a dictionary and the key is 'code suggestions', call the 'parse_code_suggestion' function with the item as input and append the returned markdown text to 'markdown_text'. - If the item is not empty, append it to 'markdown_text'. - If the value is not 'n/a', get the corresponding emoji for the key from the 'emojis' dictionary. If no emoji is found, use a dash. Append the emoji, key, and value to 'markdown_text'. - Return 'markdown_text'. Outputs: - A markdown-formatted string containing the information from the input dictionary. Additional aspects: - The function uses recursion to handle nested dictionaries. - The 'parse_code_suggestion' function is called for items in the 'code suggestions' list. - The function uses emojis to add visual cues to the markdown text. """ class TestConvertToMarkdown: # Tests that the function works correctly with a simple dictionary input def test_simple_dictionary_input(self): input_data = {'review': { 'estimated_effort_to_review_[1-5]': '1, because the changes are minimal and straightforward, focusing on a single functionality addition.\n', 'relevant_tests': 'No\n', 'possible_issues': 'No\n', 'security_concerns': 'No\n'}} expected_output = f'{PRReviewHeader.REGULAR.value} 🔍\n\nHere are some key observations to aid the review process:\n\n
⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪ |
🧪 No relevant tests |
Possible issues: No\n |
🔒 No security concerns identified |
FilePatchInfo
and EDIT_TYPE
from '
'pr_agent.algo.types
instead pr_agent.git_providers.git_provider
.')
assert file_change_description_br == expected_output
# print("-----")
# print(file_change_description_br)
def test_br2(self):
file_change_description = (
'- Created a - new -class `ColorPaletteResourcesCollection ColorPaletteResourcesCollection '
'ColorPaletteResourcesCollection ColorPaletteResourcesCollection`')
file_change_description_br = insert_br_after_x_chars(file_change_description)
expected_output = ('ColorPaletteResourcesCollection
'
'ColorPaletteResourcesCollection ColorPaletteResourcesCollection '
'
ColorPaletteResourcesCollection
')
assert file_change_description_br == expected_output
# print("-----")
# print(file_change_description_br)
def test_br3(self):
file_change_description = 'Created a new class `ColorPaletteResourcesCollection` which extends `AvaloniaDictionaryColorPaletteResourcesCollection
which '
'extends AvaloniaDictionary'
'
and implements