From 042745e0ca8f03e4659969a8c54591ef09ff5c5d Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 23 Apr 2019 04:18:17 -0400 Subject: [PATCH] Add document state action view test Signed-off-by: Roberto Rosario --- HISTORY.rst | 2 + docs/releases/3.2.rst | 1 + mayan/apps/document_states/tests/mixins.py | 16 +++++++ .../tests/test_workflow_state_action_views.py | 42 +++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 mayan/apps/document_states/tests/test_workflow_state_action_views.py diff --git a/HISTORY.rst b/HISTORY.rst index 0e1859d991..046af43645 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -121,6 +121,8 @@ * Update OCR links activation. * Update document parsing link activation. * Add favorite document views tests. +* Add document state action view test. + 3.1.11 (2019-04-XX) =================== * Fix multiple tag selection wizard step. diff --git a/docs/releases/3.2.rst b/docs/releases/3.2.rst index e691bfd948..d7a12b1643 100644 --- a/docs/releases/3.2.rst +++ b/docs/releases/3.2.rst @@ -153,6 +153,7 @@ Other changes * Update OCR links activation. * Update document parsing link activation. * Add favorite document views tests. +* Add document state action view test. Removals -------- diff --git a/mayan/apps/document_states/tests/mixins.py b/mayan/apps/document_states/tests/mixins.py index 2911a948e4..eb1d5c9cdb 100644 --- a/mayan/apps/document_states/tests/mixins.py +++ b/mayan/apps/document_states/tests/mixins.py @@ -1,5 +1,6 @@ from __future__ import unicode_literals +from ..classes import WorkflowAction from ..models import Workflow from .literals import ( @@ -11,6 +12,21 @@ from .literals import ( ) +class TestWorkflowAction(WorkflowAction): + label = 'test workflow state action' + + +class WorkflowStateActionTestMixin(object): + TestWorkflowAction = TestWorkflowAction + test_workflow_state_action_path = 'mayan.apps.document_states.tests.mixins.TestWorkflowAction' + + def _create_test_workflow_state_action(self): + self.test_workflow_state.actions.create( + label=self.TestWorkflowAction.label, + action_path=self.test_workflow_state_action_path + ) + + class WorkflowTestMixin(object): def _create_test_workflow(self, add_document_type=False): self.test_workflow = Workflow.objects.create( diff --git a/mayan/apps/document_states/tests/test_workflow_state_action_views.py b/mayan/apps/document_states/tests/test_workflow_state_action_views.py new file mode 100644 index 0000000000..e79853fd90 --- /dev/null +++ b/mayan/apps/document_states/tests/test_workflow_state_action_views.py @@ -0,0 +1,42 @@ +from __future__ import unicode_literals + +from mayan.apps.common.tests import GenericViewTestCase + +from ..permissions import permission_workflow_edit + +from .mixins import WorkflowStateActionTestMixin, WorkflowTestMixin + + +class WorkflowStateActionViewTestCase(WorkflowStateActionTestMixin, WorkflowTestMixin, GenericViewTestCase): + def setUp(self): + super(WorkflowStateActionViewTestCase, self).setUp() + self._create_test_workflow() + self._create_test_workflow_state() + + def _request_test_document_state_action_view(self): + return self.get( + viewname='document_states:setup_workflow_state_action_list', + kwargs={'pk': self.test_workflow_state.pk} + ) + + def test_workflow_state_action_list_view_no_permission(self): + self._create_test_workflow_state_action() + + response = self._request_test_document_state_action_view() + self.assertNotContains( + response=response, text=self.TestWorkflowAction.label, + status_code=200 + ) + + def test_workflow_state_action_list_view_with_access(self): + self._create_test_workflow_state_action() + + self.grant_access( + obj=self.test_workflow, permission=permission_workflow_edit + ) + + response = self._request_test_document_state_action_view() + self.assertContains( + response=response, text=self.TestWorkflowAction.label, + status_code=200 + )