36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
import pytest
|
|
|
|
from review_agent.models import Conversation, FileSummaryBatch, RegulatoryIssue, RegulatoryReviewBatch
|
|
from review_agent.regulatory_review.schemas import Finding
|
|
from review_agent.regulatory_review.services.risk_assess import persist_findings
|
|
|
|
|
|
pytestmark = pytest.mark.django_db
|
|
|
|
|
|
def test_persist_findings_deduplicates_and_updates_risk_summary(django_user_model):
|
|
user = django_user_model.objects.create_user(username="owner", password="pass")
|
|
conversation = Conversation.objects.create(user=user, title="会话")
|
|
summary = FileSummaryBatch.objects.create(conversation=conversation, user=user, batch_no="FS-OK")
|
|
batch = RegulatoryReviewBatch.objects.create(
|
|
conversation=conversation,
|
|
user=user,
|
|
source_summary_batch=summary,
|
|
batch_no="RR-RISK",
|
|
)
|
|
finding = Finding(
|
|
rule_code="registration_test_report",
|
|
category="completeness",
|
|
severity="blocking",
|
|
title="缺少注册检验报告",
|
|
suggestion="请补充注册检验报告并复核。",
|
|
citations=[{"source": "法规.doc", "text": "注册检验报告"}],
|
|
)
|
|
|
|
issues = persist_findings(batch, [finding, finding])
|
|
|
|
batch.refresh_from_db()
|
|
assert len(issues) == 1
|
|
assert RegulatoryIssue.objects.count() == 1
|
|
assert batch.risk_summary["blocking"] == 1
|