Split document.tests.test_views.

Signed-off-by: Michael Price <loneviking72@gmail.com>
This commit is contained in:
Michael Price
2018-03-13 03:03:33 -04:00
committed by Roberto Rosario
parent 77777deec5
commit 96836065a8
30 changed files with 622 additions and 559 deletions

View File

@@ -1 +1,2 @@
from .base import GenericDocumentViewTestCase # NOQA
from .literals import * # NOQA

View File

@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.test import override_settings
from common.tests.test_views import GenericViewTestCase
from ..models import DocumentType
from .literals import (
TEST_DOCUMENT_TYPE_LABEL, TEST_SMALL_DOCUMENT_FILENAME,
TEST_SMALL_DOCUMENT_PATH,
)
@override_settings(OCR_AUTO_OCR=False)
class GenericDocumentViewTestCase(GenericViewTestCase):
test_document_filename = TEST_SMALL_DOCUMENT_FILENAME
def setUp(self):
super(GenericDocumentViewTestCase, self).setUp()
self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE_LABEL
)
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
self.document = self.document_type.new_document(
file_object=file_object, label=self.test_document_filename
)
def tearDown(self):
if self.document_type.pk:
self.document_type.delete()
super(GenericDocumentViewTestCase, self).tearDown()

View File

@@ -0,0 +1,109 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from ..models import DeletedDocument, Document
from ..permissions import (
permission_document_delete, permission_document_restore,
permission_document_trash, permission_document_view
)
from .base import GenericDocumentViewTestCase
class DeletedDocumentTestCase(GenericDocumentViewTestCase):
def setUp(self):
super(DeletedDocumentTestCase, self).setUp()
self.login_user()
def test_document_restore_view_no_permission(self):
self.document.delete()
self.assertEqual(Document.objects.count(), 0)
response = self.post(
'documents:document_restore', args=(self.document.pk,)
)
self.assertEqual(response.status_code, 403)
self.assertEqual(DeletedDocument.objects.count(), 1)
self.assertEqual(Document.objects.count(), 0)
def test_document_restore_view_with_access(self):
self.document.delete()
self.assertEqual(Document.objects.count(), 0)
self.grant_access(
obj=self.document, permission=permission_document_restore
)
response = self.post(
'documents:document_restore', args=(self.document.pk,),
)
self.assertEqual(response.status_code, 302)
self.assertEqual(DeletedDocument.objects.count(), 0)
self.assertEqual(Document.objects.count(), 1)
def test_document_trash_no_permissions(self):
response = self.post(
'documents:document_trash', args=(self.document.pk,)
)
self.assertEqual(response.status_code, 403)
self.assertEqual(DeletedDocument.objects.count(), 0)
self.assertEqual(Document.objects.count(), 1)
def test_document_trash_with_access(self):
self.grant_access(
obj=self.document, permission=permission_document_trash
)
response = self.post(
'documents:document_trash', args=(self.document.pk,),
)
self.assertEqual(response.status_code, 302)
self.assertEqual(DeletedDocument.objects.count(), 1)
self.assertEqual(Document.objects.count(), 0)
def test_document_delete_no_permissions(self):
self.document.delete()
self.assertEqual(Document.objects.count(), 0)
self.assertEqual(DeletedDocument.objects.count(), 1)
response = self.post(
'documents:document_delete', args=(self.document.pk,),
)
self.assertEqual(response.status_code, 403)
self.assertEqual(Document.objects.count(), 0)
self.assertEqual(DeletedDocument.objects.count(), 1)
def test_document_delete_with_access(self):
self.document.delete()
self.assertEqual(Document.objects.count(), 0)
self.assertEqual(DeletedDocument.objects.count(), 1)
self.grant_access(
obj=self.document, permission=permission_document_delete
)
response = self.post(
'documents:document_delete', args=(self.document.pk,),
)
self.assertEqual(response.status_code, 302)
self.assertEqual(DeletedDocument.objects.count(), 0)
self.assertEqual(Document.objects.count(), 0)
def test_deleted_document_list_view_no_permissions(self):
self.document.delete()
response = self.get('documents:document_list_deleted')
self.assertNotContains(response, self.document.label, status_code=200)
def test_deleted_document_list_view_with_access(self):
self.document.delete()
self.grant_access(
obj=self.document, permission=permission_document_view
)
response = self.get('documents:document_list_deleted')
self.assertContains(response, self.document.label, status_code=200)

