2012-08-07 16:04:34 +02:00
from helpdesk . models import Queue , CustomField , Ticket
from django . test import TestCase
from django . core import mail
from django . test . client import Client
from django . core . urlresolvers import reverse
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 ) :
2012-08-08 06:32:17 +02:00
response = self . client . get ( ' %s ?ticket= %s &email= %s ' % ( reverse ( ' helpdesk_public_view ' ) , self . ticket . ticket_for_url , ' test.submitter@example.com ' ) )
2012-08-07 16:04:34 +02:00
self . assertEqual ( response . status_code , 200 )
2012-08-08 06:32:17 +02:00
self . assertTemplateNotUsed ( response , ' helpdesk/public_view_form.html ' )
2012-08-07 16:04:34 +02:00
def test_public_close ( self ) :
old_status = self . ticket . status
old_resolution = self . ticket . resolution
resolution_text = ' Resolved by test script '
2012-08-08 06:32:17 +02:00
ticket = Ticket . objects . get ( id = self . ticket . id )
2012-08-07 16:04:34 +02:00
2012-08-08 06:32:17 +02:00
ticket . status = Ticket . RESOLVED_STATUS
ticket . resolution = resolution_text
ticket . save ( )
2012-08-07 16:04:34 +02:00
2012-08-08 06:32:17 +02:00
current_followups = ticket . followup_set . all ( ) . count ( )
response = self . client . get ( ' %s ?ticket= %s &email= %s &close ' % ( reverse ( ' helpdesk_public_view ' ) , ticket . ticket_for_url , ' test.submitter@example.com ' ) )
2012-08-07 16:04:34 +02:00
ticket = Ticket . objects . get ( id = self . ticket . id )
2012-08-08 06:32:17 +02:00
self . assertEqual ( response . status_code , 302 )
self . assertTemplateNotUsed ( response , ' helpdesk/public_view_form.html ' )
2012-08-07 16:04:34 +02:00
self . assertEqual ( ticket . status , Ticket . CLOSED_STATUS )
self . assertEqual ( ticket . resolution , resolution_text )
2012-08-08 06:32:17 +02:00
self . assertEqual ( current_followups + 1 , ticket . followup_set . all ( ) . count ( ) )
2012-08-07 16:04:34 +02:00
2012-08-08 06:32:17 +02:00
ticket . resolution = old_resolution
ticket . status = old_status
ticket . save ( )