Files
ai-ticket-platform/backend/apps/tickets/tests/test_ticket_export.py
2026-07-01 14:09:26 +08:00

50 lines
1.6 KiB
Python

from apps.audit.models import OperationAuditLog
from apps.tickets.models import Ticket
def test_add_comment_to_ticket(admin_client, db):
ticket = Ticket.objects.create(ticket_no="TK202606300010", title="A", description="A")
response = admin_client.post(
f"/api/tickets/{ticket.id}/comments",
data={
"content": "Checked logs",
"comment_type": "internal_note",
"visibility": "internal",
},
content_type="application/json",
)
assert response.status_code == 200
assert response.json()["content"] == "Checked logs"
assert ticket.comments.count() == 1
def test_add_attachment_to_ticket(admin_client, db):
ticket = Ticket.objects.create(ticket_no="TK202606300011", title="A", description="A")
response = admin_client.post(
f"/api/tickets/{ticket.id}/attachments",
data={
"file_name": "error.log",
"mime_type": "text/plain",
"file_size": 123,
"storage_path": "tickets/TK202606300011/error.log",
},
content_type="application/json",
)
assert response.status_code == 200
assert response.json()["file_name"] == "error.log"
def test_export_tickets_returns_csv_and_audit_log(admin_client, db):
Ticket.objects.create(ticket_no="TK202606300012", title="Export me", description="A")
response = admin_client.get("/api/tickets/export")
assert response.status_code == 200
assert response["content-type"].startswith("text/csv")
assert "TK202606300012" in response.content.decode()
assert OperationAuditLog.objects.filter(module="tickets", action="export").exists()