diff --git a/mayan/apps/common/tests/literals.py b/mayan/apps/common/tests/literals.py new file mode 100644 index 0000000000..028cd26cda --- /dev/null +++ b/mayan/apps/common/tests/literals.py @@ -0,0 +1,4 @@ +from __future__ import unicode_literals + +TEST_VIEW_NAME = 'test view name' +TEST_VIEW_URL = 'test-view-url' diff --git a/mayan/apps/common/tests/test_views.py b/mayan/apps/common/tests/test_views.py index a55d4c8fd0..bcf52a4db3 100644 --- a/mayan/apps/common/tests/test_views.py +++ b/mayan/apps/common/tests/test_views.py @@ -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', {}) diff --git a/mayan/apps/navigation/tests/test_classes.py b/mayan/apps/navigation/tests/test_classes.py index 2e3b5bfc18..0e0aeb557a 100644 --- a/mayan/apps/navigation/tests/test_classes.py +++ b/mayan/apps/navigation/tests/test_classes.py @@ -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)