django-helpdesk/helpdesk/tests/test_navigation.py
2019-03-20 16:12:19 +01:00

93 lines
3.5 KiB
Python

# -*- coding: utf-8 -*-
from django.urls import reverse
from django.test import TestCase
from helpdesk.models import KBCategory
from helpdesk.tests.helpers import get_user, reload_urlconf
class TestKBDisabled(TestCase):
def setUp(self):
from helpdesk import settings
self.HELPDESK_KB_ENABLED = settings.HELPDESK_KB_ENABLED
if self.HELPDESK_KB_ENABLED:
settings.HELPDESK_KB_ENABLED = False
reload_urlconf()
def tearDown(self):
from helpdesk import settings
if self.HELPDESK_KB_ENABLED:
settings.HELPDESK_KB_ENABLED = True
reload_urlconf()
def test_navigation(self):
"""Test proper rendering of navigation.html by accessing the dashboard"""
from django.urls import NoReverseMatch
self.client.login(username=get_user(is_staff=True).get_username(), password='password')
self.assertRaises(NoReverseMatch, reverse, 'helpdesk:kb_index')
try:
response = self.client.get(reverse('helpdesk:dashboard'))
except NoReverseMatch as 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
else:
self.assertEqual(response.status_code, 200)
def test_public_homepage_with_kb_category(self):
KBCategory.objects.create(title="KB Cat 1",
slug="kbcat1",
description="Some category of KB info")
response = self.client.get(reverse('helpdesk:home'))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'helpdesk/public_homepage.html')
class TestDecorator(TestCase):
def test_staff_member_restrictions(self):
user = get_user(username='helpdesk.user',
password='password')
self.client.login(username=user.get_username(),
password='password')
response = self.client.get(reverse('helpdesk:list'))
self.assertEqual(response.status_code, 403)
def test_staff_member_access(self):
user = get_user(username='helpdesk.user',
password='password',
is_staff=True)
self.client.login(username=user.get_username(),
password='password')
response = self.client.get(reverse('helpdesk:list'))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'helpdesk/ticket_list.html')
def test_superuser_member_restrictions(self):
user = get_user(username='helpdesk.superuser',
password='password',
is_staff=True)
self.client.login(username=user.get_username(),
password='password')
response = self.client.get(reverse('helpdesk:email_ignore'))
self.assertEqual(response.status_code, 403)
def test_superuser_member_access(self):
user = get_user(username='helpdesk.superuser',
password='password',
is_staff=True,
is_superuser=True)
self.client.login(username=user.get_username(),
password='password')
response = self.client.get(reverse('helpdesk:email_ignore'))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'helpdesk/email_ignore_list.html')