mirror of
https://github.com/django-helpdesk/django-helpdesk.git
synced 2025-08-26 06:55:49 +02:00
Refactor project folders.
Move helpdesk to src folder. Move tests to project base folder.
This commit is contained in:
93
tests/test_public_actions.py
Normal file
93
tests/test_public_actions.py
Normal file
@@ -0,0 +1,93 @@
|
||||
from django.test import TestCase
|
||||
from django.test.client import Client
|
||||
from django.urls import reverse
|
||||
from helpdesk.models import Queue, Ticket
|
||||
|
||||
|
||||
class PublicActionsTestCase(TestCase):
|
||||
"""
|
||||
Tests for public actions:
|
||||
- View a ticket
|
||||
- Add a followup
|
||||
- Close resolved case
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
Create a queue & ticket we can use for later tests.
|
||||
"""
|
||||
self.queue = Queue.objects.create(
|
||||
title="Queue 1",
|
||||
slug="q",
|
||||
allow_public_submission=True,
|
||||
new_ticket_cc="new.public@example.com",
|
||||
updated_ticket_cc="update.public@example.com",
|
||||
)
|
||||
self.ticket = Ticket.objects.create(
|
||||
title="Test Ticket",
|
||||
queue=self.queue,
|
||||
submitter_email="test.submitter@example.com",
|
||||
description="This is a test ticket.",
|
||||
)
|
||||
|
||||
self.client = Client()
|
||||
|
||||
def test_public_view_ticket(self):
|
||||
# Without key, we get 403
|
||||
response = self.client.get(
|
||||
"%s?ticket=%s&email=%s"
|
||||
% (
|
||||
reverse("helpdesk:public_view"),
|
||||
self.ticket.ticket_for_url,
|
||||
"test.submitter@example.com",
|
||||
)
|
||||
)
|
||||
self.assertEqual(response.status_code, 403)
|
||||
self.assertTemplateNotUsed(response, "helpdesk/public_view_form.html")
|
||||
# With a key it works
|
||||
response = self.client.get(
|
||||
"%s?ticket=%s&email=%s&key=%s"
|
||||
% (
|
||||
reverse("helpdesk:public_view"),
|
||||
self.ticket.ticket_for_url,
|
||||
"test.submitter@example.com",
|
||||
self.ticket.secret_key,
|
||||
)
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "helpdesk/public_view_ticket.html")
|
||||
|
||||
def test_public_close(self):
|
||||
old_status = self.ticket.status
|
||||
old_resolution = self.ticket.resolution
|
||||
resolution_text = "Resolved by test script"
|
||||
|
||||
ticket = Ticket.objects.get(id=self.ticket.id)
|
||||
|
||||
ticket.status = Ticket.RESOLVED_STATUS
|
||||
ticket.resolution = resolution_text
|
||||
ticket.save()
|
||||
|
||||
current_followups = ticket.followup_set.all().count()
|
||||
|
||||
response = self.client.get(
|
||||
"%s?ticket=%s&email=%s&close&key=%s"
|
||||
% (
|
||||
reverse("helpdesk:public_view"),
|
||||
ticket.ticket_for_url,
|
||||
"test.submitter@example.com",
|
||||
ticket.secret_key,
|
||||
)
|
||||
)
|
||||
|
||||
ticket = Ticket.objects.get(id=self.ticket.id)
|
||||
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertTemplateNotUsed(response, "helpdesk/public_view_form.html")
|
||||
self.assertEqual(ticket.status, Ticket.CLOSED_STATUS)
|
||||
self.assertEqual(ticket.resolution, resolution_text)
|
||||
self.assertEqual(current_followups + 1, ticket.followup_set.all().count())
|
||||
|
||||
ticket.resolution = old_resolution
|
||||
ticket.status = old_status
|
||||
ticket.save()
|
Reference in New Issue
Block a user