diff --git a/mayan/apps/documents/tests/test_views.py b/mayan/apps/documents/tests/test_views.py index 8505be80cd..0f61e1d948 100644 --- a/mayan/apps/documents/tests/test_views.py +++ b/mayan/apps/documents/tests/test_views.py @@ -10,9 +10,6 @@ from django_downloadview import assert_download_response from common.tests.test_views import GenericViewTestCase from converter.models import Transformation from converter.permissions import permission_transformation_delete -from user_management.tests.literals import ( - TEST_USER_PASSWORD, TEST_USER_USERNAME -) from ..literals import DEFAULT_DELETE_PERIOD, DEFAULT_DELETE_TIME_UNIT from ..models import DeletedDocument, Document, DocumentType @@ -58,11 +55,11 @@ class GenericDocumentViewTestCase(GenericViewTestCase): class DocumentsViewsTestCase(GenericDocumentViewTestCase): - def test_document_view_no_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + def setUp(self): + super(DocumentsViewsTestCase, self).setUp() + self.login_user() + def test_document_view_no_permissions(self): response = self.get( 'documents:document_properties', args=(self.document.pk,) ) @@ -70,13 +67,7 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(response.status_code, 403) def test_document_view_with_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_view.stored_permission - ) + self.grant(permission=permission_document_view) response = self.get( 'documents:document_properties', args=(self.document.pk,), follow=True @@ -87,29 +78,22 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): ) def test_document_list_view_no_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.get('documents:document_list') self.assertContains(response, 'Total: 0', status_code=200) def test_document_list_view_with_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_view.stored_permission - ) + self.grant(permission=permission_document_view) response = self.get('documents:document_list') self.assertContains(response, 'Total: 1', status_code=200) - def test_document_document_type_change_view_no_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD + def _edit_document_type(self, document_type): + return self.post( + 'documents:document_document_type_edit', + args=(self.document.pk,), + data={'document_type': document_type.pk} ) + def test_document_document_type_change_view_no_permissions(self): self.assertEqual( self.document.document_type, self.document_type ) @@ -118,13 +102,11 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): label=TEST_DOCUMENT_TYPE_2_LABEL ) - response = self.post( - 'documents:document_document_type_edit', - args=(self.document.pk,), - data={'document_type': document_type.pk} - ) + response = self._edit_document_type(document_type=document_type) - self.assertEqual(response.status_code, 403) + self.assertContains( + response, text='Select a valid choice', status_code=200 + ) self.assertEqual( Document.objects.get(pk=self.document.pk).document_type, @@ -132,10 +114,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): ) def test_document_document_type_change_view_with_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - self.assertEqual( self.document.document_type, self.document_type ) @@ -144,39 +122,20 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): label=TEST_DOCUMENT_TYPE_2_LABEL ) - self.role.permissions.add( - permission_document_properties_edit.stored_permission - ) - self.role.permissions.add( - permission_document_create.stored_permission - ) - response = self.post( - 'documents:document_document_type_edit', - args=(self.document.pk,), - data={'document_type': document_type.pk}, follow=True - ) + self.grant(permission=permission_document_properties_edit) + self.grant(permission=permission_document_create) - self.assertContains(response, text='success', status_code=200) + response = self._edit_document_type(document_type=document_type) + + self.assertEqual(response.status_code, 302) self.assertEqual( Document.objects.get(pk=self.document.pk).document_type, document_type ) - def test_document_multiple_document_type_change_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.assertEqual( - Document.objects.first().document_type, self.document_type - ) - - document_type = DocumentType.objects.create( - label=TEST_DOCUMENT_TYPE_2_LABEL - ) - - response = self.post( + def _multiple_document_type_edit(self, document_type): + return self.post( 'documents:document_multiple_document_type_edit', data={ 'id_list': self.document.pk, @@ -184,17 +143,7 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): } ) - self.assertEqual(response.status_code, 302) - - self.assertEqual( - Document.objects.first().document_type, self.document_type - ) - - def test_document_multiple_document_type_change_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - + def test_document_multiple_document_type_change_view_no_permission(self): self.assertEqual( Document.objects.first().document_type, self.document_type ) @@ -203,32 +152,41 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): label=TEST_DOCUMENT_TYPE_2_LABEL ) - self.role.permissions.add( - permission_document_properties_edit.stored_permission - ) - self.role.permissions.add( - permission_document_create.stored_permission + response = self._multiple_document_type_edit( + document_type=document_type ) - response = self.post( - 'documents:document_multiple_document_type_edit', - data={ - 'id_list': self.document.pk, - 'document_type': document_type.pk - }, follow=True + self.assertContains( + response, text='Select a valid choice.', status_code=200 ) - self.assertEqual(response.status_code, 200) + self.assertEqual( + Document.objects.first().document_type, self.document_type + ) + + def test_document_multiple_document_type_change_view_with_permission(self): + self.assertEqual( + Document.objects.first().document_type, self.document_type + ) + + document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE_2_LABEL + ) + + self.grant(permission=permission_document_properties_edit) + self.grant(permission=permission_document_create) + + response = self._multiple_document_type_edit( + document_type=document_type + ) + + self.assertEqual(response.status_code, 302) self.assertEqual( Document.objects.first().document_type, document_type ) def test_document_download_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.get( 'documents:document_download', args=(self.document.pk,) ) @@ -236,20 +194,13 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(response.status_code, 403) def test_document_download_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_download.stored_permission - ) - # Set the expected_content_type for # common.tests.mixins.ContentTypeCheckMixin self.expected_content_type = '{}; charset=utf-8'.format( self.document.file_mimetype ) + self.grant(permission=permission_document_download) response = self.get( 'documents:document_download', args=(self.document.pk,) ) @@ -264,10 +215,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): ) def test_document_multiple_download_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.get( 'documents:document_multiple_download', data={'id_list': self.document.pk} @@ -276,19 +223,12 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(response.status_code, 403) def test_document_multiple_download_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_download.stored_permission - ) - # Set the expected_content_type for # common.tests.mixins.ContentTypeCheckMixin self.expected_content_type = '{}; charset=utf-8'.format( self.document.file_mimetype ) + self.grant(permission=permission_document_download) response = self.get( 'documents:document_multiple_download', @@ -305,10 +245,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): ) def test_document_version_download_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.get( 'documents:document_version_download', args=( self.document.latest_version.pk, @@ -318,18 +254,11 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(response.status_code, 403) def test_document_version_download_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_download.stored_permission - ) - # Set the expected_content_type for # common.tests.mixins.ContentTypeCheckMixin self.expected_content_type = 'application/octet-stream; charset=utf-8' + self.grant(permission=permission_document_download) response = self.get( 'documents:document_version_download', args=( self.document.latest_version.pk, @@ -348,8 +277,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): ) def test_document_update_page_count_view_no_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - self.document.pages.all().delete() self.assertEqual(self.document.pages.count(), 0) @@ -361,15 +288,11 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document.pages.count(), 0) def test_document_update_page_count_view_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - page_count = self.document.pages.count() self.document.pages.all().delete() self.assertEqual(self.document.pages.count(), 0) - self.role.permissions.add( - permission_document_tools.stored_permission - ) + self.grant(permission=permission_document_tools) response = self.post( 'documents:document_update_page_count', @@ -379,8 +302,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document.pages.count(), page_count) def test_document_multiple_update_page_count_view_no_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - self.document.pages.all().delete() self.assertEqual(self.document.pages.count(), 0) @@ -393,15 +314,11 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document.pages.count(), 0) def test_document_multiple_update_page_count_view_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - page_count = self.document.pages.count() self.document.pages.all().delete() self.assertEqual(self.document.pages.count(), 0) - self.role.permissions.add( - permission_document_tools.stored_permission - ) + self.grant(permission=permission_document_tools) response = self.post( 'documents:document_multiple_update_page_count', @@ -411,8 +328,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document.pages.count(), page_count) def test_document_clear_transformations_view_no_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - document_page = self.document.pages.first() content_type = ContentType.objects.get_for_model(document_page) transformation = Transformation.objects.create( @@ -426,9 +341,8 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): (repr(transformation),) ) - self.role.permissions.add( - permission_document_view.stored_permission - ) + self.grant(permission=permission_document_view) + response = self.post( 'documents:document_clear_transformations', args=(self.document.pk,) @@ -441,8 +355,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): ) def test_document_clear_transformations_view_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - document_page = self.document.pages.first() content_type = ContentType.objects.get_for_model(document_page) transformation = Transformation.objects.create( @@ -455,27 +367,20 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): (repr(transformation),) ) - self.role.permissions.add( - permission_transformation_delete.stored_permission - ) - self.role.permissions.add( - permission_document_view.stored_permission - ) + self.grant(permission=permission_transformation_delete) + self.grant(permission=permission_document_view) + response = self.post( 'documents:document_clear_transformations', - args=(self.document.pk,), follow=True + args=(self.document.pk,) ) - self.assertContains( - response, text='deleted successfully', status_code=200 - ) + self.assertEqual(response.status_code, 302) self.assertEqual( Transformation.objects.get_for_model(document_page).count(), 0 ) def test_document_multiple_clear_transformations_view_no_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - document_page = self.document.pages.first() content_type = ContentType.objects.get_for_model(document_page) transformation = Transformation.objects.create( @@ -489,9 +394,8 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): (repr(transformation),) ) - self.role.permissions.add( - permission_document_view.stored_permission - ) + self.grant(permission=permission_document_view) + response = self.post( 'documents:document_multiple_clear_transformations', data={'id_list': self.document.pk} @@ -503,32 +407,28 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): (repr(transformation),) ) + def _empty_trash(self): + return self.post('documents:trash_can_empty') + def test_trash_can_empty_view_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) self.document.delete() self.assertEqual(DeletedDocument.objects.count(), 1) - response = self.post('documents:trash_can_empty') + response = self._empty_trash() self.assertEqual(response.status_code, 403) self.assertEqual(DeletedDocument.objects.count(), 1) def test_trash_can_empty_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) self.document.delete() self.assertEqual(DeletedDocument.objects.count(), 1) - self.role.permissions.add( - permission_empty_trash.stored_permission - ) - response = self.post('documents:trash_can_empty', follow=True) + self.grant(permission=permission_empty_trash) - self.assertContains( - response, text='emptied successfully', status_code=200 - ) + response = self._empty_trash() + + self.assertEqual(response.status_code, 302) self.assertEqual(DeletedDocument.objects.count(), 0) self.assertEqual(Document.objects.count(), 0) @@ -540,8 +440,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): file_object=file_object ) - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - response = self.post( 'documents:document_version_revert', args=(first_version.pk,) ) @@ -557,11 +455,7 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): file_object=file_object ) - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - - self.role.permissions.add( - permission_document_version_revert.stored_permission - ) + self.grant(permission=permission_document_version_revert) response = self.post( 'documents:document_version_revert', args=(first_version.pk,), @@ -572,10 +466,6 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document.versions.count(), 1) def test_document_page_view_no_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.get( 'documents:document_page_view', args=( self.document.pages.first().pk, @@ -585,13 +475,7 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(response.status_code, 403) def test_document_page_view_with_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_view.stored_permission - ) + self.grant(permission=permission_document_view) response = self.get( 'documents:document_page_view', args=( self.document.pages.first().pk, @@ -605,11 +489,11 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): - def test_document_type_create_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + def setUp(self): + super(DocumentTypeViewsTestCase, self).setUp() + self.login_user() + def test_document_type_create_view_no_permission(self): self.document_type.delete() self.assertEqual(Document.objects.count(), 0) @@ -628,20 +512,12 @@ class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(DocumentType.objects.count(), 0) def test_document_type_create_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - self.document_type.delete() self.assertEqual(Document.objects.count(), 0) - self.role.permissions.add( - permission_document_type_create.stored_permission - ) - self.role.permissions.add( - permission_document_type_view.stored_permission - ) + self.grant(permission=permission_document_type_create) + self.grant(permission=permission_document_type_view) response = self.post( 'documents:document_type_create', @@ -660,10 +536,6 @@ class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): ) def test_document_type_delete_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.post( 'documents:document_type_delete', args=(self.document_type.pk,) @@ -673,16 +545,8 @@ class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(DocumentType.objects.count(), 1) def test_document_type_delete_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_type_delete.stored_permission - ) - self.role.permissions.add( - permission_document_type_view.stored_permission - ) + self.grant(permission=permission_document_type_delete) + self.grant(permission=permission_document_type_view) response = self.post( 'documents:document_type_delete', @@ -693,10 +557,6 @@ class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(DocumentType.objects.count(), 0) def test_document_type_edit_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.post( 'documents:document_type_edit', args=(self.document_type.pk,), @@ -715,16 +575,8 @@ class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): ) def test_document_type_edit_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_type_edit.stored_permission - ) - self.role.permissions.add( - permission_document_type_view.stored_permission - ) + self.grant(permission=permission_document_type_edit) + self.grant(permission=permission_document_type_view) response = self.post( 'documents:document_type_edit', @@ -744,10 +596,6 @@ class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): ) def test_document_type_quick_label_create_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.post( 'documents:document_type_filename_create', args=(self.document_type.pk,), @@ -760,13 +608,7 @@ class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document_type.filenames.count(), 0) def test_document_type_quick_label_create_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_type_edit.stored_permission - ) + self.grant(permission=permission_document_type_edit) response = self.post( 'documents:document_type_filename_create', @@ -781,10 +623,11 @@ class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): class DeletedDocumentTestCase(GenericDocumentViewTestCase): + def setUp(self): + super(DeletedDocumentTestCase, self).setUp() + self.login_user() + def test_document_restore_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) self.document.delete() self.assertEqual(Document.objects.count(), 0) @@ -796,14 +639,10 @@ class DeletedDocumentTestCase(GenericDocumentViewTestCase): self.assertEqual(Document.objects.count(), 0) def test_document_restore_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) self.document.delete() self.assertEqual(Document.objects.count(), 0) - self.role.permissions.add( - permission_document_restore.stored_permission - ) + + self.grant(permission=permission_document_restore) response = self.post( 'documents:document_restore', args=(self.document.pk,), follow=True @@ -813,10 +652,6 @@ class DeletedDocumentTestCase(GenericDocumentViewTestCase): self.assertEqual(Document.objects.count(), 1) def test_document_trash_no_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.post( 'documents:document_trash', args=(self.document.pk,) ) @@ -826,13 +661,7 @@ class DeletedDocumentTestCase(GenericDocumentViewTestCase): self.assertEqual(Document.objects.count(), 1) def test_document_trash_with_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_trash.stored_permission - ) + self.grant(permission=permission_document_trash) response = self.post( 'documents:document_trash', args=(self.document.pk,), @@ -844,10 +673,6 @@ class DeletedDocumentTestCase(GenericDocumentViewTestCase): self.assertEqual(Document.objects.count(), 0) def test_document_delete_no_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - self.document.delete() self.assertEqual(Document.objects.count(), 0) self.assertEqual(DeletedDocument.objects.count(), 1) @@ -860,17 +685,11 @@ class DeletedDocumentTestCase(GenericDocumentViewTestCase): self.assertEqual(DeletedDocument.objects.count(), 1) def test_document_delete_with_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - self.document.delete() self.assertEqual(Document.objects.count(), 0) self.assertEqual(DeletedDocument.objects.count(), 1) - self.role.permissions.add( - permission_document_delete.stored_permission - ) + self.grant(permission=permission_document_delete) response = self.post( 'documents:document_delete', args=(self.document.pk,), @@ -884,10 +703,6 @@ class DeletedDocumentTestCase(GenericDocumentViewTestCase): def test_deleted_document_list_view_no_permissions(self): self.document.delete() - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - response = self.get('documents:document_list_deleted') self.assertNotContains(response, self.document.label, status_code=200) @@ -895,13 +710,7 @@ class DeletedDocumentTestCase(GenericDocumentViewTestCase): def test_deleted_document_list_view_with_permissions(self): self.document.delete() - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - - self.role.permissions.add( - permission_document_view.stored_permission - ) + self.grant(permission=permission_document_view) response = self.get('documents:document_list_deleted') self.assertContains(response, self.document.label, status_code=200)