def setUp(self): self.queue = Queue.objects.create( title="Test queue", slug="test_queue", allow_public_submission=True, ) self.queue.save() cat = KBCategory.objects.create( title="Test Cat", slug="test_cat", description="This is a test category", queue=self.queue, ) cat.save() self.kbitem1 = KBItem.objects.create( category=cat, title="KBItem 1", question="What?", answer="A KB Item", ) self.user = get_staff_user() self.ticket1 = Ticket.objects.create( title="unassigned to kbitem", queue=self.queue, description="lol", ) self.ticket1.save() self.ticket2 = Ticket.objects.create( title="assigned to kbitem", queue=self.queue, description="lol", kbitem=self.kbitem1, ) self.ticket2.save()
def setUp(self): self.queue = Queue.objects.create( title="Test queue", slug="test_queue", allow_public_submission=True, ) self.queue.save() cat = KBCategory.objects.create( title="Test Cat", slug="test_cat", description="This is a test category", queue=self.queue, ) cat.save() self.kbitem1 = KBItem.objects.create( category=cat, title="KBItem 1", question="What?", answer="A KB Item", ) self.kbitem1.save() self.kbitem2 = KBItem.objects.create( category=cat, title="KBItem 2", question="When?", answer="Now", ) self.kbitem2.save() self.user = get_staff_user()
def test_staff_user(self): from helpdesk.views.staff import return_to_ticket user = get_staff_user() ticket = create_ticket() response = return_to_ticket(user, helpdesk_settings, ticket) self.assertEqual(response['location'], ticket.get_absolute_url())
def test_no_user_settings_redirect_to_dashboard(self): """Authenticated users are redirected to the dashboard if user settings are missing""" from helpdesk.models import UserSettings user = get_staff_user() UserSettings.objects.filter(user=user).delete() self.assertUserRedirectedToView(user, 'helpdesk:dashboard')
def test_redirect_to_ticket_list(self): """Authenticated users are redirected to the ticket list based on their user settings""" user = get_staff_user() user.usersettings_helpdesk.login_view_ticketlist = True user.usersettings_helpdesk.save() self.assertUserRedirectedToView(user, 'helpdesk:list')
def test_redirect_to_dashboard(self): """Authenticated users are redirected to the dashboard""" user = get_staff_user() # login_view_ticketlist is False... user.usersettings_helpdesk.login_view_ticketlist = False user.usersettings_helpdesk.save() self.assertUserRedirectedToView(user, 'helpdesk:dashboard')
def test_staff_rss(self): """If HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE is False, staff users should be able to access rss feeds. """ user = get_staff_user() self.client.login(username=user.username, password='******') response = self.client.get(reverse('helpdesk:rss_unassigned'), follow=True) self.assertContains(response, 'Unassigned Open and Reopened tickets')
def test_staff_can_access_dashboard(self): """When HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE is False, staff users should be able to access the dashboard. """ from helpdesk.decorators import is_helpdesk_staff user = get_staff_user() self.client.login(username=user.username, password='******') response = self.client.get(reverse('helpdesk:dashboard'), follow=True) self.assertTemplateUsed(response, 'helpdesk/dashboard.html')
def test_cansavequery(self): """Can a query be saved""" url = reverse('helpdesk_savequery') self.client.login(username=get_staff_user().get_username(), 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)
def test_navigation(self): """Test proper rendering of navigation.html by accessing the dashboard""" from django.core.urlresolvers import NoReverseMatch self.client.login(username=get_staff_user().get_username(), password='******') self.assertRaises(NoReverseMatch, reverse, 'helpdesk_kb_index') try: response = self.client.get(reverse('helpdesk_dashboard')) except NoReverseMatch, e: if 'helpdesk_kb_index' in e.message: self.fail("Please verify any unchecked references to helpdesk_kb_index (start with navigation.html)") else: raise
def test_staff_user_detection(self): """Staff and non-staff users are correctly identified""" from helpdesk.decorators import is_helpdesk_staff self.assertFalse(is_helpdesk_staff(self.non_staff_user)) self.assertTrue(is_helpdesk_staff(get_staff_user()))