Add workflow runtime link tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
142
mayan/apps/document_states/tests/test_links.py
Normal file
142
mayan/apps/document_states/tests/test_links.py
Normal file
@@ -0,0 +1,142 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.urls import reverse
|
||||
|
||||
from mayan.apps.documents.tests.base import GenericDocumentViewTestCase
|
||||
|
||||
from ..links import (
|
||||
link_workflow_runtime_proxy_document_list,
|
||||
link_workflow_runtime_proxy_list,
|
||||
link_workflow_runtime_proxy_state_document_list,
|
||||
link_workflow_runtime_proxy_state_list,
|
||||
)
|
||||
from ..permissions import permission_workflow_view
|
||||
|
||||
from .mixins import WorkflowTestMixin
|
||||
|
||||
|
||||
class WorkflowRuntimeProxyLinkTestCase(
|
||||
WorkflowTestMixin, GenericDocumentViewTestCase
|
||||
):
|
||||
def _resolve_test_link(self, test_object=None):
|
||||
self.add_test_view(test_object=test_object)
|
||||
context = self.get_test_view()
|
||||
self.resolved_test_link = self.test_link.resolve(context=context)
|
||||
|
||||
def test_workflow_runtime_proxy_document_list_link_no_permission(self):
|
||||
self.test_link = link_workflow_runtime_proxy_document_list
|
||||
|
||||
self._create_test_workflow(add_document_type=True)
|
||||
|
||||
self._resolve_test_link(test_object=self.test_workflow)
|
||||
|
||||
self.assertEqual(self.resolved_test_link, None)
|
||||
|
||||
def test_workflow_runtime_proxy_document_list_link_with_access(self):
|
||||
self.test_link = link_workflow_runtime_proxy_document_list
|
||||
|
||||
self._create_test_workflow(add_document_type=True)
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_workflow, permission=permission_workflow_view
|
||||
)
|
||||
|
||||
self._resolve_test_link(test_object=self.test_workflow)
|
||||
|
||||
self.assertNotEqual(self.resolved_test_link, None)
|
||||
self.assertEqual(
|
||||
self.resolved_test_link.url,
|
||||
reverse(
|
||||
viewname=self.test_link.view, kwargs={
|
||||
'pk': self.test_workflow.pk
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
def test_workflow_runtime_proxy_link_no_permission(self):
|
||||
self.test_link = link_workflow_runtime_proxy_list
|
||||
|
||||
self._create_test_workflow(add_document_type=True)
|
||||
|
||||
self._resolve_test_link()
|
||||
self.assertEqual(self.resolved_test_link, None)
|
||||
|
||||
def test_workflow_runtime_proxy_link_with_access(self):
|
||||
self.test_link = link_workflow_runtime_proxy_list
|
||||
|
||||
self._create_test_workflow(add_document_type=True)
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_workflow, permission=permission_workflow_view
|
||||
)
|
||||
|
||||
self._resolve_test_link()
|
||||
|
||||
self.assertNotEqual(self.resolved_test_link, None)
|
||||
self.assertEqual(
|
||||
self.resolved_test_link.url,
|
||||
reverse(
|
||||
viewname=self.test_link.view,
|
||||
)
|
||||
)
|
||||
|
||||
def test_workflow_runtime_proxy_state_document_list_link_no_permission(self):
|
||||
self.test_link = link_workflow_runtime_proxy_state_document_list
|
||||
|
||||
self._create_test_workflow(add_document_type=True)
|
||||
self._create_test_workflow_state()
|
||||
|
||||
self._resolve_test_link(test_object=self.test_workflow_state)
|
||||
|
||||
self.assertEqual(self.resolved_test_link, None)
|
||||
|
||||
def test_workflow_runtime_proxy_state_document_list_link_with_access(self):
|
||||
self.test_link = link_workflow_runtime_proxy_state_document_list
|
||||
|
||||
self._create_test_workflow(add_document_type=True)
|
||||
self._create_test_workflow_state()
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_workflow, permission=permission_workflow_view
|
||||
)
|
||||
|
||||
self._resolve_test_link(test_object=self.test_workflow_state)
|
||||
|
||||
self.assertNotEqual(self.resolved_test_link, None)
|
||||
self.assertEqual(
|
||||
self.resolved_test_link.url,
|
||||
reverse(
|
||||
viewname=self.test_link.view, kwargs={
|
||||
'pk': self.test_workflow_state.pk
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
def test_workflow_runtime_proxy_state_list_link_no_permission(self):
|
||||
self.test_link = link_workflow_runtime_proxy_state_list
|
||||
|
||||
self._create_test_workflow(add_document_type=True)
|
||||
|
||||
self._resolve_test_link(test_object=self.test_workflow)
|
||||
self.assertEqual(self.resolved_test_link, None)
|
||||
|
||||
def test_workflow_runtime_proxy_state_list_link_with_access(self):
|
||||
self.test_link = link_workflow_runtime_proxy_state_list
|
||||
|
||||
self._create_test_workflow(add_document_type=True)
|
||||
|
||||
self.grant_access(
|
||||
obj=self.test_workflow, permission=permission_workflow_view
|
||||
)
|
||||
|
||||
self._resolve_test_link(test_object=self.test_workflow)
|
||||
|
||||
self.assertNotEqual(self.resolved_test_link, None)
|
||||
self.assertEqual(
|
||||
self.resolved_test_link.url,
|
||||
reverse(
|
||||
viewname=self.test_link.view, kwargs={
|
||||
'pk': self.test_workflow.pk
|
||||
}
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user