mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-02 03:40:38 +08:00
88 lines
4.1 KiB
Python
88 lines
4.1 KiB
Python
# Generated by CodiumAI
|
|
from pr_agent.algo.utils import try_fix_json
|
|
|
|
|
|
import pytest
|
|
|
|
class TestTryFixJson:
|
|
# Tests that JSON with complete 'Code suggestions' section returns expected output
|
|
def test_incomplete_code_suggestions(self):
|
|
review = '{"PR Analysis": {"Main theme": "xxx", "Description and title": "Yes", "Type of PR": "Bug fix"}, "PR Feedback": {"General PR suggestions": "..., `xxx`...", "Code suggestions": [{"relevant file": "xxx.py", "suggestion content": "xxx [important]"}, {"suggestion number": 2, "relevant file": "yyy.py", "suggestion content": "yyy [incomp...'
|
|
expected_output = {
|
|
'PR Analysis': {
|
|
'Main theme': 'xxx',
|
|
'Description and title': 'Yes',
|
|
'Type of PR': 'Bug fix'
|
|
},
|
|
'PR Feedback': {
|
|
'General PR suggestions': '..., `xxx`...',
|
|
'Code suggestions': [
|
|
{
|
|
'relevant file': 'xxx.py',
|
|
'suggestion content': 'xxx [important]'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
assert try_fix_json(review) == expected_output
|
|
|
|
def test_incomplete_code_suggestions_new_line(self):
|
|
review = '{"PR Analysis": {"Main theme": "xxx", "Description and title": "Yes", "Type of PR": "Bug fix"}, "PR Feedback": {"General PR suggestions": "..., `xxx`...", "Code suggestions": [{"relevant file": "xxx.py", "suggestion content": "xxx [important]"} \n\t, {"suggestion number": 2, "relevant file": "yyy.py", "suggestion content": "yyy [incomp...'
|
|
expected_output = {
|
|
'PR Analysis': {
|
|
'Main theme': 'xxx',
|
|
'Description and title': 'Yes',
|
|
'Type of PR': 'Bug fix'
|
|
},
|
|
'PR Feedback': {
|
|
'General PR suggestions': '..., `xxx`...',
|
|
'Code suggestions': [
|
|
{
|
|
'relevant file': 'xxx.py',
|
|
'suggestion content': 'xxx [important]'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
assert try_fix_json(review) == expected_output
|
|
|
|
def test_incomplete_code_suggestions_many_close_brackets(self):
|
|
review = '{"PR Analysis": {"Main theme": "xxx", "Description and title": "Yes", "Type of PR": "Bug fix"}, "PR Feedback": {"General PR suggestions": "..., `xxx`...", "Code suggestions": [{"relevant file": "xxx.py", "suggestion content": "xxx [important]"} \n, {"suggestion number": 2, "relevant file": "yyy.py", "suggestion content": "yyy }, [}\n ,incomp.} ,..'
|
|
expected_output = {
|
|
'PR Analysis': {
|
|
'Main theme': 'xxx',
|
|
'Description and title': 'Yes',
|
|
'Type of PR': 'Bug fix'
|
|
},
|
|
'PR Feedback': {
|
|
'General PR suggestions': '..., `xxx`...',
|
|
'Code suggestions': [
|
|
{
|
|
'relevant file': 'xxx.py',
|
|
'suggestion content': 'xxx [important]'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
assert try_fix_json(review) == expected_output
|
|
|
|
def test_incomplete_code_suggestions_relevant_file(self):
|
|
review = '{"PR Analysis": {"Main theme": "xxx", "Description and title": "Yes", "Type of PR": "Bug fix"}, "PR Feedback": {"General PR suggestions": "..., `xxx`...", "Code suggestions": [{"relevant file": "xxx.py", "suggestion content": "xxx [important]"}, {"suggestion number": 2, "relevant file": "yyy.p'
|
|
expected_output = {
|
|
'PR Analysis': {
|
|
'Main theme': 'xxx',
|
|
'Description and title': 'Yes',
|
|
'Type of PR': 'Bug fix'
|
|
},
|
|
'PR Feedback': {
|
|
'General PR suggestions': '..., `xxx`...',
|
|
'Code suggestions': [
|
|
{
|
|
'relevant file': 'xxx.py',
|
|
'suggestion content': 'xxx [important]'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
assert try_fix_json(review) == expected_output
|