37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.conf import settings
|
|
from django.contrib.auth import get_user_model
|
|
from django.contrib.auth.models import Group
|
|
from django.core.exceptions import PermissionDenied
|
|
from django.core.files import File
|
|
from django.core.urlresolvers import reverse
|
|
from django.test.client import Client
|
|
from django.test import TestCase
|
|
|
|
from .classes import Permission
|
|
from .models import Role, StoredPermission
|
|
from .permissions import permission_role_view
|
|
|
|
|
|
class PermissionTestCase(TestCase):
|
|
def setUp(self):
|
|
self.user = get_user_model().objects.create(username='test user')
|
|
self.group = Group.objects.create(name='test group')
|
|
self.role = Role.objects.create(label='test role')
|
|
Permission.invalidate_cache()
|
|
|
|
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.')
|