Files
mayan-edms/mayan/apps/permissions/tests/test_models.py
2017-02-03 14:08:34 -04:00

43 lines
1.4 KiB
Python

from __future__ import unicode_literals
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from django.core.exceptions import PermissionDenied
from common.tests import BaseTestCase
from user_management.tests import TEST_GROUP_NAME, TEST_USER_USERNAME
from ..classes import Permission
from ..models import Role
from ..permissions import permission_role_view
from .literals import TEST_ROLE_LABEL
class PermissionTestCase(BaseTestCase):
def setUp(self):
super(PermissionTestCase, self).setUp()
self.user = get_user_model().objects.create(
username=TEST_USER_USERNAME
)
self.group = Group.objects.create(name=TEST_GROUP_NAME)
self.role = Role.objects.create(label=TEST_ROLE_LABEL)
def test_no_permissions(self):
with self.assertRaises(PermissionDenied):
Permission.check_permissions(
requester=self.user, permissions=(permission_role_view,)
)
def test_with_permissions(self):
self.group.user_set.add(self.user)
self.role.permissions.add(permission_role_view.stored_permission)
self.role.groups.add(self.group)
try:
Permission.check_permissions(
requester=self.user, permissions=(permission_role_view,)
)
except PermissionDenied:
self.fail('PermissionDenied exception was not expected.')