forked from extern/django-helpdesk
Add test for saving a query, fix shared checkbox issue
My browser sends 'on' when a checkbox is ticked, django ORM only recognises '1', 'true' or 't' as valid 'True' responses. This throws an error ValidationError at /helpdesk/save_query/ [u"'on' value must be either True or False."] This could be fixed with " value='1'" in the template, but testing that is harder My fix is to add a check in the view. 2 more lines, but easier to unittest. Core devs need to make a call as to which solution is best. D
This commit is contained in:
parent
afbfd01fab
commit
0ac7183875
26
helpdesk/tests/test_savequery.py
Normal file
26
helpdesk/tests/test_savequery.py
Normal file
@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import TestCase
|
||||
from helpdesk.models import Ticket, Queue
|
||||
from helpdesk.tests.helpers import get_staff_user, reload_urlconf
|
||||
|
||||
class TestSavingSharedQuery(TestCase):
|
||||
def setUp(self):
|
||||
q = Queue(title='Q1', slug='q1')
|
||||
q.save()
|
||||
self.q = q
|
||||
|
||||
def test_cansavequery(self):
|
||||
"""Can a query be saved"""
|
||||
url = reverse('helpdesk_savequery')
|
||||
self.client.login(username=get_staff_user().get_username(),
|
||||
password='password')
|
||||
response = self.client.post(url,
|
||||
data={'title': 'ticket on my queue',
|
||||
'queue':self.q,
|
||||
'shared':'on',
|
||||
'query_encoded':'KGRwMApWZmlsdGVyaW5nCnAxCihkcDIKVnN0YXR1c19faW4KcDMKKGxwNApJMQphSTIKYUkzCmFzc1Zzb3J0aW5nCnA1ClZjcmVhdGVkCnA2CnMu'})
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertTrue('tickets/?saved_query=1' in response.url)
|
||||
|
||||
|
@ -1213,6 +1213,8 @@ run_report = staff_member_required(run_report)
|
||||
def save_query(request):
|
||||
title = request.POST.get('title', None)
|
||||
shared = request.POST.get('shared', False)
|
||||
if shared == 'on': # django only translates '1', 'true', 't' into True
|
||||
shared = True
|
||||
query_encoded = request.POST.get('query_encoded', None)
|
||||
|
||||
if not title or not query_encoded:
|
||||
|
Loading…
Reference in New Issue
Block a user