View File

@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from ..permissions import permission_document_view
from .base import GenericDocumentViewTestCase
class DocumentPageViewTestCase(GenericDocumentViewTestCase):
def setUp(self):
super(DocumentPageViewTestCase, self).setUp()
self.login_user()
def _document_page_list_view(self):
return self.get(
'documents:document_pages', args=(self.document.pk,)
)
def test_document_page_list_view_no_permission(self):
response = self._document_page_list_view()
self.assertEqual(response.status_code, 403)
def test_document_page_list_view_with_access(self):
self.grant_access(
obj=self.document, permission=permission_document_view
)
response = self._document_page_list_view()
self.assertContains(
response, text=self.document.label, status_code=200
)

View File

@@ -0,0 +1,244 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from ..literals import (
DEFAULT_DELETE_PERIOD, DEFAULT_DELETE_TIME_UNIT
)
from ..models import Document, DocumentType
from ..permissions import (
permission_document_type_create, permission_document_type_delete,
permission_document_type_edit, permission_document_type_view,
)
from .base import GenericDocumentViewTestCase
from .literals import (
TEST_DOCUMENT_TYPE_LABEL, TEST_DOCUMENT_TYPE_LABEL_EDITED,
TEST_DOCUMENT_TYPE_QUICK_LABEL, TEST_DOCUMENT_TYPE_QUICK_LABEL_EDITED
)
class DocumentTypeViewsTestCase(GenericDocumentViewTestCase):
def setUp(self):
super(DocumentTypeViewsTestCase, self).setUp()
self.login_user()
def _request_document_type_create(self):
return self.post(
'documents:document_type_create',
data={
'label': TEST_DOCUMENT_TYPE_LABEL,
'delete_time_period': DEFAULT_DELETE_PERIOD,
'delete_time_unit': DEFAULT_DELETE_TIME_UNIT
}, follow=True
)
def test_document_type_create_view_no_permission(self):
self.document_type.delete()
self.assertEqual(Document.objects.count(), 0)
# Grant the document type view permission so that the post create
# redirect works
self.grant_permission(permission=permission_document_type_view)
self._request_document_type_create()
self.assertEqual(DocumentType.objects.count(), 0)
def test_document_type_create_view_with_permission(self):
self.document_type.delete()
self.assertEqual(Document.objects.count(), 0)
self.grant_permission(permission=permission_document_type_create)
# Grant the document type view permission so that the post create
# redirect works
self.grant_permission(permission=permission_document_type_view)
response = self._request_document_type_create()
self.assertContains(response, text='successfully', status_code=200)
self.assertEqual(DocumentType.objects.count(), 1)
self.assertEqual(
DocumentType.objects.first().label, TEST_DOCUMENT_TYPE_LABEL
)
def _request_document_type_delete(self):
return self.post(
'documents:document_type_delete',
args=(self.document_type.pk,), follow=True
)
def test_document_type_delete_view_no_permission(self):
# Grant the document type view permission so that the post delete
# redirect works
self.grant_permission(permission=permission_document_type_view)
self._request_document_type_delete()
self.assertEqual(DocumentType.objects.count(), 1)
def test_document_type_delete_view_with_access(self):
self.grant_access(
obj=self.document_type, permission=permission_document_type_delete
)
# Grant the document type view permission so that the post delete
# redirect works
self.grant_permission(permission=permission_document_type_view)
response = self._request_document_type_delete()
self.assertContains(response, 'successfully', status_code=200)
self.assertEqual(DocumentType.objects.count(), 0)
def _request_document_type_edit(self):
return self.post(
'documents:document_type_edit',
args=(self.document_type.pk,),
data={
'label': TEST_DOCUMENT_TYPE_LABEL_EDITED,
'delete_time_period': DEFAULT_DELETE_PERIOD,
'delete_time_unit': DEFAULT_DELETE_TIME_UNIT
}, follow=True
)
def test_document_type_edit_view_no_permission(self):
self._request_document_type_edit()
self.assertEqual(
DocumentType.objects.get(pk=self.document_type.pk).label,
TEST_DOCUMENT_TYPE_LABEL
)
def test_document_type_edit_view_with_access(self):
self.grant_access(
obj=self.document_type, permission=permission_document_type_edit
)
# Grant the document type view permission so that the post delete
# redirect works
self.grant_permission(permission=permission_document_type_view)
response = self._request_document_type_edit()
self.assertContains(response, 'successfully', status_code=200)
self.assertEqual(
DocumentType.objects.get(pk=self.document_type.pk).label,
TEST_DOCUMENT_TYPE_LABEL_EDITED
)
def _request_quick_label_create(self):
return self.post(
'documents:document_type_filename_create',
args=(self.document_type.pk,),
data={
'filename': TEST_DOCUMENT_TYPE_QUICK_LABEL,
}
)
def test_document_type_quick_label_create_no_permission(self):
self.grant_access(
obj=self.document_type, permission=permission_document_type_view
)
response = self._request_quick_label_create()
self.assertEqual(response.status_code, 403)
self.assertEqual(self.document_type.filenames.count(), 0)
def test_document_type_quick_label_create_with_access(self):
self.grant_access(
obj=self.document_type, permission=permission_document_type_view
)
self.grant_access(
obj=self.document_type, permission=permission_document_type_edit
)
response = self._request_quick_label_create()
self.assertEqual(response.status_code, 302)
self.assertEqual(self.document_type.filenames.count(), 1)
def _create_quick_label(self):
self.document_type_filename = self.document_type.filenames.create(
filename=TEST_DOCUMENT_TYPE_QUICK_LABEL
)
def _request_quick_label_edit(self):
return self.post(
'documents:document_type_filename_edit',
args=(self.document_type_filename.pk,),
data={
'filename': TEST_DOCUMENT_TYPE_QUICK_LABEL_EDITED,
}, follow=True
)
def test_document_type_quick_label_edit_no_permission(self):
self._create_quick_label()
self.grant_access(
obj=self.document_type, permission=permission_document_type_view
)
response = self._request_quick_label_edit()
self.assertEqual(response.status_code, 403)
self.assertEqual(
self.document_type_filename.filename,
TEST_DOCUMENT_TYPE_QUICK_LABEL
)
def test_document_type_quick_label_edit_with_access(self):
self.grant_access(
obj=self.document_type, permission=permission_document_type_edit
)
self.grant_access(
obj=self.document_type, permission=permission_document_type_view
)
self._create_quick_label()
response = self._request_quick_label_edit()
self.assertEqual(response.status_code, 200)
self.document_type_filename.refresh_from_db()
self.assertEqual(
self.document_type_filename.filename,
TEST_DOCUMENT_TYPE_QUICK_LABEL_EDITED
)
def _request_quick_label_delete(self):
return self.post(
'documents:document_type_filename_delete',
args=(self.document_type_filename.pk,),
follow=True
)
def test_document_type_quick_label_delete_no_permission(self):
self._create_quick_label()
self.grant_access(
obj=self.document_type, permission=permission_document_type_view
)
self._request_quick_label_delete()
self.assertEqual(
self.document_type.filenames.count(), 1
)
self.assertEqual(
self.document_type.filenames.first().filename,
TEST_DOCUMENT_TYPE_QUICK_LABEL
)
def test_document_type_quick_label_delete_with_access(self):
self.grant_access(
obj=self.document_type, permission=permission_document_type_edit
)
self.grant_access(
obj=self.document_type, permission=permission_document_type_view
)
self._create_quick_label()
response = self._request_quick_label_delete()
self.assertEqual(response.status_code, 200)
self.assertEqual(
self.document_type.filenames.count(), 0
)

