Add cabinet child view tests

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-04-29 15:17:19 -04:00
parent fda0dd4eaf
commit b4227a608b
3 changed files with 78 additions and 4 deletions

View File

@@ -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'

View File

@@ -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
}
)

View File

@@ -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(