From b4227a608b94dea617688e8ad1360ad5a8a0b5fc Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 29 Apr 2019 15:17:19 -0400 Subject: [PATCH] Add cabinet child view tests Signed-off-by: Roberto Rosario --- mayan/apps/cabinets/tests/literals.py | 1 + mayan/apps/cabinets/tests/mixins.py | 23 +++++++++- mayan/apps/cabinets/tests/test_views.py | 58 +++++++++++++++++++++++-- 3 files changed, 78 insertions(+), 4 deletions(-) diff --git a/mayan/apps/cabinets/tests/literals.py b/mayan/apps/cabinets/tests/literals.py index cc8bab69ab..49a0661919 100644 --- a/mayan/apps/cabinets/tests/literals.py +++ b/mayan/apps/cabinets/tests/literals.py @@ -2,3 +2,4 @@ from __future__ import absolute_import, unicode_literals TEST_CABINET_LABEL = 'test cabinet label' TEST_CABINET_EDITED_LABEL = 'test cabinet edited label' +TEST_CABINET_CHILD_LABEL = 'test cabinet child label' diff --git a/mayan/apps/cabinets/tests/mixins.py b/mayan/apps/cabinets/tests/mixins.py index 1f8d846c92..6ac9d9d1a8 100644 --- a/mayan/apps/cabinets/tests/mixins.py +++ b/mayan/apps/cabinets/tests/mixins.py @@ -2,9 +2,30 @@ from __future__ import unicode_literals from ..models import Cabinet -from .literals import TEST_CABINET_LABEL +from .literals import TEST_CABINET_LABEL, TEST_CABINET_CHILD_LABEL class CabinetTestMixin(object): def _create_test_cabinet(self): self.test_cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + def _create_test_cabinet_child(self): + self.test_cabinet_child = Cabinet.objects.create( + label=TEST_CABINET_CHILD_LABEL, parent=self.test_cabinet + ) + + +class CabinetViewTestMixin(object): + def _request_test_cabinet_child_create_view(self): + return self.post( + viewname='cabinets:cabinet_child_add', kwargs={ + 'pk': self.test_cabinet.pk + }, data={'label': TEST_CABINET_CHILD_LABEL} + ) + + def _request_test_cabinet_child_delete_view(self): + return self.post( + viewname='cabinets:cabinet_delete', kwargs={ + 'pk': self.test_cabinet_child.pk + } + ) diff --git a/mayan/apps/cabinets/tests/test_views.py b/mayan/apps/cabinets/tests/test_views.py index 27ef31208b..8010e30b33 100644 --- a/mayan/apps/cabinets/tests/test_views.py +++ b/mayan/apps/cabinets/tests/test_views.py @@ -10,7 +10,7 @@ from ..permissions import ( permission_cabinet_remove_document, permission_cabinet_view ) from .literals import TEST_CABINET_LABEL, TEST_CABINET_EDITED_LABEL -from .mixins import CabinetTestMixin +from .mixins import CabinetTestMixin, CabinetViewTestMixin class CabinetViewTestCase(CabinetTestMixin, GenericViewTestCase): @@ -64,7 +64,9 @@ class CabinetViewTestCase(CabinetTestMixin, GenericViewTestCase): def test_cabinet_delete_view_with_access(self): self._create_test_cabinet() - self.grant_access(obj=self.test_cabinet, permission=permission_cabinet_delete) + self.grant_access( + obj=self.test_cabinet, permission=permission_cabinet_delete + ) response = self._request_delete_cabinet() self.assertEqual(response.status_code, 302) @@ -92,7 +94,9 @@ class CabinetViewTestCase(CabinetTestMixin, GenericViewTestCase): def test_cabinet_edit_view_with_access(self): self._create_test_cabinet() - self.grant_access(obj=self.test_cabinet, permission=permission_cabinet_edit) + self.grant_access( + obj=self.test_cabinet, permission=permission_cabinet_edit + ) response = self._request_edit_cabinet() self.assertEqual(response.status_code, 302) @@ -101,6 +105,54 @@ class CabinetViewTestCase(CabinetTestMixin, GenericViewTestCase): self.assertEqual(self.test_cabinet.label, TEST_CABINET_EDITED_LABEL) +class CabinetChildViewTestCase(CabinetTestMixin, CabinetViewTestMixin, GenericViewTestCase): + def setUp(self): + super(CabinetChildViewTestCase, self).setUp() + self._create_test_cabinet() + + def test_cabinet_child_create_view_no_permission(self): + cabinet_count = Cabinet.objects.count() + + response = self._request_test_cabinet_child_create_view() + self.assertEqual(response.status_code, 403) + + self.assertEqual(Cabinet.objects.count(), cabinet_count) + + def test_cabinet_child_create_view_with_access(self): + self.grant_access( + obj=self.test_cabinet, permission=permission_cabinet_edit + ) + cabinet_count = Cabinet.objects.count() + + response = self._request_test_cabinet_child_create_view() + self.assertEqual(response.status_code, 302) + + self.assertEqual(Cabinet.objects.count(), cabinet_count + 1) + + def test_cabinet_child_delete_view_no_permission(self): + self._create_test_cabinet_child() + + cabinet_count = Cabinet.objects.count() + + response = self._request_test_cabinet_child_delete_view() + self.assertEqual(response.status_code, 403) + + self.assertEqual(Cabinet.objects.count(), cabinet_count) + + def test_cabinet_child_delete_view_with_access(self): + self._create_test_cabinet_child() + self.grant_access( + obj=self.test_cabinet, permission=permission_cabinet_delete + ) + + cabinet_count = Cabinet.objects.count() + + response = self._request_test_cabinet_child_delete_view() + self.assertEqual(response.status_code, 302) + + self.assertEqual(Cabinet.objects.count(), cabinet_count - 1) + + class CabinetDocumentViewTestCase(CabinetTestMixin, GenericDocumentViewTestCase): def _add_document_to_cabinet(self): return self.post(