50 lines
1.6 KiB
Python
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()
|