Files
mayan-edms/mayan/apps/smart_settings/tests/test_view_permissions.py

64 lines
2.0 KiB
Python

from __future__ import absolute_import, unicode_literals
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from django.core.urlresolvers import reverse
from django.test.client import Client
from django.test import TestCase
from permissions.classes import Permission
from permissions.models import Role
from permissions.tests import TEST_ROLE
from ..permissions import permission_settings_view
TEST_EMAIL = 'test_user@example.com'
TEST_GROUP = 'test group'
TEST_PASSWORD = 'testuserpassword'
TEST_USERNAME = 'test_user'
class SmartSettingViewPermissionsTestCase(TestCase):
def setUp(self):
self.user = get_user_model().objects.create_user(
username=TEST_USERNAME, email=TEST_EMAIL,
password=TEST_PASSWORD
)
self.group = Group.objects.create(name=TEST_GROUP)
self.role = Role.objects.create(label=TEST_ROLE)
self.group.user_set.add(self.user)
self.role.groups.add(self.group)
Permission.invalidate_cache()
self.client = Client()
self.client.login(
username=TEST_USERNAME, password=TEST_PASSWORD
)
def tearDown(self):
self.group.delete()
self.role.delete()
self.user.delete()
def test_view_access_denied(self):
response = self.client.get(reverse('settings:namespace_list'))
self.assertEqual(response.status_code, 403)
response = self.client.get(
reverse('settings:namespace_detail', args=('common',),)
)
self.assertEqual(response.status_code, 403)
def test_view_access_permitted(self):
self.role.permissions.add(permission_settings_view.stored_permission)
response = self.client.get(reverse('settings:namespace_list'))
self.assertEqual(response.status_code, 200)
response = self.client.get(
reverse('settings:namespace_detail', args=('common',),)
)
self.assertEqual(response.status_code, 200)