View File

@@ -0,0 +1,80 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from ..permissions import (
permission_document_version_revert, permission_document_version_view,
)
from .base import GenericDocumentViewTestCase
from .literals import (
TEST_SMALL_DOCUMENT_PATH, TEST_VERSION_COMMENT
)
class DocumentVersionTestCase(GenericDocumentViewTestCase):
def setUp(self):
super(DocumentVersionTestCase, self).setUp()
self.login_user()
def test_document_version_list_no_permission(self):
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
self.document.new_version(
comment=TEST_VERSION_COMMENT, file_object=file_object
)
response = self.get(
'documents:document_version_list', args=(self.document.pk,)
)
self.assertEqual(response.status_code, 403)
def test_document_version_list_with_access(self):
self.grant_access(
obj=self.document, permission=permission_document_version_view
)
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
self.document.new_version(
comment=TEST_VERSION_COMMENT, file_object=file_object
)
response = self.get(
'documents:document_version_list', args=(self.document.pk,)
)
self.assertContains(response, TEST_VERSION_COMMENT, status_code=200)
def test_document_version_revert_no_permission(self):
first_version = self.document.latest_version
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
self.document.new_version(
file_object=file_object
)
response = self.post(
'documents:document_version_revert', args=(first_version.pk,)
)
self.assertEqual(response.status_code, 403)
self.assertEqual(self.document.versions.count(), 2)
def test_document_version_revert_with_access(self):
first_version = self.document.latest_version
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
self.document.new_version(
file_object=file_object
)
self.grant_access(
obj=self.document, permission=permission_document_version_revert
)
response = self.post(
'documents:document_version_revert', args=(first_version.pk,),
)
self.assertEqual(response.status_code, 302)
self.assertEqual(self.document.versions.count(), 1)

