46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
import pytest
|
|
from django.urls import reverse
|
|
|
|
from review_agent.models import Conversation, FileSummaryBatch, RegulatoryReviewBatch, WorkflowNodeRun
|
|
|
|
|
|
pytestmark = pytest.mark.django_db
|
|
|
|
|
|
def test_regulatory_batch_status_requires_owner(client, django_user_model):
|
|
owner = django_user_model.objects.create_user(username="owner", password="pass")
|
|
other = django_user_model.objects.create_user(username="other", password="pass")
|
|
conversation = Conversation.objects.create(user=owner, title="会话")
|
|
summary = FileSummaryBatch.objects.create(
|
|
conversation=conversation,
|
|
user=owner,
|
|
batch_no="FS-OK",
|
|
status=FileSummaryBatch.Status.SUCCESS,
|
|
)
|
|
batch = RegulatoryReviewBatch.objects.create(
|
|
conversation=conversation,
|
|
user=owner,
|
|
source_summary_batch=summary,
|
|
batch_no="RR-STATUS",
|
|
)
|
|
WorkflowNodeRun.objects.create(
|
|
workflow_type="regulatory_review",
|
|
workflow_batch_id=batch.pk,
|
|
node_group="regulatory_review",
|
|
node_code="prepare",
|
|
node_name="准备",
|
|
progress=50,
|
|
)
|
|
|
|
client.force_login(other)
|
|
denied = client.get(reverse("regulatory_review_batch_status", args=[batch.pk]))
|
|
assert denied.status_code == 404
|
|
|
|
client.force_login(owner)
|
|
allowed = client.get(reverse("regulatory_review_batch_status", args=[batch.pk]))
|
|
assert allowed.status_code == 200
|
|
payload = allowed.json()
|
|
assert payload["batch"]["workflow_type"] == "regulatory_review"
|
|
assert payload["batch"]["batch_no"] == "RR-STATUS"
|
|
assert payload["nodes"][0]["node_code"] == "prepare"
|