Files
mayan-edms/mayan/apps/document_states/tests/test_workflow_views.py
Roberto Rosario 8811c8269f Rename document states apps view and URLs.
Object layout: WorkflowTemplate, WorkflowInstance, WorkflowRuntimeProxy,
WorkflowTemplateState, WorkflowTemplateTransition.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:21:58 -04:00

146 lines
5.0 KiB
Python

from __future__ import unicode_literals
from mayan.apps.common.tests import GenericViewTestCase
from mayan.apps.documents.tests import GenericDocumentViewTestCase
from ..models import Workflow
from ..permissions import (
permission_workflow_create, permission_workflow_delete,
permission_workflow_edit, permission_workflow_view,
permission_workflow_tools
)
from .literals import TEST_WORKFLOW_LABEL, TEST_WORKFLOW_LABEL_EDITED
from .mixins import WorkflowTestMixin, WorkflowViewTestMixin
class WorkflowViewTestCase(
WorkflowTestMixin, WorkflowViewTestMixin, GenericViewTestCase
):
def test_workflow_create_view_no_permission(self):
response = self._request_test_workflow_create_view()
self.assertEqual(response.status_code, 403)
self.assertEqual(Workflow.objects.count(), 0)
def test_workflow_create_view_with_permission(self):
self.grant_permission(permission=permission_workflow_create)
response = self._request_test_workflow_create_view()
self.assertEqual(response.status_code, 302)
self.assertEqual(Workflow.objects.count(), 1)
self.assertEqual(Workflow.objects.all()[0].label, TEST_WORKFLOW_LABEL)
def test_workflow_delete_view_no_access(self):
self._create_test_workflow()
response = self._request_test_workflow_delete_view()
self.assertEqual(response.status_code, 404)
self.assertTrue(self.test_workflow in Workflow.objects.all())
def test_workflow_delete_view_with_access(self):
self._create_test_workflow()
self.grant_access(
obj=self.test_workflow, permission=permission_workflow_delete
)
response = self._request_test_workflow_delete_view()
self.assertEqual(response.status_code, 302)
self.assertFalse(self.test_workflow in Workflow.objects.all())
def test_workflow_edit_view_no_access(self):
self._create_test_workflow()
response = self._request_test_workflow_edit_view()
self.assertEqual(response.status_code, 404)
self.test_workflow.refresh_from_db()
self.assertEqual(self.test_workflow.label, TEST_WORKFLOW_LABEL)
def test_workflow_edit_view_with_access(self):
self._create_test_workflow()
self.grant_access(
obj=self.test_workflow, permission=permission_workflow_edit
)
response = self._request_test_workflow_edit_view()
self.assertEqual(response.status_code, 302)
self.test_workflow.refresh_from_db()
self.assertEqual(self.test_workflow.label, TEST_WORKFLOW_LABEL_EDITED)
def test_workflow_list_view_no_access(self):
self._create_test_workflow()
response = self._request_test_workflow_list_view()
self.assertEqual(response.status_code, 200)
self.assertNotContains(response, text=self.test_workflow.label)
def test_workflow_list_view_with_access(self):
self._create_test_workflow()
self.grant_access(
obj=self.test_workflow, permission=permission_workflow_view
)
response = self._request_test_workflow_list_view()
self.assertEqual(response.status_code, 200)
self.assertContains(response, text=self.test_workflow.label)
def test_workflow_template_preview_view_no_access(self):
self._create_test_workflow()
response = self._request_test_workflow_template_preview_view()
self.assertEqual(response.status_code, 404)
self.assertTrue(self.test_workflow in Workflow.objects.all())
def test_workflow_template_preview_view_with_access(self):
self._create_test_workflow()
self.grant_access(
obj=self.test_workflow, permission=permission_workflow_view
)
response = self._request_test_workflow_template_preview_view()
self.assertEqual(response.status_code, 200)
class WorkflowToolViewTestCase(WorkflowTestMixin, GenericDocumentViewTestCase):
def _request_workflow_launch_view(self):
return self.post(
viewname='document_states:tool_launch_workflows',
)
def test_tool_launch_workflows_view_no_permission(self):
self._create_test_workflow(add_document_type=True)
self._create_test_workflow_states()
self._create_test_workflow_transition()
self.assertEqual(self.test_document.workflows.count(), 0)
response = self._request_workflow_launch_view()
self.assertEqual(response.status_code, 403)
self.assertEqual(self.test_document.workflows.count(), 0)
def test_tool_launch_workflows_view_with_permission(self):
self._create_test_workflow(add_document_type=True)
self._create_test_workflow_states()
self._create_test_workflow_transition()
self.grant_permission(permission=permission_workflow_tools)
self.assertEqual(self.test_document.workflows.count(), 0)
response = self._request_workflow_launch_view()
self.assertEqual(response.status_code, 302)
self.assertEqual(
self.test_document.workflows.first().workflow, self.test_workflow
)