View File

@@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from ..permissions import permission_document_view
from .base import GenericDocumentViewTestCase
from .literals import (
TEST_SMALL_DOCUMENT_FILENAME, TEST_SMALL_DOCUMENT_PATH,
)
class DuplicatedDocumentsViewsTestCase(GenericDocumentViewTestCase):
def setUp(self):
super(DuplicatedDocumentsViewsTestCase, self).setUp()
self.login_user()
def _upload_duplicate_document(self):
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
self.document_duplicate = self.document_type.new_document(
file_object=file_object, label=TEST_SMALL_DOCUMENT_FILENAME
)
def _request_duplicated_document_list(self):
return self.get('documents:duplicated_document_list')
def _request_document_duplicates_list(self):
return self.get(
'documents:document_duplicates_list', args=(self.document.pk,)
)
def test_duplicated_document_list_no_permissions(self):
self._upload_duplicate_document()
response = self._request_duplicated_document_list()
self.assertNotContains(
response, text=self.document.label, status_code=200
)
def test_duplicated_document_list_with_access(self):
self._upload_duplicate_document()
self.grant_access(
obj=self.document, permission=permission_document_view
)
self.grant_access(
obj=self.document_duplicate,
permission=permission_document_view
)
response = self._request_duplicated_document_list()
self.assertContains(
response, text=self.document.label, status_code=200
)
def test_document_duplicates_list_no_permissions(self):
self._upload_duplicate_document()
response = self._request_document_duplicates_list()
self.assertEqual(response.status_code, 403)
def test_document_duplicates_list_with_access(self):
self._upload_duplicate_document()
self.grant_access(
obj=self.document, permission=permission_document_view
)
self.grant_access(
obj=self.document_duplicate,
permission=permission_document_view
)
response = self._request_document_duplicates_list()
self.assertContains(
response, text=self.document.label, status_code=200
)

View File

@@ -14,7 +14,7 @@ from ..permissions import (
permission_document_download, permission_document_view
)
from .test_views import GenericDocumentViewTestCase
from .base import GenericDocumentViewTestCase
TEST_DOCUMENT_TYPE_EDITED_LABEL = 'test document type edited label'

View File

@@ -17,8 +17,8 @@ from ..permissions import (
permission_document_version_revert
)
from .base import GenericDocumentViewTestCase
from .literals import TEST_SMALL_DOCUMENT_PATH
from .test_views import GenericDocumentViewTestCase
class DocumentsLinksTestCase(GenericDocumentViewTestCase):