Update document transformation links and views
Update the URL nomeclature for uniformity. Add document transformation link tests and improve the transformation view tests. Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
@@ -1,54 +1,45 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import time
|
||||
|
||||
from django.urls import reverse
|
||||
|
||||
from mayan.apps.converter.permissions import (
|
||||
permission_transformation_delete, permission_transformation_edit
|
||||
)
|
||||
|
||||
from ..links import (
|
||||
link_trashed_document_restore, link_document_version_download,
|
||||
link_document_version_revert
|
||||
link_document_transformations_clear, link_document_transformations_clone,
|
||||
link_document_version_revert, link_trashed_document_restore
|
||||
)
|
||||
from ..models import TrashedDocument
|
||||
from ..permissions import (
|
||||
permission_document_download, permission_trashed_document_restore,
|
||||
permission_document_version_revert
|
||||
permission_trashed_document_restore, permission_document_version_revert
|
||||
)
|
||||
|
||||
from .base import GenericDocumentViewTestCase
|
||||
from .literals import TEST_SMALL_DOCUMENT_PATH
|
||||
|
||||
|
||||
class DocumentsLinksTestCase(GenericDocumentViewTestCase):
|
||||
def test_document_version_revert_link_no_permission(self):
|
||||
with open(TEST_SMALL_DOCUMENT_PATH, mode='rb') as file_object:
|
||||
self.document.new_version(file_object=file_object)
|
||||
|
||||
self.assertTrue(self.document.versions.count(), 2)
|
||||
use_document_stub = False
|
||||
|
||||
def _resolve_document_version_revert_link(self):
|
||||
self.add_test_view(test_object=self.document.versions.first())
|
||||
context = self.get_test_view()
|
||||
resolved_link = link_document_version_revert.resolve(context=context)
|
||||
return link_document_version_revert.resolve(context=context)
|
||||
|
||||
def test_document_version_revert_link_no_permission(self):
|
||||
self._create_document_version()
|
||||
|
||||
resolved_link = self._resolve_document_version_revert_link()
|
||||
self.assertEqual(resolved_link, None)
|
||||
|
||||
def test_document_version_revert_link_with_access(self):
|
||||
# Needed by MySQL as milliseconds value is not store in timestamp
|
||||
# field
|
||||
time.sleep(1.01)
|
||||
|
||||
with open(TEST_SMALL_DOCUMENT_PATH, mode='rb') as file_object:
|
||||
self.document.new_version(file_object=file_object)
|
||||
|
||||
self.assertTrue(self.document.versions.count(), 2)
|
||||
self._create_document_version()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.document, permission=permission_document_version_revert
|
||||
)
|
||||
|
||||
self.add_test_view(test_object=self.document.versions.first())
|
||||
context = self.get_test_view()
|
||||
resolved_link = link_document_version_revert.resolve(context=context)
|
||||
|
||||
resolved_link = self._resolve_document_version_revert_link()
|
||||
self.assertNotEqual(resolved_link, None)
|
||||
self.assertEqual(
|
||||
resolved_link.url,
|
||||
@@ -58,34 +49,59 @@ class DocumentsLinksTestCase(GenericDocumentViewTestCase):
|
||||
)
|
||||
)
|
||||
|
||||
def test_document_version_download_link_no_permission(self):
|
||||
self.add_test_view(test_object=self.document.latest_version)
|
||||
def _resolve_document_transformations_clear_link(self):
|
||||
self.add_test_view(test_object=self.document)
|
||||
context = self.get_test_view()
|
||||
resolved_link = link_document_version_download.resolve(context=context)
|
||||
return link_document_transformations_clear.resolve(context=context)
|
||||
|
||||
def test_document_transformations_clone_link_no_permission(self):
|
||||
resolved_link = self._resolve_document_transformations_clear_link()
|
||||
self.assertEqual(resolved_link, None)
|
||||
|
||||
def test_document_version_download_link_with_access(self):
|
||||
def test_document_transformations_clone_link_with_access(self):
|
||||
self.grant_access(
|
||||
obj=self.document, permission=permission_document_download
|
||||
obj=self.document, permission=permission_transformation_delete
|
||||
)
|
||||
|
||||
self.add_test_view(test_object=self.document.latest_version)
|
||||
context = self.get_test_view()
|
||||
resolved_link = link_document_version_download.resolve(context=context)
|
||||
|
||||
resolved_link = self._resolve_document_transformations_clear_link()
|
||||
self.assertNotEqual(resolved_link, None)
|
||||
self.assertEqual(
|
||||
resolved_link.url,
|
||||
reverse(
|
||||
viewname='documents:document_version_download_form',
|
||||
kwargs={'document_version_id': self.document.latest_version.pk}
|
||||
viewname='documents:document_transformations_clear',
|
||||
kwargs={'document_id': self.document.pk}
|
||||
)
|
||||
)
|
||||
|
||||
def _resolve_document_transformations_clone_link(self):
|
||||
self.add_test_view(test_object=self.document)
|
||||
context = self.get_test_view()
|
||||
return link_document_transformations_clone.resolve(context=context)
|
||||
|
||||
def test_document_transformations_clone_link_no_permission(self):
|
||||
resolved_link = self._resolve_document_transformations_clone_link()
|
||||
self.assertEqual(resolved_link, None)
|
||||
|
||||
def test_document_transformations_clone_link_with_access(self):
|
||||
self.grant_access(
|
||||
obj=self.document, permission=permission_transformation_edit
|
||||
)
|
||||
|
||||
resolved_link = self._resolve_document_transformations_clone_link()
|
||||
self.assertNotEqual(resolved_link, None)
|
||||
self.assertEqual(
|
||||
resolved_link.url,
|
||||
reverse(
|
||||
viewname='documents:document_transformations_clone',
|
||||
kwargs={'document_id': self.document.pk}
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class DeletedDocumentsLinksTestCase(GenericDocumentViewTestCase):
|
||||
def _request_trashed_document_restore_link(self):
|
||||
use_document_stub = True
|
||||
|
||||
def _resolve_trashed_document_restore_link(self):
|
||||
self.add_test_view(
|
||||
test_object=TrashedDocument.objects.get(pk=self.document.pk)
|
||||
)
|
||||
@@ -95,7 +111,7 @@ class DeletedDocumentsLinksTestCase(GenericDocumentViewTestCase):
|
||||
def test_deleted_document_restore_link_no_permission(self):
|
||||
self.document.delete()
|
||||
|
||||
resolved_link = self._request_trashed_document_restore_link()
|
||||
resolved_link = self._resolve_trashed_document_restore_link()
|
||||
|
||||
self.assertEqual(resolved_link, None)
|
||||
|
||||
@@ -106,7 +122,7 @@ class DeletedDocumentsLinksTestCase(GenericDocumentViewTestCase):
|
||||
obj=self.document, permission=permission_trashed_document_restore
|
||||
)
|
||||
|
||||
resolved_link = self._request_trashed_document_restore_link()
|
||||
resolved_link = self._resolve_trashed_document_restore_link()
|
||||
|
||||
self.assertNotEqual(resolved_link, None)
|
||||
self.assertEqual(
|
||||
|
||||
Reference in New Issue
Block a user