diff --git a/mayan/apps/acls/tests/test_models.py b/mayan/apps/acls/tests/test_models.py index d025948aca..f77028a0e9 100644 --- a/mayan/apps/acls/tests/test_models.py +++ b/mayan/apps/acls/tests/test_models.py @@ -9,7 +9,6 @@ from common.tests import BaseTestCase from documents.models import Document, DocumentType from documents.permissions import permission_document_view from documents.tests import TEST_SMALL_DOCUMENT_PATH, TEST_DOCUMENT_TYPE -from permissions.classes import Permission from permissions.models import Role from permissions.tests.literals import TEST_ROLE_LABEL from user_management.tests.literals import TEST_USER_USERNAME, TEST_GROUP @@ -22,7 +21,7 @@ TEST_DOCUMENT_TYPE_2 = 'test document type 2' @override_settings(OCR_AUTO_OCR=False) class PermissionTestCase(BaseTestCase): def setUp(self): - super(PermissionTestCase).setUp() + super(PermissionTestCase, self).setUp() self.document_type_1 = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) @@ -56,10 +55,9 @@ class PermissionTestCase(BaseTestCase): self.role.groups.add(self.group) def tearDown(self): - super(PermissionTestCase).tearDown() - for document_type in DocumentType.objects.all(): document_type.delete() + super(PermissionTestCase, self).tearDown() def test_check_access_without_permissions(self): with self.assertRaises(PermissionDenied): diff --git a/mayan/apps/checkouts/tests/test_models.py b/mayan/apps/checkouts/tests/test_models.py index b37de01918..53dec8f209 100644 --- a/mayan/apps/checkouts/tests/test_models.py +++ b/mayan/apps/checkouts/tests/test_models.py @@ -26,7 +26,7 @@ from ..models import DocumentCheckout, NewVersionBlock @override_settings(OCR_AUTO_OCR=False) class DocumentCheckoutTestCase(BaseTestCase): def setUp(self): - super(DocumentCheckoutTestCase).setUp() + super(DocumentCheckoutTestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -42,8 +42,8 @@ class DocumentCheckoutTestCase(BaseTestCase): ) def tearDown(self): - super(DocumentCheckoutTestCase).tearDown() self.document_type.delete() + super(DocumentCheckoutTestCase, self).tearDown() def test_document_checkout(self): expiration_datetime = now() + datetime.timedelta(days=1) diff --git a/mayan/apps/common/tests/test_views.py b/mayan/apps/common/tests/test_views.py index ba16aaf1f1..ec56a1b9ea 100644 --- a/mayan/apps/common/tests/test_views.py +++ b/mayan/apps/common/tests/test_views.py @@ -92,6 +92,9 @@ class GenericViewTestCase(BaseTestCase): def login_user(self): self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + def login_admin_user(self): + self.login(username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD) + def logout(self): self.client.logout() diff --git a/mayan/apps/document_indexing/tests/test_models.py b/mayan/apps/document_indexing/tests/test_models.py index 12817668af..7205aaab81 100644 --- a/mayan/apps/document_indexing/tests/test_models.py +++ b/mayan/apps/document_indexing/tests/test_models.py @@ -19,7 +19,7 @@ from .literals import ( @override_settings(OCR_AUTO_OCR=False) class IndexTestCase(BaseTestCase): def setUp(self): - super(IndexTestCase).setUp() + super(IndexTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) @@ -30,8 +30,8 @@ class IndexTestCase(BaseTestCase): ) def tearDown(self): - super(IndexTestCase).tearDown() self.document_type.delete() + super(IndexTestCase, self).tearDown() def test_indexing(self): metadata_type = MetadataType.objects.create( diff --git a/mayan/apps/document_signatures/tests/test_models.py b/mayan/apps/document_signatures/tests/test_models.py index 50fae36987..9ec275a3ea 100644 --- a/mayan/apps/document_signatures/tests/test_models.py +++ b/mayan/apps/document_signatures/tests/test_models.py @@ -24,14 +24,14 @@ from .literals import ( @override_settings(OCR_AUTO_OCR=False) class DocumentSignaturesTestCase(BaseTestCase): def setUp(self): - super(DocumentSignaturesTestCase).setUp() + super(DocumentSignaturesTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) def tearDown(self): - super(DocumentSignaturesTestCase).tearDown() self.document_type.delete() + super(DocumentSignaturesTestCase, self).tearDown() def test_embedded_signature_no_key(self): with open(TEST_SIGNED_DOCUMENT_PATH) as file_object: @@ -252,16 +252,15 @@ class DocumentSignaturesTestCase(BaseTestCase): @override_settings(OCR_AUTO_OCR=False) class EmbeddedSignaturesTestCase(BaseTestCase): def setUp(self): - super(EmbeddedSignaturesTestCase).setUp() + super(EmbeddedSignaturesTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) def tearDown(self): - super(EmbeddedSignaturesTestCase).tearDown() - self.document_type.delete() + super(EmbeddedSignaturesTestCase, self).tearDown() def test_unsigned_document_version_method(self): TEST_UNSIGNED_DOCUMENT_COUNT = 3 diff --git a/mayan/apps/document_states/tests/test_views.py b/mayan/apps/document_states/tests/test_views.py index 028818247d..0dd34bb609 100644 --- a/mayan/apps/document_states/tests/test_views.py +++ b/mayan/apps/document_states/tests/test_views.py @@ -1,17 +1,12 @@ from __future__ import unicode_literals -from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse -from django.test.client import Client -from django.test import TestCase +from common.tests.test_views import GenericViewTestCase from documents.models import DocumentType from documents.tests.literals import ( TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH ) -from user_management.tests import ( - TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL -) from ..models import Workflow, WorkflowState, WorkflowTransition @@ -22,19 +17,11 @@ from .literals import ( ) -class DocumentStateViewTestCase(TestCase): +class DocumentStateViewTestCase(GenericViewTestCase): def setUp(self): - self.admin_user = get_user_model().objects.create_superuser( - username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, - password=TEST_ADMIN_PASSWORD - ) - self.client = Client() - # Login the admin user - logged_in = self.client.login( - username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD - ) - self.assertTrue(logged_in) - self.assertTrue(self.admin_user.is_authenticated()) + super(DocumentStateViewTestCase, self).setUp() + + self.login_admin_user() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE @@ -47,6 +34,7 @@ class DocumentStateViewTestCase(TestCase): def tearDown(self): self.document_type.delete() + super(DocumentStateViewTestCase, self).tearDown() def test_creating_workflow(self): response = self.client.post( diff --git a/mayan/apps/dynamic_search/tests/test_models.py b/mayan/apps/dynamic_search/tests/test_models.py index 5c9d1bb0f0..ca2535e05b 100644 --- a/mayan/apps/dynamic_search/tests/test_models.py +++ b/mayan/apps/dynamic_search/tests/test_models.py @@ -1,8 +1,9 @@ from __future__ import unicode_literals from django.contrib.auth import get_user_model -from django.test import TestCase +from django.test import override_settings +from common.tests import BaseTestCase from documents.models import DocumentType from documents.search import document_search from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH @@ -11,8 +12,10 @@ from user_management.tests import ( ) -class DocumentSearchTestCase(TestCase): +@override_settings(OCR_AUTO_OCR=False) +class DocumentSearchTestCase(BaseTestCase): def setUp(self): + super(DocumentSearchTestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -28,6 +31,7 @@ class DocumentSearchTestCase(TestCase): def tearDown(self): self.document_type.delete() + super(DocumentSearchTestCase, self).tearDown() def test_simple_search_after_related_name_change(self): """ diff --git a/mayan/apps/dynamic_search/tests/test_views.py b/mayan/apps/dynamic_search/tests/test_views.py index 5d53ebb50f..633a084125 100644 --- a/mayan/apps/dynamic_search/tests/test_views.py +++ b/mayan/apps/dynamic_search/tests/test_views.py @@ -1,35 +1,23 @@ from __future__ import unicode_literals -from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse -from django.test import TestCase -from django.test.client import Client +from django.test import override_settings +from common.tests.test_views import GenericViewTestCase from documents.models import DocumentType from documents.search import document_search from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH -from user_management.tests import ( - TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL -) -class Issue46TestCase(TestCase): +@override_settings(OCR_AUTO_OCR=False) +class Issue46TestCase(GenericViewTestCase): """ Functional tests to make sure issue 46 is fixed """ def setUp(self): - self.admin_user = get_user_model().objects.create_superuser( - username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, - password=TEST_ADMIN_PASSWORD - ) - self.client = Client() - # Login the admin user - logged_in = self.client.login( - username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD - ) - self.assertTrue(logged_in) - self.assertTrue(self.admin_user.is_authenticated()) + super(Issue46TestCase, self).setUp() + self.login_admin_user() self.document_count = 4 @@ -48,6 +36,7 @@ class Issue46TestCase(TestCase): def tearDown(self): for document_type in DocumentType.objects.all(): document_type.delete() + super(Issue46TestCase, self).tearDown() def test_advanced_search_past_first_page(self): # Make sure all documents are returned by the search diff --git a/mayan/apps/folders/tests/test_models.py b/mayan/apps/folders/tests/test_models.py index 8185f24010..a5beb8df62 100644 --- a/mayan/apps/folders/tests/test_models.py +++ b/mayan/apps/folders/tests/test_models.py @@ -14,7 +14,7 @@ from .literals import TEST_FOLDER_LABEL @override_settings(OCR_AUTO_OCR=False) class FolderTestCase(BaseTestCase): def setUp(self): - super(FolderTestCase).setUp() + super(FolderTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) @@ -25,9 +25,8 @@ class FolderTestCase(BaseTestCase): ) def tearDown(self): - super(FolderTestCase).tearDown() - self.document_type.delete() + super(FolderTestCase, self).tearDown() def test_folder_creation(self): folder = Folder.objects.create(label=TEST_FOLDER_LABEL) diff --git a/mayan/apps/linking/tests/test_models.py b/mayan/apps/linking/tests/test_models.py index b222120678..306c03ec4e 100644 --- a/mayan/apps/linking/tests/test_models.py +++ b/mayan/apps/linking/tests/test_models.py @@ -20,7 +20,7 @@ from .literals import TEST_SMART_LINK_LABEL, TEST_SMART_LINK_DYNAMIC_LABEL @override_settings(OCR_AUTO_OCR=False) class SmartLinkTestCase(BaseTestCase): def setUp(self): - super(SmartLinkTestCase).setUp() + super(SmartLinkTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) @@ -36,9 +36,8 @@ class SmartLinkTestCase(BaseTestCase): ) def tearDown(self): - super(SmartLinkTestCase).tearDown() - self.document_type.delete() + super(SmartLinkTestCase, self).tearDown() def test_dynamic_label(self): smart_link = SmartLink.objects.create( diff --git a/mayan/apps/linking/tests/test_views.py b/mayan/apps/linking/tests/test_views.py index 317e2450b5..92d43e8841 100644 --- a/mayan/apps/linking/tests/test_views.py +++ b/mayan/apps/linking/tests/test_views.py @@ -2,9 +2,6 @@ from __future__ import absolute_import, unicode_literals from documents.permissions import permission_document_view from documents.tests.test_views import GenericDocumentViewTestCase -from user_management.tests import ( - TEST_USER_USERNAME, TEST_USER_PASSWORD -) from ..models import SmartLink from ..permissions import ( @@ -20,7 +17,7 @@ from .literals import ( class SmartLinkViewTestCase(GenericDocumentViewTestCase): def test_smart_link_create_view_no_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() response = self.post( 'linking:smart_link_create', data={ @@ -32,7 +29,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): self.assertEqual(SmartLink.objects.count(), 0) def test_smart_link_create_view_with_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.role.permissions.add( permission_smart_link_create.stored_permission @@ -50,7 +47,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): ) def test_smart_link_delete_view_no_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() smart_link = SmartLink.objects.create(label=TEST_SMART_LINK_LABEL) @@ -61,7 +58,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): self.assertEqual(SmartLink.objects.count(), 1) def test_smart_link_delete_view_with_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.role.permissions.add( permission_smart_link_delete.stored_permission @@ -77,7 +74,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): self.assertEqual(SmartLink.objects.count(), 0) def test_smart_link_edit_view_no_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() smart_link = SmartLink.objects.create(label=TEST_SMART_LINK_LABEL) @@ -91,7 +88,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL) def test_smart_link_edit_view_with_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.role.permissions.add( permission_smart_link_edit.stored_permission @@ -125,7 +122,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): def test_document_smart_link_list_view_no_permission(self): self.setup_smart_links() - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.role.permissions.add( permission_document_view.stored_permission @@ -145,7 +142,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): def test_document_smart_link_list_view_with_permission(self): self.setup_smart_links() - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.role.permissions.add( permission_smart_link_view.stored_permission diff --git a/mayan/apps/mailer/tests/test_views.py b/mayan/apps/mailer/tests/test_views.py index 1b90eea945..e70d416e1e 100644 --- a/mayan/apps/mailer/tests/test_views.py +++ b/mayan/apps/mailer/tests/test_views.py @@ -3,9 +3,6 @@ from __future__ import unicode_literals from django.core import mail from documents.tests.test_views import GenericDocumentViewTestCase -from user_management.tests.literals import ( - TEST_USER_PASSWORD, TEST_USER_USERNAME -) from ..permissions import ( permission_mailing_link, permission_mailing_send_document @@ -16,9 +13,7 @@ TEST_EMAIL_ADDRESS = 'test@example.com' class MailerViewsTestCase(GenericDocumentViewTestCase): def test_mail_link_view_no_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() response = self.post( 'mailer:send_document_link', args=(self.document.pk,), @@ -28,13 +23,10 @@ class MailerViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(response.status_code, 302) def test_mail_link_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() + + self.grant(permission_mailing_link) - self.role.permissions.add( - permission_mailing_link.stored_permission - ) response = self.post( 'mailer:send_document_link', args=(self.document.pk,), data={'email': TEST_EMAIL_ADDRESS}, @@ -48,9 +40,7 @@ class MailerViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(mail.outbox[0].to, [TEST_EMAIL_ADDRESS]) def test_mail_document_view_no_permissions(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() response = self.post( 'mailer:send_document', args=(self.document.pk,), @@ -60,13 +50,10 @@ class MailerViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(response.status_code, 302) def test_mail_document_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() + + self.grant(permission_mailing_send_document) - self.role.permissions.add( - permission_mailing_send_document.stored_permission - ) response = self.post( 'mailer:send_document', args=(self.document.pk,), data={'email': TEST_EMAIL_ADDRESS}, diff --git a/mayan/apps/metadata/tests/literals.py b/mayan/apps/metadata/tests/literals.py index 8d0bde2696..2caa5937a5 100644 --- a/mayan/apps/metadata/tests/literals.py +++ b/mayan/apps/metadata/tests/literals.py @@ -8,7 +8,7 @@ TEST_DEFAULT_VALUE = 'test' TEST_INCORRECT_LOOKUP_VALUE = '0' TEST_INVALID_DATE = '___________' TEST_LOOKUP_TEMPLATE = '1,2,3' -TEST_METADATA_TYPE_LABEL = 'test' +TEST_METADATA_TYPE_LABEL = 'test metadata type' TEST_METADATA_TYPE_LABEL_2 = 'test metadata type label 2' TEST_METADATA_TYPE_NAME = 'test' TEST_METADATA_TYPE_NAME_2 = 'test metadata type name 2' diff --git a/mayan/apps/metadata/tests/test_models.py b/mayan/apps/metadata/tests/test_models.py index 9860abda33..0d0b89df83 100644 --- a/mayan/apps/metadata/tests/test_models.py +++ b/mayan/apps/metadata/tests/test_models.py @@ -21,7 +21,7 @@ from .literals import ( @override_settings(OCR_AUTO_OCR=False) class MetadataTestCase(BaseTestCase): def setUp(self): - super(MetadataTestCase).setUp() + super(MetadataTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) @@ -38,9 +38,8 @@ class MetadataTestCase(BaseTestCase): ) def tearDown(self): - super(MetadataTestCase).tearDown() - self.document_type.delete() + super(MetadataTestCase, self).tearDown() def test_no_default(self): document_metadata = DocumentMetadata( diff --git a/mayan/apps/metadata/tests/test_views.py b/mayan/apps/metadata/tests/test_views.py index 47caf82b3e..870460eb9d 100644 --- a/mayan/apps/metadata/tests/test_views.py +++ b/mayan/apps/metadata/tests/test_views.py @@ -9,9 +9,6 @@ from documents.tests.literals import ( TEST_DOCUMENT_TYPE_2, TEST_SMALL_DOCUMENT_PATH ) from documents.tests.test_views import GenericDocumentViewTestCase -from user_management.tests.literals import ( - TEST_USER_USERNAME, TEST_USER_PASSWORD -) from ..models import MetadataType from ..permissions import ( @@ -37,37 +34,26 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase): self.document_type.metadata.create(metadata_type=self.metadata_type) def test_metadata_add_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_document_view.stored_permission - ) + self.grant(permission_document_view) response = self.post( 'metadata:metadata_add', args=(self.document.pk,), data={'metadata_type': self.metadata_type.pk} ) - self.assertEqual(response.status_code, 403) + self.assertNotContains( + response, text=self.metadata_type.label, status_code=200 + ) self.assertEqual(len(self.document.metadata.all()), 0) def test_metadata_add_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_document_view.stored_permission - ) - - self.role.permissions.add( - permission_metadata_document_add.stored_permission - ) - self.role.permissions.add( - permission_metadata_document_edit.stored_permission - ) + self.grant(permission_document_view) + self.grant(permission_metadata_document_add) + self.grant(permission_metadata_document_edit) response = self.post( 'metadata:metadata_add', args=(self.document.pk,), @@ -82,17 +68,10 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase): # Gitlab issue #204 # Problems to add required metadata after changing the document type - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_document_properties_edit.stored_permission - ) - - self.role.permissions.add( - permission_metadata_document_edit.stored_permission - ) + self.grant(permission_document_properties_edit) + self.grant(permission_metadata_document_edit) document_type_2 = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE_2 @@ -133,9 +112,7 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase): ) def test_metadata_remove_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() document_metadata = self.document.metadata.create( metadata_type=self.metadata_type, value='' @@ -143,16 +120,16 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase): self.assertEqual(len(self.document.metadata.all()), 1) - self.role.permissions.add( - permission_document_view.stored_permission - ) + self.grant(permission_document_view) # Test display of metadata removal form response = self.get( 'metadata:metadata_remove', args=(self.document.pk,), ) - self.assertEqual(response.status_code, 403) + self.assertNotContains( + response, text=self.metadata_type.label, status_code=200 + ) # Test post to metadata removal view response = self.post( @@ -165,14 +142,12 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase): }, follow=True ) - self.assertEqual(response.status_code, 403) + self.assertEqual(response.status_code, 200) self.assertEqual(len(self.document.metadata.all()), 1) def test_metadata_remove_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() document_metadata = self.document.metadata.create( metadata_type=self.metadata_type, value='' @@ -180,19 +155,18 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase): self.assertEqual(len(self.document.metadata.all()), 1) - self.role.permissions.add( - permission_document_view.stored_permission - ) - - self.role.permissions.add( - permission_metadata_document_remove.stored_permission - ) + self.grant(permission_document_view) + self.grant(permission_metadata_document_remove) # Test display of metadata removal form response = self.get( 'metadata:metadata_remove', args=(self.document.pk,), ) + self.assertContains( + response, text=self.metadata_type.label, status_code=200 + ) + self.assertContains(response, 'emove', status_code=200) # Test post to metadata removal view @@ -211,20 +185,11 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase): self.assertEqual(len(self.document.metadata.all()), 0) def test_multiple_document_metadata_edit(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_document_view.stored_permission - ) - - self.role.permissions.add( - permission_metadata_document_add.stored_permission - ) - self.role.permissions.add( - permission_metadata_document_edit.stored_permission - ) + self.grant(permission_document_view) + self.grant(permission_metadata_document_add) + self.grant(permission_metadata_document_edit) with open(TEST_SMALL_DOCUMENT_PATH) as file_object: document_2 = self.document_type.new_document( @@ -243,20 +208,11 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase): self.assertContains(response, 'Edit', status_code=200) def test_multiple_document_metadata_add(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_document_view.stored_permission - ) - - self.role.permissions.add( - permission_metadata_document_add.stored_permission - ) - self.role.permissions.add( - permission_metadata_document_edit.stored_permission - ) + self.grant(permission_document_view) + self.grant(permission_metadata_document_add) + self.grant(permission_metadata_document_edit) with open(TEST_SMALL_DOCUMENT_PATH) as file_object: document_2 = self.document_type.new_document( diff --git a/mayan/apps/ocr/tests/test_models.py b/mayan/apps/ocr/tests/test_models.py index d4a1f53a16..a5fa1002d8 100644 --- a/mayan/apps/ocr/tests/test_models.py +++ b/mayan/apps/ocr/tests/test_models.py @@ -2,8 +2,6 @@ from __future__ import unicode_literals -from django.core.files.base import File - from common.tests import BaseTestCase from documents.models import DocumentType from documents.settings import setting_language_choices @@ -13,6 +11,10 @@ from documents.tests import ( class DocumentOCRTestCase(BaseTestCase): + # PyOCR's leak descriptor in get_available_languages and image_to_string + # Disable descriptor leak test until fixed in upstream + _skip_file_descriptor_test = True + def setUp(self): super(DocumentOCRTestCase, self).setUp() @@ -22,7 +24,7 @@ class DocumentOCRTestCase(BaseTestCase): with open(TEST_SMALL_DOCUMENT_PATH) as file_object: self.document = self.document_type.new_document( - file_object=File(file_object), + file_object=file_object, ) def tearDown(self): @@ -32,11 +34,14 @@ class DocumentOCRTestCase(BaseTestCase): def test_ocr_language_backends_end(self): content = self.document.pages.first().ocr_content.content - self.assertTrue('Mayan EDMS Documentation' in content) class GermanOCRSupportTestCase(BaseTestCase): + # PyOCR's leak descriptor in get_available_languages and image_to_string + # Disable descriptor leak test until fixed in upstream + _skip_file_descriptor_test = True + def setUp(self): super(GermanOCRSupportTestCase, self).setUp() @@ -54,7 +59,7 @@ class GermanOCRSupportTestCase(BaseTestCase): with open(TEST_DEU_DOCUMENT_PATH) as file_object: self.document = self.document_type.new_document( - file_object=File(file_object), language=language_code + file_object=file_object, language=language_code ) def tearDown(self): diff --git a/mayan/apps/permissions/tests/test_models.py b/mayan/apps/permissions/tests/test_models.py index cdd494d45a..6b8acba7a2 100644 --- a/mayan/apps/permissions/tests/test_models.py +++ b/mayan/apps/permissions/tests/test_models.py @@ -3,8 +3,8 @@ from __future__ import unicode_literals from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from django.core.exceptions import PermissionDenied -from django.test import TestCase +from common.tests import BaseTestCase from user_management.tests import TEST_GROUP, TEST_USER_USERNAME from ..classes import Permission @@ -14,14 +14,14 @@ from ..permissions import permission_role_view from .literals import TEST_ROLE_LABEL -class PermissionTestCase(TestCase): +class PermissionTestCase(BaseTestCase): def setUp(self): + super(PermissionTestCase, self).setUp() self.user = get_user_model().objects.create( username=TEST_USER_USERNAME ) self.group = Group.objects.create(name=TEST_GROUP) self.role = Role.objects.create(label=TEST_ROLE_LABEL) - Permission.invalidate_cache() def test_no_permissions(self): with self.assertRaises(PermissionDenied): diff --git a/mayan/apps/permissions/tests/test_views.py b/mayan/apps/permissions/tests/test_views.py index 10553f2d88..1e12dade90 100644 --- a/mayan/apps/permissions/tests/test_views.py +++ b/mayan/apps/permissions/tests/test_views.py @@ -3,8 +3,8 @@ from __future__ import unicode_literals from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test.client import Client -from django.test import TestCase +from common.tests import BaseTestCase from user_management.tests import ( TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL ) @@ -14,8 +14,9 @@ from ..models import Role from .literals import TEST_ROLE_LABEL, TEST_ROLE_LABEL_EDITED -class PermissionsViewsTestCase(TestCase): +class PermissionsViewsTestCase(BaseTestCase): def setUp(self): + super(PermissionsViewsTestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD diff --git a/mayan/apps/smart_settings/apps.py b/mayan/apps/smart_settings/apps.py index 438538e6e4..7032b084db 100644 --- a/mayan/apps/smart_settings/apps.py +++ b/mayan/apps/smart_settings/apps.py @@ -14,6 +14,7 @@ class SmartSettingsApp(MayanAppConfig): app_namespace = 'settings' app_url = 'settings' name = 'smart_settings' + test = True verbose_name = _('Smart settings') def ready(self): diff --git a/mayan/apps/smart_settings/tests/test_view_permissions.py b/mayan/apps/smart_settings/tests/test_view_permissions.py index f68757cd9b..010f32097c 100644 --- a/mayan/apps/smart_settings/tests/test_view_permissions.py +++ b/mayan/apps/smart_settings/tests/test_view_permissions.py @@ -1,63 +1,32 @@ from __future__ import absolute_import, unicode_literals -from django.contrib.auth import get_user_model -from django.contrib.auth.models import Group -from django.core.urlresolvers import reverse -from django.test.client import Client -from django.test import TestCase - -from permissions.classes import Permission -from permissions.models import Role -from permissions.tests import TEST_ROLE +from common.tests.test_views import GenericViewTestCase from ..permissions import permission_settings_view -TEST_EMAIL = 'test_user@example.com' -TEST_GROUP = 'test group' -TEST_PASSWORD = 'testuserpassword' -TEST_USERNAME = 'test_user' - -class SmartSettingViewPermissionsTestCase(TestCase): +class SmartSettingViewPermissionsTestCase(GenericViewTestCase): def setUp(self): - self.user = get_user_model().objects.create_user( - username=TEST_USERNAME, email=TEST_EMAIL, - password=TEST_PASSWORD - ) - self.group = Group.objects.create(name=TEST_GROUP) - self.role = Role.objects.create(label=TEST_ROLE) - - self.group.user_set.add(self.user) - self.role.groups.add(self.group) - - Permission.invalidate_cache() - - self.client = Client() - self.client.login( - username=TEST_USERNAME, password=TEST_PASSWORD - ) - - def tearDown(self): - self.group.delete() - self.role.delete() - self.user.delete() + super(SmartSettingViewPermissionsTestCase, self).setUp() + self.login_user() def test_view_access_denied(self): - response = self.client.get(reverse('settings:namespace_list')) + response = self.get('settings:namespace_list') + self.assertEqual(response.status_code, 403) - response = self.client.get( - reverse('settings:namespace_detail', args=('common',),) + response = self.get( + 'settings:namespace_detail', args=('common',) ) self.assertEqual(response.status_code, 403) def test_view_access_permitted(self): - self.role.permissions.add(permission_settings_view.stored_permission) + self.grant(permission_settings_view) - response = self.client.get(reverse('settings:namespace_list')) + response = self.get('settings:namespace_list') self.assertEqual(response.status_code, 200) - response = self.client.get( - reverse('settings:namespace_detail', args=('common',),) + response = self.get( + 'settings:namespace_detail', args=('common',) ) self.assertEqual(response.status_code, 200) diff --git a/mayan/apps/sources/tests/test_classes.py b/mayan/apps/sources/tests/test_classes.py index 3406eed8c8..68a6433ca1 100644 --- a/mayan/apps/sources/tests/test_classes.py +++ b/mayan/apps/sources/tests/test_classes.py @@ -3,15 +3,14 @@ from __future__ import unicode_literals import os import shutil -from django.test import TestCase - -from documents.tests import TEST_NON_ASCII_DOCUMENT_PATH +from common.tests import BaseTestCase from common.utils import mkdtemp +from documents.tests import TEST_NON_ASCII_DOCUMENT_PATH from ..classes import StagingFile -class StagingFileTestCase(TestCase): +class StagingFileTestCase(BaseTestCase): def test_unicode_staging_file(self): temporary_directory = mkdtemp() shutil.copy(TEST_NON_ASCII_DOCUMENT_PATH, temporary_directory) diff --git a/mayan/apps/sources/tests/test_models.py b/mayan/apps/sources/tests/test_models.py index 3e8e65987c..0f8a4c298e 100644 --- a/mayan/apps/sources/tests/test_models.py +++ b/mayan/apps/sources/tests/test_models.py @@ -30,7 +30,7 @@ class UploadDocumentTestCase(BaseTestCase): """ def setUp(self): - super(UploadDocumentTestCase).setUp() + super(UploadDocumentTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) @@ -42,10 +42,9 @@ class UploadDocumentTestCase(BaseTestCase): self.client = Client() def tearDown(self): - super(UploadDocumentTestCase).tearDown() - self.document_type.delete() self.admin_user.delete() + super(UploadDocumentTestCase, self).tearDown() def test_issue_gh_163(self): """ @@ -97,14 +96,16 @@ class UploadDocumentTestCase(BaseTestCase): @override_settings(OCR_AUTO_OCR=False) -class CompressedUploadsTestCase(TestCase): +class CompressedUploadsTestCase(BaseTestCase): def setUp(self): + super(CompressedUploadsTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) def tearDown(self): self.document_type.delete() + super(CompressedUploadsTestCase, self).tearDown() def test_upload_compressed_file(self): source = WebFormSource( diff --git a/mayan/apps/sources/tests/test_views.py b/mayan/apps/sources/tests/test_views.py index 0c911922ce..a187354a1d 100644 --- a/mayan/apps/sources/tests/test_views.py +++ b/mayan/apps/sources/tests/test_views.py @@ -22,7 +22,6 @@ from documents.tests import ( from documents.tests.test_views import GenericDocumentViewTestCase from user_management.tests import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, - TEST_USER_PASSWORD, TEST_USER_USERNAME ) from ..links import link_upload_version from ..literals import SOURCE_CHOICE_WEB_FORM @@ -48,9 +47,7 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase): self.document.delete() def test_upload_wizard_without_permission(self): - self.client.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() with open(TEST_DOCUMENT_PATH) as file_object: response = self.client.post( @@ -66,13 +63,9 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase): self.assertEqual(Document.objects.count(), 0) def test_upload_wizard_with_permission(self): - self.client.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_document_create.stored_permission - ) + self.grant(permission_document_create) with open(TEST_DOCUMENT_PATH) as file_object: response = self.client.post( @@ -93,9 +86,7 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase): permssion for the document type to the user """ - self.client.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() # Create an access control entry giving the role the document # create permission for the selected document type. @@ -133,8 +124,8 @@ class DocumentUploadIssueTestCase(BaseTestCase): self.client = Client() def tearDown(self): - super(DocumentUploadIssueTestCase, self).tearDown() self.document_type.delete() + super(DocumentUploadIssueTestCase, self).tearDown() def test_issue_25(self): # Login the admin user @@ -198,9 +189,7 @@ class NewDocumentVersionViewTestCase(GenericDocumentViewTestCase): - Upload version view should reject request """ - self.login( - username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD - ) + self.login_admin_user() NewVersionBlock.objects.block(self.document) @@ -239,9 +228,7 @@ class StagingFolderTestCase(GenericViewTestCase): super(StagingFolderTestCase, self).tearDown() def test_staging_folder_delete_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() staging_folder = StagingFolderSource.objects.create( label=TEST_SOURCE_LABEL, @@ -264,13 +251,9 @@ class StagingFolderTestCase(GenericViewTestCase): self.assertEqual(len(list(staging_folder.get_files())), 1) def test_staging_folder_delete_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_staging_file_delete.stored_permission - ) + self.grant(permission_staging_file_delete) staging_folder = StagingFolderSource.objects.create( label=TEST_SOURCE_LABEL, @@ -294,49 +277,37 @@ class StagingFolderTestCase(GenericViewTestCase): class SourcesTestCase(GenericDocumentViewTestCase): - def create_web_source(self): + def _create_web_source(self): self.source = WebFormSource.objects.create( enabled=True, label=TEST_SOURCE_LABEL, uncompress=TEST_SOURCE_UNCOMPRESS_N ) def test_source_list_view_with_permission(self): - self.create_web_source() + self._create_web_source() - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_sources_setup_view.stored_permission - ) + self.grant(permission_sources_setup_view) response = self.get(viewname='sources:setup_source_list') self.assertContains(response, text=self.source.label, status_code=200) def test_source_list_view_no_permission(self): - self.create_web_source() + self._create_web_source() - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() response = self.get(viewname='sources:setup_source_list') self.assertEqual(response.status_code, 403) def test_source_create_view_with_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_sources_setup_create.stored_permission - ) - self.role.permissions.add( - permission_sources_setup_view.stored_permission - ) + self.grant(permission_sources_setup_create) + self.grant(permission_sources_setup_view) response = self.post( args=(SOURCE_CHOICE_WEB_FORM,), follow=True, @@ -354,13 +325,9 @@ class SourcesTestCase(GenericDocumentViewTestCase): self.assertEquals(response.status_code, 200) def test_source_create_view_no_permission(self): - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_sources_setup_view.stored_permission - ) + self.grant(permission_sources_setup_view) response = self.post( args=(SOURCE_CHOICE_WEB_FORM,), follow=True, @@ -374,18 +341,12 @@ class SourcesTestCase(GenericDocumentViewTestCase): self.assertEqual(WebFormSource.objects.count(), 0) def test_source_delete_view_with_permission(self): - self.create_web_source() + self._create_web_source() - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_sources_setup_delete.stored_permission - ) - self.role.permissions.add( - permission_sources_setup_view.stored_permission - ) + self.grant(permission_sources_setup_delete) + self.grant(permission_sources_setup_view) response = self.post( args=(self.source.pk,), follow=True, @@ -396,15 +357,11 @@ class SourcesTestCase(GenericDocumentViewTestCase): self.assertEqual(WebFormSource.objects.count(), 0) def test_source_delete_view_no_permission(self): - self.create_web_source() + self._create_web_source() - self.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) + self.login_user() - self.role.permissions.add( - permission_sources_setup_view.stored_permission - ) + self.grant(permission_sources_setup_view) response = self.post( args=(self.source.pk,), follow=True, diff --git a/mayan/apps/tags/tests/test_models.py b/mayan/apps/tags/tests/test_models.py index 1ec4797339..69dd5bbf7d 100644 --- a/mayan/apps/tags/tests/test_models.py +++ b/mayan/apps/tags/tests/test_models.py @@ -15,7 +15,7 @@ from .literals import TEST_TAG_COLOR, TEST_TAG_LABEL @override_settings(OCR_AUTO_OCR=False) class TagTestCase(BaseTestCase): def setUp(self): - super(TagTestCase).setUp() + super(TagTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) @@ -26,9 +26,9 @@ class TagTestCase(BaseTestCase): ) def tearDown(self): - super(TagTestCase).tearDown() self.document.delete() self.document_type.delete() + super(TagTestCase, self).tearDown() def runTest(self): tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) diff --git a/mayan/apps/tags/tests/test_views.py b/mayan/apps/tags/tests/test_views.py index ad572b52a9..03175b5704 100644 --- a/mayan/apps/tags/tests/test_views.py +++ b/mayan/apps/tags/tests/test_views.py @@ -2,7 +2,6 @@ from __future__ import unicode_literals from documents.permissions import permission_document_view from documents.tests.test_views import GenericDocumentViewTestCase -from user_management.tests import TEST_USER_PASSWORD, TEST_USER_USERNAME from ..models import Tag from ..permissions import ( @@ -25,12 +24,12 @@ class TagViewTestCase(GenericDocumentViewTestCase): ) def tearDown(self): - super(TagViewTestCase, self).tearDown() if self.tag.pk: self.tag.delete() + super(TagViewTestCase, self).tearDown() def test_tag_create_view_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.tag.delete() self.assertEqual(Tag.objects.count(), 0) @@ -46,12 +45,12 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(Tag.objects.count(), 0) def test_tag_create_view_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.tag.delete() self.assertEqual(Tag.objects.count(), 0) - self.role.permissions.add(permission_tag_create.stored_permission) + self.grant(permission_tag_create) response = self.post( 'tags:tag_create', data={ @@ -68,7 +67,7 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(tag.color, TEST_TAG_COLOR) def test_tag_delete_view_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.assertEqual(Tag.objects.count(), 1) @@ -80,11 +79,11 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(Tag.objects.count(), 1) def test_tag_delete_view_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.assertEqual(Tag.objects.count(), 1) - self.role.permissions.add(permission_tag_delete.stored_permission) + self.grant(permission_tag_delete) response = self.post( 'tags:tag_delete', args=(self.tag.pk,), follow=True @@ -95,7 +94,7 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(Tag.objects.count(), 0) def test_tag_multiple_delete_view_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.assertEqual(Tag.objects.count(), 1) @@ -107,11 +106,11 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(Tag.objects.count(), 1) def test_tag_multiple_delete_view_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.assertEqual(Tag.objects.count(), 1) - self.role.permissions.add(permission_tag_delete.stored_permission) + self.grant(permission_tag_delete) response = self.post( 'tags:tag_multiple_delete', data={'id_list': self.tag.pk}, @@ -123,7 +122,7 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(Tag.objects.count(), 0) def test_tag_edit_view_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() response = self.post( 'tags:tag_edit', args=(self.tag.pk,), data={ @@ -137,9 +136,9 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(tag.color, TEST_TAG_COLOR) def test_tag_edit_view_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() - self.role.permissions.add(permission_tag_edit.stored_permission) + self.grant(permission_tag_edit) response = self.post( 'tags:tag_edit', args=(self.tag.pk,), data={ @@ -153,28 +152,31 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(tag.color, TEST_TAG_COLOR_EDITED) def test_document_tags_widget_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.tag.documents.add(self.document) response = self.get('documents:document_list') self.assertNotContains(response, text=TEST_TAG_LABEL, status_code=200) def test_document_tags_widget_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.tag.documents.add(self.document) - self.role.permissions.add(permission_tag_view.stored_permission) - self.role.permissions.add(permission_document_view.stored_permission) + + self.grant(permission_tag_view) + self.grant(permission_document_view) + response = self.get('documents:document_list') self.assertContains(response, text=TEST_TAG_LABEL, status_code=200) def test_document_attach_tag_view_no_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.assertEqual(self.document.tags.count(), 0) - self.role.permissions.add(permission_tag_view.stored_permission) + self.grant(permission_tag_view) + response = self.post( 'tags:tag_attach', args=(self.document.pk,), data={ 'tag': self.tag.pk, @@ -188,14 +190,14 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document.tags.count(), 0) def test_document_attach_tag_view_with_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.assertEqual(self.document.tags.count(), 0) - self.role.permissions.add(permission_tag_attach.stored_permission) + self.grant(permission_tag_attach) # permission_tag_view is needed because the form filters the # choices - self.role.permissions.add(permission_tag_view.stored_permission) + self.grant(permission_tag_view) response = self.post( 'tags:tag_attach', args=(self.document.pk,), data={ @@ -211,10 +213,10 @@ class TagViewTestCase(GenericDocumentViewTestCase): ) def test_document_multiple_attach_tag_view_no_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.assertEqual(self.document.tags.count(), 0) - self.role.permissions.add(permission_tag_view.stored_permission) + self.grant(permission_tag_view) response = self.post( 'tags:multiple_documents_tag_attach', data={ @@ -227,15 +229,15 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document.tags.count(), 0) def test_document_multiple_attach_tag_view_with_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.assertEqual(self.document.tags.count(), 0) - self.role.permissions.add(permission_tag_attach.stored_permission) + self.grant(permission_tag_attach) # permission_tag_view is needed because the form filters the # choices - self.role.permissions.add(permission_tag_view.stored_permission) + self.grant(permission_tag_view) response = self.post( 'tags:multiple_documents_tag_attach', data={ @@ -251,11 +253,12 @@ class TagViewTestCase(GenericDocumentViewTestCase): ) def test_single_document_multiple_tag_remove_view_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.document.tags.add(self.tag) self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) - self.role.permissions.add(permission_tag_view.stored_permission) + + self.grant(permission_tag_view) response = self.post( 'tags:single_document_multiple_tag_remove', @@ -269,13 +272,13 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) def test_single_document_multiple_tag_remove_view_with_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.document.tags.add(self.tag) self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) - self.role.permissions.add(permission_tag_remove.stored_permission) - self.role.permissions.add(permission_tag_view.stored_permission) + self.grant(permission_tag_remove) + self.grant(permission_tag_view) response = self.post( 'tags:single_document_multiple_tag_remove', @@ -289,11 +292,12 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document.tags.count(), 0) def test_multiple_documents_selection_tag_remove_view_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.document.tags.add(self.tag) self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) - self.role.permissions.add(permission_tag_view.stored_permission) + + self.grant(permission_tag_view) response = self.post( 'tags:multiple_documents_selection_tag_remove', @@ -307,13 +311,13 @@ class TagViewTestCase(GenericDocumentViewTestCase): self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) def test_multiple_documents_selection_tag_remove_view_with_permission(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.login_user() self.document.tags.add(self.tag) self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) - self.role.permissions.add(permission_tag_remove.stored_permission) - self.role.permissions.add(permission_tag_view.stored_permission) + self.grant(permission_tag_remove) + self.grant(permission_tag_view) response = self.post( 'tags:multiple_documents_selection_tag_remove', diff --git a/mayan/apps/user_management/tests/test_views.py b/mayan/apps/user_management/tests/test_views.py index bf5c3bb873..d32f751fb2 100644 --- a/mayan/apps/user_management/tests/test_views.py +++ b/mayan/apps/user_management/tests/test_views.py @@ -17,9 +17,7 @@ from ..permissions import ( permission_user_delete, permission_user_edit, permission_user_view ) -from .literals import ( - TEST_USER_PASSWORD, TEST_USER_PASSWORD_EDITED, TEST_USER_USERNAME -) +from .literals import TEST_USER_PASSWORD_EDITED, TEST_USER_USERNAME TEST_USER_TO_DELETE_USERNAME = 'user_to_delete' @@ -43,10 +41,12 @@ class UserManagementViewTestCase(GenericViewTestCase): self.assertEqual(response.status_code, 403) - self.client.logout() - self.client.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD_EDITED - ) + self.logout() + + with self.assertRaises(AssertionError): + self.login( + username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD_EDITED + ) response = self.get('common:current_user_details') @@ -60,8 +60,8 @@ class UserManagementViewTestCase(GenericViewTestCase): self.assertEqual(response.status_code, 302) - self.client.logout() - self.client.login( + self.logout() + self.login( username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD_EDITED ) response = self.get('common:current_user_details') @@ -72,8 +72,8 @@ class UserManagementViewTestCase(GenericViewTestCase): return self.post( 'user_management:user_multiple_set_password', data={ 'id_list': self.user.pk, - 'new_password_1': TEST_USER_PASSWORD_EDITED, - 'new_password_2': TEST_USER_PASSWORD_EDITED + 'new_password_1': password, + 'new_password_2': password }, follow=True ) @@ -87,9 +87,11 @@ class UserManagementViewTestCase(GenericViewTestCase): self.assertEqual(response.status_code, 403) self.logout() - self.client.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD_EDITED - ) + + with self.assertRaises(AssertionError): + self.login( + username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD_EDITED + ) response = self.get('common:current_user_details')