Add test for the document version revert and document version download links. GL issue #230.
This commit is contained in:
95
mayan/apps/documents/tests/test_links.py
Normal file
95
mayan/apps/documents/tests/test_links.py
Normal file
@@ -0,0 +1,95 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.core.files import File
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from acls.models import AccessControlList
|
||||
from user_management.tests.literals import (
|
||||
TEST_USER_PASSWORD, TEST_USER_USERNAME
|
||||
)
|
||||
|
||||
from ..links import (
|
||||
link_document_version_download, link_document_version_revert
|
||||
)
|
||||
from ..permissions import (
|
||||
permission_document_download, permission_document_version_revert
|
||||
)
|
||||
|
||||
from .literals import TEST_SMALL_DOCUMENT_PATH
|
||||
from .test_views import GenericDocumentViewTestCase
|
||||
|
||||
|
||||
class DocumentsLinksTestCase(GenericDocumentViewTestCase):
|
||||
def test_document_version_revert_link_no_permission(self):
|
||||
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
|
||||
self.document.new_version(file_object=File(file_object))
|
||||
|
||||
self.assertTrue(self.document.versions.count(), 2)
|
||||
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
self.add_test_view(test_object=self.document.versions.first())
|
||||
context = self.get_test_view()
|
||||
resolved_link = link_document_version_revert.resolve(context=context)
|
||||
|
||||
self.assertEqual(resolved_link, None)
|
||||
|
||||
def test_document_version_revert_link_with_permission(self):
|
||||
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
|
||||
self.document.new_version(file_object=File(file_object))
|
||||
|
||||
self.assertTrue(self.document.versions.count(), 2)
|
||||
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document, role=self.role
|
||||
)
|
||||
acl.permissions.add(
|
||||
permission_document_version_revert.stored_permission
|
||||
)
|
||||
|
||||
self.add_test_view(test_object=self.document.versions.first())
|
||||
context = self.get_test_view()
|
||||
resolved_link = link_document_version_revert.resolve(context=context)
|
||||
|
||||
self.assertNotEqual(resolved_link, None)
|
||||
self.assertEqual(
|
||||
resolved_link.url,
|
||||
reverse(
|
||||
'documents:document_version_revert',
|
||||
args=(self.document.versions.first().pk,)
|
||||
)
|
||||
)
|
||||
|
||||
def test_document_version_download_link_no_permission(self):
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
self.add_test_view(test_object=self.document.latest_version)
|
||||
context = self.get_test_view()
|
||||
resolved_link = link_document_version_download.resolve(context=context)
|
||||
|
||||
self.assertEqual(resolved_link, None)
|
||||
|
||||
def test_document_version_download_link_with_permission(self):
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_document_download.stored_permission)
|
||||
|
||||
self.add_test_view(test_object=self.document.latest_version)
|
||||
context = self.get_test_view()
|
||||
resolved_link = link_document_version_download.resolve(context=context)
|
||||
|
||||
self.assertNotEqual(resolved_link, None)
|
||||
self.assertEqual(
|
||||
resolved_link.url,
|
||||
reverse(
|
||||
'documents:document_version_download',
|
||||
args=(self.document.latest_version.pk,)
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user