fix(home): count completed review statistics

This commit is contained in:
wren
2026-05-25 11:15:39 +08:00
parent 384bf41de4
commit 7ca01bda76
2 changed files with 96 additions and 4 deletions
+72 -1
View File
@@ -6,10 +6,24 @@ from fastapi_modules.fastapi_leaudit.services.impl.homeServiceImpl import HomeSe
class _FakeDocument:
def __init__(self, *, audit_status: int, failed_count: int = 0, updated_at: str = "2026-05-23T10:00:00") -> None:
def __init__(
self,
*,
audit_status: int,
failed_count: int = 0,
passed_count: int | None = None,
updated_at: str = "2026-05-23T10:00:00",
processing_status: str | None = None,
run_status: str | None = None,
result_status: str | None = None,
) -> None:
self.auditStatus = audit_status
self.failedCount = failed_count
self.passedCount = passed_count
self.updatedAt = updated_at
self.processingStatus = processing_status or ("running" if audit_status == 2 else "waiting" if audit_status == 0 else "completed")
self.runStatus = run_status or ("running" if audit_status == 2 else "pending" if audit_status == 0 else "completed")
self.resultStatus = result_status
class _FakePage:
@@ -47,6 +61,49 @@ class _FakeDocumentService:
return _FakePage(documents=[], total_pages=2)
class _FakeFailedReviewDocumentService:
def __init__(self) -> None:
self.calls = []
async def ListDocuments(self, **kwargs):
self.calls.append(kwargs)
return _FakePage(
documents=[
_FakeDocument(
audit_status=0,
passed_count=5,
failed_count=0,
updated_at="2026-05-21T09:00:00",
run_status="completed",
result_status="pass",
),
_FakeDocument(
audit_status=0,
failed_count=3,
updated_at="2026-05-21T10:00:00",
run_status="completed",
result_status="fail",
),
_FakeDocument(
audit_status=0,
failed_count=0,
updated_at="2026-05-21T11:00:00",
processing_status="waiting",
run_status="pending",
result_status=None,
),
_FakeDocument(
audit_status=0,
failed_count=1,
updated_at="2026-04-18T10:00:00",
run_status="completed",
result_status="fail",
),
],
total_pages=1,
)
@pytest.mark.asyncio
async def test_home_dashboard_statistics_uses_entry_scope_and_all_pages():
"""首页统计按入口模块与文档类型过滤,并拉取全量分页后计算。"""
@@ -71,3 +128,17 @@ async def test_home_dashboard_statistics_uses_entry_scope_and_all_pages():
assert [call["Page"] for call in document_service.calls] == [1, 2]
assert all("DateFrom" not in call for call in document_service.calls)
assert all("DateTo" not in call for call in document_service.calls)
@pytest.mark.asyncio
async def test_home_dashboard_statistics_counts_failed_reviews_as_reviewed():
"""首页已审核统计应包含不通过但已评查完成的文件。"""
document_service = _FakeFailedReviewDocumentService()
service = HomeServiceImpl(DocumentService=document_service)
result = await service.GetDashboardStatistics(UserId=7, Today="2026-05-21")
assert result.todayPendingFiles == 1
assert result.monthlyReviewedFiles == 2
assert result.monthlyPassRate == 50
assert result.issuesDetected == 3