From 7d38451b36fe0956078a741818dd4e014e40fbf5 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Thu, 5 Feb 2026 07:00:00 +0000 Subject: [PATCH] fix: resolve CI lint and test failures --- .../tests/unit/test_review.py | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 app/local-ai-commit-reviewer/tests/unit/test_review.py diff --git a/app/local-ai-commit-reviewer/tests/unit/test_review.py b/app/local-ai-commit-reviewer/tests/unit/test_review.py new file mode 100644 index 0000000..5e92272 --- /dev/null +++ b/app/local-ai-commit-reviewer/tests/unit/test_review.py @@ -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