Split document.tests.test_views.
Signed-off-by: Michael Price <loneviking72@gmail.com>
This commit is contained in:
committed by
Roberto Rosario
parent
77777deec5
commit
96836065a8
@@ -41,6 +41,10 @@ Next (2018-XX-XX)
|
||||
- Update to Fancybox 3.
|
||||
- Update to jQuery 3.3.1
|
||||
- Move transfomations to their own module.
|
||||
- Split documents.tests.test_views into base.py, test_deleted_document_views.py,
|
||||
test_document_page_views.py, test_document_type_views.py, test_document_version_views.py,
|
||||
test_document_views.py, test_duplicated_document_views.py
|
||||
|
||||
|
||||
2.8 (2018-02-27)
|
||||
================
|
||||
|
||||
@@ -49,7 +49,7 @@ Caching
|
||||
|
||||
Converter
|
||||
~~~~~~~~~
|
||||
- Move converter transformations to their own module.
|
||||
- Move converter transformations to their own module. [DONE]
|
||||
|
||||
|
||||
Documents
|
||||
@@ -172,7 +172,7 @@ Testing
|
||||
- Update all API tests using self.client to just self. and the HTTP method.
|
||||
- Add test for searches for each app that uses search.
|
||||
- Split documents.tests.test_views into test_document_views test_pages_views, etc.
|
||||
The module is too big.
|
||||
The module is too big. [DONE]
|
||||
|
||||
UI - Frontend
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
@@ -3,7 +3,7 @@ from __future__ import unicode_literals
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.urls import reverse
|
||||
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..links import (
|
||||
link_acl_delete, link_acl_list, link_acl_create, link_acl_permissions
|
||||
|
||||
@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..models import AccessControlList
|
||||
from ..permissions import permission_acl_edit, permission_acl_view
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..models import Cabinet
|
||||
from ..permissions import (
|
||||
|
||||
@@ -6,7 +6,7 @@ import logging
|
||||
from django.utils.timezone import now
|
||||
|
||||
from common.literals import TIME_DELTA_UNIT_DAYS
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
from sources.links import link_upload_version
|
||||
from user_management.tests import (
|
||||
TEST_USER_PASSWORD, TEST_USER_USERNAME, TEST_ADMIN_PASSWORD,
|
||||
|
||||
@@ -2,7 +2,7 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..models import Transformation
|
||||
from ..permissions import (
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..models import Index
|
||||
from ..permissions import (
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from documents.tests.literals import TEST_DOCUMENT_FILENAME
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import (
|
||||
GenericDocumentViewTestCase, TEST_DOCUMENT_FILENAME
|
||||
)
|
||||
|
||||
from ..permissions import permission_content_view
|
||||
from ..utils import get_document_content
|
||||
|
||||
@@ -3,8 +3,9 @@ from __future__ import unicode_literals
|
||||
from django.core.files import File
|
||||
from django.urls import reverse
|
||||
|
||||
from documents.tests.literals import TEST_DOCUMENT_PATH
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import (
|
||||
GenericDocumentViewTestCase, TEST_DOCUMENT_PATH
|
||||
)
|
||||
|
||||
from ..links import (
|
||||
link_document_version_signature_delete,
|
||||
|
||||
@@ -8,8 +8,9 @@ from django_downloadview.test import assert_download_response
|
||||
|
||||
from django_gpg.models import Key
|
||||
from documents.models import DocumentVersion
|
||||
from documents.tests.literals import TEST_DOCUMENT_PATH
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import (
|
||||
GenericDocumentViewTestCase, TEST_DOCUMENT_PATH
|
||||
)
|
||||
|
||||
from ..models import DetachedSignature, EmbeddedSignature
|
||||
from ..permissions import (
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from common.tests.test_views import GenericViewTestCase
|
||||
from documents.tests.literals import TEST_SMALL_DOCUMENT_PATH
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import (
|
||||
GenericDocumentViewTestCase, TEST_SMALL_DOCUMENT_PATH
|
||||
)
|
||||
|
||||
from ..models import Workflow, WorkflowState, WorkflowTransition
|
||||
from ..permissions import (
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
from .base import GenericDocumentViewTestCase # NOQA
|
||||
from .literals import * # NOQA
|
||||
|
||||
35
mayan/apps/documents/tests/base.py
Normal file
35
mayan/apps/documents/tests/base.py
Normal 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()
|
||||
109
mayan/apps/documents/tests/test_deleted_document_views.py
Normal file
109
mayan/apps/documents/tests/test_deleted_document_views.py
Normal 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)
|
||||
31
mayan/apps/documents/tests/test_document_page_views.py
Normal file
31
mayan/apps/documents/tests/test_document_page_views.py
Normal 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
|
||||
)
|
||||
244
mayan/apps/documents/tests/test_document_type_views.py
Normal file
244
mayan/apps/documents/tests/test_document_type_views.py
Normal 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
|
||||
)
|
||||
80
mayan/apps/documents/tests/test_document_version_views.py
Normal file
80
mayan/apps/documents/tests/test_document_version_views.py
Normal 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)
|
||||
File diff suppressed because it is too large
Load Diff
74
mayan/apps/documents/tests/test_duplicated_document_views.py
Normal file
74
mayan/apps/documents/tests/test_duplicated_document_views.py
Normal 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
|
||||
)
|
||||
@@ -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'
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..permissions import permission_events_view
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from documents.permissions import permission_document_view
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..models import SmartLink
|
||||
from ..permissions import (
|
||||
|
||||
@@ -2,7 +2,7 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.core import mail
|
||||
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..models import UserMailer
|
||||
from ..permissions import (
|
||||
|
||||
@@ -7,10 +7,10 @@ from documents.models import DocumentType
|
||||
from documents.permissions import (
|
||||
permission_document_properties_edit, permission_document_view
|
||||
)
|
||||
from documents.tests.literals import (
|
||||
TEST_DOCUMENT_TYPE_2_LABEL, TEST_SMALL_DOCUMENT_PATH
|
||||
from documents.tests import (
|
||||
GenericDocumentViewTestCase, TEST_DOCUMENT_TYPE_2_LABEL,
|
||||
TEST_SMALL_DOCUMENT_PATH,
|
||||
)
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
|
||||
from ..models import MetadataType
|
||||
from ..permissions import (
|
||||
|
||||
@@ -2,7 +2,7 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.test import override_settings
|
||||
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..permissions import permission_ocr_content_view
|
||||
from ..utils import get_document_ocr_content
|
||||
|
||||
@@ -14,10 +14,10 @@ from common.utils import fs_cleanup, mkdtemp
|
||||
from documents.models import Document, DocumentType
|
||||
from documents.permissions import permission_document_create
|
||||
from documents.tests import (
|
||||
TEST_DOCUMENT_DESCRIPTION, TEST_DOCUMENT_TYPE_LABEL,
|
||||
TEST_SMALL_DOCUMENT_CHECKSUM, TEST_SMALL_DOCUMENT_PATH
|
||||
GenericDocumentViewTestCase, TEST_DOCUMENT_DESCRIPTION,
|
||||
TEST_DOCUMENT_TYPE_LABEL, TEST_SMALL_DOCUMENT_CHECKSUM,
|
||||
TEST_SMALL_DOCUMENT_PATH,
|
||||
)
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from metadata.tests.literals import TEST_METADATA_VALUE_UNICODE
|
||||
from metadata.tests.mixins import MetadataTypeMixin
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from documents.permissions import permission_document_view
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..models import Tag
|
||||
from ..permissions import (
|
||||
|
||||
@@ -4,7 +4,7 @@ from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group
|
||||
|
||||
from common.tests.test_views import GenericViewTestCase
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
from documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from metadata.models import MetadataType
|
||||
from metadata.permissions import permission_metadata_document_edit
|
||||
|
||||
Reference in New Issue
Block a user