Implement repeatable way to add test views.
This commit is contained in:
4
mayan/apps/common/tests/literals.py
Normal file
4
mayan/apps/common/tests/literals.py
Normal file
@@ -0,0 +1,4 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
TEST_VIEW_NAME = 'test view name'
|
||||
TEST_VIEW_URL = 'test-view-url'
|
||||
@@ -1,10 +1,13 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.conf.urls import include, url
|
||||
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.http import HttpResponse
|
||||
from django.template import Context, Template
|
||||
from django.test import TestCase
|
||||
from django.test.client import Client
|
||||
|
||||
from permissions import Permission
|
||||
from permissions.models import Role
|
||||
@@ -14,9 +17,12 @@ from user_management.tests import (
|
||||
TEST_USER_EMAIL, TEST_USER_USERNAME, TEST_USER_PASSWORD
|
||||
)
|
||||
|
||||
from .literals import TEST_VIEW_NAME, TEST_VIEW_URL
|
||||
|
||||
|
||||
class GenericViewTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.has_test_view = False
|
||||
self.admin_user = get_user_model().objects.create_superuser(
|
||||
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL,
|
||||
password=TEST_ADMIN_PASSWORD
|
||||
@@ -34,11 +40,27 @@ class GenericViewTestCase(TestCase):
|
||||
Permission.invalidate_cache()
|
||||
|
||||
def tearDown(self):
|
||||
from mayan.urls import urlpatterns
|
||||
|
||||
self.admin_user.delete()
|
||||
self.client.logout()
|
||||
self.group.delete()
|
||||
self.role.delete()
|
||||
self.user.delete()
|
||||
if self.has_test_view:
|
||||
urlpatterns.pop(0)
|
||||
|
||||
def add_test_view(self, test_object):
|
||||
from mayan.urls import urlpatterns
|
||||
|
||||
def test_view(request):
|
||||
template = Template('{{ object }}')
|
||||
context = Context({'object': test_object})
|
||||
return HttpResponse(template.render(context=context))
|
||||
|
||||
urlpatterns.insert(0, url(TEST_VIEW_URL, test_view, name=TEST_VIEW_NAME))
|
||||
|
||||
self.has_test_view = True
|
||||
|
||||
def get(self, viewname, *args, **kwargs):
|
||||
data = kwargs.pop('data', {})
|
||||
|
||||
@@ -9,40 +9,27 @@ from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponse
|
||||
from django.template import Context, Template
|
||||
|
||||
from mayan.urls import urlpatterns
|
||||
|
||||
from acls.models import AccessControlList
|
||||
from common.tests.literals import TEST_VIEW_NAME
|
||||
from common.tests.test_views import GenericViewTestCase
|
||||
from permissions import Permission, PermissionNamespace
|
||||
from user_management.tests import TEST_USER_PASSWORD, TEST_USER_USERNAME
|
||||
|
||||
from ..classes import Link
|
||||
|
||||
TEST_OBJECT = None
|
||||
TEST_PERMISSION_NAMESPACE_NAME = 'test namespace name'
|
||||
TEST_PERMISSION_NAMESPACE_TEXT = 'test namespace text'
|
||||
TEST_PERMISSION_NAME = 'test permission name'
|
||||
TEST_PERMISSION_LABEL = 'test permission label'
|
||||
TEST_LINK_TEXT = 'test link text'
|
||||
TEST_VIEW_URL = 'test-view-url'
|
||||
TEST_VIEW_NAME = 'test view name'
|
||||
|
||||
|
||||
def test_view(request):
|
||||
template = Template('{{ object }}')
|
||||
context = Context({'object': TEST_OBJECT})
|
||||
return HttpResponse(template.render(context=context))
|
||||
|
||||
|
||||
urlpatterns += (url(TEST_VIEW_URL, test_view, name=TEST_VIEW_NAME),)
|
||||
|
||||
|
||||
class LinkClassTestCase(GenericViewTestCase):
|
||||
def setUp(self):
|
||||
super(LinkClassTestCase, self).setUp()
|
||||
|
||||
global TEST_OBJECT
|
||||
TEST_OBJECT = self.group
|
||||
self.add_test_view(test_object=self.group)
|
||||
|
||||
self.namespace = PermissionNamespace(
|
||||
TEST_PERMISSION_NAMESPACE_NAME, TEST_PERMISSION_NAMESPACE_TEXT
|
||||
@@ -113,7 +100,7 @@ class LinkClassTestCase(GenericViewTestCase):
|
||||
)
|
||||
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=TEST_OBJECT, role=self.role
|
||||
content_object=self.group, role=self.role
|
||||
)
|
||||
acl.permissions.add(self.permission.stored_permission)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user