fix: resolve CI lint and test failures
Some checks failed
CI/CD / lint-and-test (push) Failing after 20s
Some checks failed
CI/CD / lint-and-test (push) Failing after 20s
This commit is contained in:
76
app/local-ai-commit-reviewer/tests/unit/test_review.py
Normal file
76
app/local-ai-commit-reviewer/tests/unit/test_review.py
Normal file
@@ -0,0 +1,76 @@
|
||||
from src.core.review_engine import Issue, IssueCategory, IssueSeverity, ReviewResult, ReviewSummary
|
||||
|
||||
|
||||
class TestIssue:
|
||||
def test_issue_creation(self):
|
||||
issue = Issue(
|
||||
file="test.py",
|
||||
line=10,
|
||||
severity=IssueSeverity.WARNING,
|
||||
category=IssueCategory.STYLE,
|
||||
message="Missing docstring",
|
||||
suggestion="Add a docstring"
|
||||
)
|
||||
assert issue.file == "test.py"
|
||||
assert issue.line == 10 # noqa: PLR2004
|
||||
assert issue.severity == IssueSeverity.WARNING
|
||||
|
||||
def test_issue_to_dict(self):
|
||||
issue = Issue(
|
||||
file="test.py",
|
||||
line=10,
|
||||
severity=IssueSeverity.CRITICAL,
|
||||
category=IssueCategory.BUG,
|
||||
message="Potential bug"
|
||||
)
|
||||
data = issue.to_dict()
|
||||
assert data["file"] == "test.py"
|
||||
assert data["severity"] == "critical"
|
||||
assert data["category"] == "bug"
|
||||
|
||||
|
||||
class TestReviewResult:
|
||||
def test_review_result_no_issues(self):
|
||||
result = ReviewResult()
|
||||
assert result.has_issues() is False
|
||||
assert result.has_critical_issues() is False
|
||||
|
||||
def test_review_result_with_issues(self):
|
||||
result = ReviewResult()
|
||||
result.issues = [
|
||||
Issue(
|
||||
file="test.py",
|
||||
line=1,
|
||||
severity=IssueSeverity.CRITICAL,
|
||||
category=IssueCategory.SECURITY,
|
||||
message="SQL injection"
|
||||
)
|
||||
]
|
||||
assert result.has_issues() is True
|
||||
assert result.has_critical_issues() is True
|
||||
|
||||
def test_get_issues_by_severity(self):
|
||||
result = ReviewResult()
|
||||
result.issues = [
|
||||
Issue(file="a.py", line=1, severity=IssueSeverity.CRITICAL, category=IssueCategory.BUG, message="Bug1"),
|
||||
Issue(file="b.py", line=2, severity=IssueSeverity.WARNING, category=IssueCategory.STYLE, message="Style1"),
|
||||
Issue(file="c.py", line=3, severity=IssueSeverity.INFO, category=IssueCategory.DOCUMENTATION, message="Doc1"),
|
||||
]
|
||||
critical = result.get_issues_by_severity(IssueSeverity.CRITICAL)
|
||||
assert len(critical) == 1
|
||||
assert critical[0].file == "a.py"
|
||||
|
||||
|
||||
class TestReviewSummary:
|
||||
def test_review_summary_aggregation(self):
|
||||
summary = ReviewSummary()
|
||||
summary.files_reviewed = 5
|
||||
summary.lines_changed = 100
|
||||
summary.critical_count = 2
|
||||
summary.warning_count = 5
|
||||
summary.info_count = 10
|
||||
summary.overall_assessment = "Good"
|
||||
|
||||
data = summary.to_dict()
|
||||
assert data["files_reviewed"] == 5 # noqa: PLR2004
|
||||
assert data["critical_count"] == 2 # noqa: PLR2004
|
||||
Reference in New Issue
Block a user