Update and fix failing tests.

This commit is contained in:
Roberto Rosario
2017-01-14 03:08:32 -04:00
parent 4e7559d396
commit 5ea31554bc
26 changed files with 212 additions and 355 deletions

View File

@@ -9,7 +9,6 @@ from common.tests import BaseTestCase
from documents.models import Document, DocumentType from documents.models import Document, DocumentType
from documents.permissions import permission_document_view from documents.permissions import permission_document_view
from documents.tests import TEST_SMALL_DOCUMENT_PATH, TEST_DOCUMENT_TYPE from documents.tests import TEST_SMALL_DOCUMENT_PATH, TEST_DOCUMENT_TYPE
from permissions.classes import Permission
from permissions.models import Role from permissions.models import Role
from permissions.tests.literals import TEST_ROLE_LABEL from permissions.tests.literals import TEST_ROLE_LABEL
from user_management.tests.literals import TEST_USER_USERNAME, TEST_GROUP 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) @override_settings(OCR_AUTO_OCR=False)
class PermissionTestCase(BaseTestCase): class PermissionTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(PermissionTestCase).setUp() super(PermissionTestCase, self).setUp()
self.document_type_1 = DocumentType.objects.create( self.document_type_1 = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
@@ -56,10 +55,9 @@ class PermissionTestCase(BaseTestCase):
self.role.groups.add(self.group) self.role.groups.add(self.group)
def tearDown(self): def tearDown(self):
super(PermissionTestCase).tearDown()
for document_type in DocumentType.objects.all(): for document_type in DocumentType.objects.all():
document_type.delete() document_type.delete()
super(PermissionTestCase, self).tearDown()
def test_check_access_without_permissions(self): def test_check_access_without_permissions(self):
with self.assertRaises(PermissionDenied): with self.assertRaises(PermissionDenied):

View File

@@ -26,7 +26,7 @@ from ..models import DocumentCheckout, NewVersionBlock
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class DocumentCheckoutTestCase(BaseTestCase): class DocumentCheckoutTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(DocumentCheckoutTestCase).setUp() super(DocumentCheckoutTestCase, self).setUp()
self.admin_user = get_user_model().objects.create_superuser( self.admin_user = get_user_model().objects.create_superuser(
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL,
password=TEST_ADMIN_PASSWORD password=TEST_ADMIN_PASSWORD
@@ -42,8 +42,8 @@ class DocumentCheckoutTestCase(BaseTestCase):
) )
def tearDown(self): def tearDown(self):
super(DocumentCheckoutTestCase).tearDown()
self.document_type.delete() self.document_type.delete()
super(DocumentCheckoutTestCase, self).tearDown()
def test_document_checkout(self): def test_document_checkout(self):
expiration_datetime = now() + datetime.timedelta(days=1) expiration_datetime = now() + datetime.timedelta(days=1)

View File

@@ -92,6 +92,9 @@ class GenericViewTestCase(BaseTestCase):
def login_user(self): def login_user(self):
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) 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): def logout(self):
self.client.logout() self.client.logout()

View File

@@ -19,7 +19,7 @@ from .literals import (
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class IndexTestCase(BaseTestCase): class IndexTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(IndexTestCase).setUp() super(IndexTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
@@ -30,8 +30,8 @@ class IndexTestCase(BaseTestCase):
) )
def tearDown(self): def tearDown(self):
super(IndexTestCase).tearDown()
self.document_type.delete() self.document_type.delete()
super(IndexTestCase, self).tearDown()
def test_indexing(self): def test_indexing(self):
metadata_type = MetadataType.objects.create( metadata_type = MetadataType.objects.create(

View File

@@ -24,14 +24,14 @@ from .literals import (
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class DocumentSignaturesTestCase(BaseTestCase): class DocumentSignaturesTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(DocumentSignaturesTestCase).setUp() super(DocumentSignaturesTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
def tearDown(self): def tearDown(self):
super(DocumentSignaturesTestCase).tearDown()
self.document_type.delete() self.document_type.delete()
super(DocumentSignaturesTestCase, self).tearDown()
def test_embedded_signature_no_key(self): def test_embedded_signature_no_key(self):
with open(TEST_SIGNED_DOCUMENT_PATH) as file_object: with open(TEST_SIGNED_DOCUMENT_PATH) as file_object:
@@ -252,16 +252,15 @@ class DocumentSignaturesTestCase(BaseTestCase):
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class EmbeddedSignaturesTestCase(BaseTestCase): class EmbeddedSignaturesTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(EmbeddedSignaturesTestCase).setUp() super(EmbeddedSignaturesTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
def tearDown(self): def tearDown(self):
super(EmbeddedSignaturesTestCase).tearDown()
self.document_type.delete() self.document_type.delete()
super(EmbeddedSignaturesTestCase, self).tearDown()
def test_unsigned_document_version_method(self): def test_unsigned_document_version_method(self):
TEST_UNSIGNED_DOCUMENT_COUNT = 3 TEST_UNSIGNED_DOCUMENT_COUNT = 3

View File

@@ -1,17 +1,12 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from django.contrib.auth import get_user_model
from django.core.urlresolvers import reverse 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.models import DocumentType
from documents.tests.literals import ( from documents.tests.literals import (
TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH 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 from ..models import Workflow, WorkflowState, WorkflowTransition
@@ -22,19 +17,11 @@ from .literals import (
) )
class DocumentStateViewTestCase(TestCase): class DocumentStateViewTestCase(GenericViewTestCase):
def setUp(self): def setUp(self):
self.admin_user = get_user_model().objects.create_superuser( super(DocumentStateViewTestCase, self).setUp()
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL,
password=TEST_ADMIN_PASSWORD self.login_admin_user()
)
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())
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
@@ -47,6 +34,7 @@ class DocumentStateViewTestCase(TestCase):
def tearDown(self): def tearDown(self):
self.document_type.delete() self.document_type.delete()
super(DocumentStateViewTestCase, self).tearDown()
def test_creating_workflow(self): def test_creating_workflow(self):
response = self.client.post( response = self.client.post(

View File

@@ -1,8 +1,9 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from django.contrib.auth import get_user_model 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.models import DocumentType
from documents.search import document_search from documents.search import document_search
from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH 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): def setUp(self):
super(DocumentSearchTestCase, self).setUp()
self.admin_user = get_user_model().objects.create_superuser( self.admin_user = get_user_model().objects.create_superuser(
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL,
password=TEST_ADMIN_PASSWORD password=TEST_ADMIN_PASSWORD
@@ -28,6 +31,7 @@ class DocumentSearchTestCase(TestCase):
def tearDown(self): def tearDown(self):
self.document_type.delete() self.document_type.delete()
super(DocumentSearchTestCase, self).tearDown()
def test_simple_search_after_related_name_change(self): def test_simple_search_after_related_name_change(self):
""" """

View File

@@ -1,35 +1,23 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from django.contrib.auth import get_user_model
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.test import TestCase from django.test import override_settings
from django.test.client import Client
from common.tests.test_views import GenericViewTestCase
from documents.models import DocumentType from documents.models import DocumentType
from documents.search import document_search from documents.search import document_search
from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH 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 Functional tests to make sure issue 46 is fixed
""" """
def setUp(self): def setUp(self):
self.admin_user = get_user_model().objects.create_superuser( super(Issue46TestCase, self).setUp()
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, self.login_admin_user()
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())
self.document_count = 4 self.document_count = 4
@@ -48,6 +36,7 @@ class Issue46TestCase(TestCase):
def tearDown(self): def tearDown(self):
for document_type in DocumentType.objects.all(): for document_type in DocumentType.objects.all():
document_type.delete() document_type.delete()
super(Issue46TestCase, self).tearDown()
def test_advanced_search_past_first_page(self): def test_advanced_search_past_first_page(self):
# Make sure all documents are returned by the search # Make sure all documents are returned by the search

View File

@@ -14,7 +14,7 @@ from .literals import TEST_FOLDER_LABEL
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class FolderTestCase(BaseTestCase): class FolderTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(FolderTestCase).setUp() super(FolderTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
@@ -25,9 +25,8 @@ class FolderTestCase(BaseTestCase):
) )
def tearDown(self): def tearDown(self):
super(FolderTestCase).tearDown()
self.document_type.delete() self.document_type.delete()
super(FolderTestCase, self).tearDown()
def test_folder_creation(self): def test_folder_creation(self):
folder = Folder.objects.create(label=TEST_FOLDER_LABEL) folder = Folder.objects.create(label=TEST_FOLDER_LABEL)

View File

@@ -20,7 +20,7 @@ from .literals import TEST_SMART_LINK_LABEL, TEST_SMART_LINK_DYNAMIC_LABEL
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class SmartLinkTestCase(BaseTestCase): class SmartLinkTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(SmartLinkTestCase).setUp() super(SmartLinkTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
@@ -36,9 +36,8 @@ class SmartLinkTestCase(BaseTestCase):
) )
def tearDown(self): def tearDown(self):
super(SmartLinkTestCase).tearDown()
self.document_type.delete() self.document_type.delete()
super(SmartLinkTestCase, self).tearDown()
def test_dynamic_label(self): def test_dynamic_label(self):
smart_link = SmartLink.objects.create( smart_link = SmartLink.objects.create(

View File

@@ -2,9 +2,6 @@ from __future__ import absolute_import, unicode_literals
from documents.permissions import permission_document_view from documents.permissions import permission_document_view
from documents.tests.test_views import GenericDocumentViewTestCase from documents.tests.test_views import GenericDocumentViewTestCase
from user_management.tests import (
TEST_USER_USERNAME, TEST_USER_PASSWORD
)
from ..models import SmartLink from ..models import SmartLink
from ..permissions import ( from ..permissions import (
@@ -20,7 +17,7 @@ from .literals import (
class SmartLinkViewTestCase(GenericDocumentViewTestCase): class SmartLinkViewTestCase(GenericDocumentViewTestCase):
def test_smart_link_create_view_no_permission(self): 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( response = self.post(
'linking:smart_link_create', data={ 'linking:smart_link_create', data={
@@ -32,7 +29,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(SmartLink.objects.count(), 0) self.assertEqual(SmartLink.objects.count(), 0)
def test_smart_link_create_view_with_permission(self): 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( self.role.permissions.add(
permission_smart_link_create.stored_permission permission_smart_link_create.stored_permission
@@ -50,7 +47,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase):
) )
def test_smart_link_delete_view_no_permission(self): 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) smart_link = SmartLink.objects.create(label=TEST_SMART_LINK_LABEL)
@@ -61,7 +58,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(SmartLink.objects.count(), 1) self.assertEqual(SmartLink.objects.count(), 1)
def test_smart_link_delete_view_with_permission(self): 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( self.role.permissions.add(
permission_smart_link_delete.stored_permission permission_smart_link_delete.stored_permission
@@ -77,7 +74,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(SmartLink.objects.count(), 0) self.assertEqual(SmartLink.objects.count(), 0)
def test_smart_link_edit_view_no_permission(self): 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) 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) self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL)
def test_smart_link_edit_view_with_permission(self): 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( self.role.permissions.add(
permission_smart_link_edit.stored_permission permission_smart_link_edit.stored_permission
@@ -125,7 +122,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase):
def test_document_smart_link_list_view_no_permission(self): def test_document_smart_link_list_view_no_permission(self):
self.setup_smart_links() self.setup_smart_links()
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) self.login_user()
self.role.permissions.add( self.role.permissions.add(
permission_document_view.stored_permission permission_document_view.stored_permission
@@ -145,7 +142,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase):
def test_document_smart_link_list_view_with_permission(self): def test_document_smart_link_list_view_with_permission(self):
self.setup_smart_links() self.setup_smart_links()
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) self.login_user()
self.role.permissions.add( self.role.permissions.add(
permission_smart_link_view.stored_permission permission_smart_link_view.stored_permission

View File

@@ -3,9 +3,6 @@ from __future__ import unicode_literals
from django.core import mail from django.core import mail
from documents.tests.test_views import GenericDocumentViewTestCase from documents.tests.test_views import GenericDocumentViewTestCase
from user_management.tests.literals import (
TEST_USER_PASSWORD, TEST_USER_USERNAME
)
from ..permissions import ( from ..permissions import (
permission_mailing_link, permission_mailing_send_document permission_mailing_link, permission_mailing_send_document
@@ -16,9 +13,7 @@ TEST_EMAIL_ADDRESS = 'test@example.com'
class MailerViewsTestCase(GenericDocumentViewTestCase): class MailerViewsTestCase(GenericDocumentViewTestCase):
def test_mail_link_view_no_permissions(self): def test_mail_link_view_no_permissions(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
response = self.post( response = self.post(
'mailer:send_document_link', args=(self.document.pk,), 'mailer:send_document_link', args=(self.document.pk,),
@@ -28,13 +23,10 @@ class MailerViewsTestCase(GenericDocumentViewTestCase):
self.assertEqual(response.status_code, 302) self.assertEqual(response.status_code, 302)
def test_mail_link_view_with_permission(self): def test_mail_link_view_with_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
) self.grant(permission_mailing_link)
self.role.permissions.add(
permission_mailing_link.stored_permission
)
response = self.post( response = self.post(
'mailer:send_document_link', args=(self.document.pk,), 'mailer:send_document_link', args=(self.document.pk,),
data={'email': TEST_EMAIL_ADDRESS}, data={'email': TEST_EMAIL_ADDRESS},
@@ -48,9 +40,7 @@ class MailerViewsTestCase(GenericDocumentViewTestCase):
self.assertEqual(mail.outbox[0].to, [TEST_EMAIL_ADDRESS]) self.assertEqual(mail.outbox[0].to, [TEST_EMAIL_ADDRESS])
def test_mail_document_view_no_permissions(self): def test_mail_document_view_no_permissions(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
response = self.post( response = self.post(
'mailer:send_document', args=(self.document.pk,), 'mailer:send_document', args=(self.document.pk,),
@@ -60,13 +50,10 @@ class MailerViewsTestCase(GenericDocumentViewTestCase):
self.assertEqual(response.status_code, 302) self.assertEqual(response.status_code, 302)
def test_mail_document_view_with_permission(self): def test_mail_document_view_with_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
) self.grant(permission_mailing_send_document)
self.role.permissions.add(
permission_mailing_send_document.stored_permission
)
response = self.post( response = self.post(
'mailer:send_document', args=(self.document.pk,), 'mailer:send_document', args=(self.document.pk,),
data={'email': TEST_EMAIL_ADDRESS}, data={'email': TEST_EMAIL_ADDRESS},

View File

@@ -8,7 +8,7 @@ TEST_DEFAULT_VALUE = 'test'
TEST_INCORRECT_LOOKUP_VALUE = '0' TEST_INCORRECT_LOOKUP_VALUE = '0'
TEST_INVALID_DATE = '___________' TEST_INVALID_DATE = '___________'
TEST_LOOKUP_TEMPLATE = '1,2,3' 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_LABEL_2 = 'test metadata type label 2'
TEST_METADATA_TYPE_NAME = 'test' TEST_METADATA_TYPE_NAME = 'test'
TEST_METADATA_TYPE_NAME_2 = 'test metadata type name 2' TEST_METADATA_TYPE_NAME_2 = 'test metadata type name 2'

View File

@@ -21,7 +21,7 @@ from .literals import (
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class MetadataTestCase(BaseTestCase): class MetadataTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(MetadataTestCase).setUp() super(MetadataTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
@@ -38,9 +38,8 @@ class MetadataTestCase(BaseTestCase):
) )
def tearDown(self): def tearDown(self):
super(MetadataTestCase).tearDown()
self.document_type.delete() self.document_type.delete()
super(MetadataTestCase, self).tearDown()
def test_no_default(self): def test_no_default(self):
document_metadata = DocumentMetadata( document_metadata = DocumentMetadata(

View File

@@ -9,9 +9,6 @@ from documents.tests.literals import (
TEST_DOCUMENT_TYPE_2, TEST_SMALL_DOCUMENT_PATH TEST_DOCUMENT_TYPE_2, TEST_SMALL_DOCUMENT_PATH
) )
from documents.tests.test_views import GenericDocumentViewTestCase from documents.tests.test_views import GenericDocumentViewTestCase
from user_management.tests.literals import (
TEST_USER_USERNAME, TEST_USER_PASSWORD
)
from ..models import MetadataType from ..models import MetadataType
from ..permissions import ( from ..permissions import (
@@ -37,37 +34,26 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
self.document_type.metadata.create(metadata_type=self.metadata_type) self.document_type.metadata.create(metadata_type=self.metadata_type)
def test_metadata_add_view_no_permission(self): def test_metadata_add_view_no_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_document_view)
permission_document_view.stored_permission
)
response = self.post( response = self.post(
'metadata:metadata_add', args=(self.document.pk,), 'metadata:metadata_add', args=(self.document.pk,),
data={'metadata_type': self.metadata_type.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) self.assertEqual(len(self.document.metadata.all()), 0)
def test_metadata_add_view_with_permission(self): def test_metadata_add_view_with_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_document_view)
permission_document_view.stored_permission self.grant(permission_metadata_document_add)
) self.grant(permission_metadata_document_edit)
self.role.permissions.add(
permission_metadata_document_add.stored_permission
)
self.role.permissions.add(
permission_metadata_document_edit.stored_permission
)
response = self.post( response = self.post(
'metadata:metadata_add', args=(self.document.pk,), 'metadata:metadata_add', args=(self.document.pk,),
@@ -82,17 +68,10 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
# Gitlab issue #204 # Gitlab issue #204
# Problems to add required metadata after changing the document type # Problems to add required metadata after changing the document type
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_document_properties_edit)
permission_document_properties_edit.stored_permission self.grant(permission_metadata_document_edit)
)
self.role.permissions.add(
permission_metadata_document_edit.stored_permission
)
document_type_2 = DocumentType.objects.create( document_type_2 = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE_2 label=TEST_DOCUMENT_TYPE_2
@@ -133,9 +112,7 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
) )
def test_metadata_remove_view_no_permission(self): def test_metadata_remove_view_no_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
document_metadata = self.document.metadata.create( document_metadata = self.document.metadata.create(
metadata_type=self.metadata_type, value='' metadata_type=self.metadata_type, value=''
@@ -143,16 +120,16 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
self.assertEqual(len(self.document.metadata.all()), 1) self.assertEqual(len(self.document.metadata.all()), 1)
self.role.permissions.add( self.grant(permission_document_view)
permission_document_view.stored_permission
)
# Test display of metadata removal form # Test display of metadata removal form
response = self.get( response = self.get(
'metadata:metadata_remove', args=(self.document.pk,), '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 # Test post to metadata removal view
response = self.post( response = self.post(
@@ -165,14 +142,12 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
}, follow=True }, follow=True
) )
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 200)
self.assertEqual(len(self.document.metadata.all()), 1) self.assertEqual(len(self.document.metadata.all()), 1)
def test_metadata_remove_view_with_permission(self): def test_metadata_remove_view_with_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
document_metadata = self.document.metadata.create( document_metadata = self.document.metadata.create(
metadata_type=self.metadata_type, value='' metadata_type=self.metadata_type, value=''
@@ -180,19 +155,18 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
self.assertEqual(len(self.document.metadata.all()), 1) self.assertEqual(len(self.document.metadata.all()), 1)
self.role.permissions.add( self.grant(permission_document_view)
permission_document_view.stored_permission self.grant(permission_metadata_document_remove)
)
self.role.permissions.add(
permission_metadata_document_remove.stored_permission
)
# Test display of metadata removal form # Test display of metadata removal form
response = self.get( response = self.get(
'metadata:metadata_remove', args=(self.document.pk,), '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) self.assertContains(response, 'emove', status_code=200)
# Test post to metadata removal view # Test post to metadata removal view
@@ -211,20 +185,11 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
self.assertEqual(len(self.document.metadata.all()), 0) self.assertEqual(len(self.document.metadata.all()), 0)
def test_multiple_document_metadata_edit(self): def test_multiple_document_metadata_edit(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_document_view)
permission_document_view.stored_permission self.grant(permission_metadata_document_add)
) self.grant(permission_metadata_document_edit)
self.role.permissions.add(
permission_metadata_document_add.stored_permission
)
self.role.permissions.add(
permission_metadata_document_edit.stored_permission
)
with open(TEST_SMALL_DOCUMENT_PATH) as file_object: with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
document_2 = self.document_type.new_document( document_2 = self.document_type.new_document(
@@ -243,20 +208,11 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
self.assertContains(response, 'Edit', status_code=200) self.assertContains(response, 'Edit', status_code=200)
def test_multiple_document_metadata_add(self): def test_multiple_document_metadata_add(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_document_view)
permission_document_view.stored_permission self.grant(permission_metadata_document_add)
) self.grant(permission_metadata_document_edit)
self.role.permissions.add(
permission_metadata_document_add.stored_permission
)
self.role.permissions.add(
permission_metadata_document_edit.stored_permission
)
with open(TEST_SMALL_DOCUMENT_PATH) as file_object: with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
document_2 = self.document_type.new_document( document_2 = self.document_type.new_document(

View File

@@ -2,8 +2,6 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from django.core.files.base import File
from common.tests import BaseTestCase from common.tests import BaseTestCase
from documents.models import DocumentType from documents.models import DocumentType
from documents.settings import setting_language_choices from documents.settings import setting_language_choices
@@ -13,6 +11,10 @@ from documents.tests import (
class DocumentOCRTestCase(BaseTestCase): 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): def setUp(self):
super(DocumentOCRTestCase, self).setUp() super(DocumentOCRTestCase, self).setUp()
@@ -22,7 +24,7 @@ class DocumentOCRTestCase(BaseTestCase):
with open(TEST_SMALL_DOCUMENT_PATH) as file_object: with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
self.document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=File(file_object), file_object=file_object,
) )
def tearDown(self): def tearDown(self):
@@ -32,11 +34,14 @@ class DocumentOCRTestCase(BaseTestCase):
def test_ocr_language_backends_end(self): def test_ocr_language_backends_end(self):
content = self.document.pages.first().ocr_content.content content = self.document.pages.first().ocr_content.content
self.assertTrue('Mayan EDMS Documentation' in content) self.assertTrue('Mayan EDMS Documentation' in content)
class GermanOCRSupportTestCase(BaseTestCase): 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): def setUp(self):
super(GermanOCRSupportTestCase, self).setUp() super(GermanOCRSupportTestCase, self).setUp()
@@ -54,7 +59,7 @@ class GermanOCRSupportTestCase(BaseTestCase):
with open(TEST_DEU_DOCUMENT_PATH) as file_object: with open(TEST_DEU_DOCUMENT_PATH) as file_object:
self.document = self.document_type.new_document( 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): def tearDown(self):

View File

@@ -3,8 +3,8 @@ from __future__ import unicode_literals
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group from django.contrib.auth.models import Group
from django.core.exceptions import PermissionDenied 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 user_management.tests import TEST_GROUP, TEST_USER_USERNAME
from ..classes import Permission from ..classes import Permission
@@ -14,14 +14,14 @@ from ..permissions import permission_role_view
from .literals import TEST_ROLE_LABEL from .literals import TEST_ROLE_LABEL
class PermissionTestCase(TestCase): class PermissionTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(PermissionTestCase, self).setUp()
self.user = get_user_model().objects.create( self.user = get_user_model().objects.create(
username=TEST_USER_USERNAME username=TEST_USER_USERNAME
) )
self.group = Group.objects.create(name=TEST_GROUP) self.group = Group.objects.create(name=TEST_GROUP)
self.role = Role.objects.create(label=TEST_ROLE_LABEL) self.role = Role.objects.create(label=TEST_ROLE_LABEL)
Permission.invalidate_cache()
def test_no_permissions(self): def test_no_permissions(self):
with self.assertRaises(PermissionDenied): with self.assertRaises(PermissionDenied):

View File

@@ -3,8 +3,8 @@ from __future__ import unicode_literals
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.test.client import Client from django.test.client import Client
from django.test import TestCase
from common.tests import BaseTestCase
from user_management.tests import ( from user_management.tests import (
TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL 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 from .literals import TEST_ROLE_LABEL, TEST_ROLE_LABEL_EDITED
class PermissionsViewsTestCase(TestCase): class PermissionsViewsTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(PermissionsViewsTestCase, self).setUp()
self.admin_user = get_user_model().objects.create_superuser( self.admin_user = get_user_model().objects.create_superuser(
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL,
password=TEST_ADMIN_PASSWORD password=TEST_ADMIN_PASSWORD

View File

@@ -14,6 +14,7 @@ class SmartSettingsApp(MayanAppConfig):
app_namespace = 'settings' app_namespace = 'settings'
app_url = 'settings' app_url = 'settings'
name = 'smart_settings' name = 'smart_settings'
test = True
verbose_name = _('Smart settings') verbose_name = _('Smart settings')
def ready(self): def ready(self):

View File

@@ -1,63 +1,32 @@
from __future__ import absolute_import, unicode_literals from __future__ import absolute_import, unicode_literals
from django.contrib.auth import get_user_model from common.tests.test_views import GenericViewTestCase
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 ..permissions import permission_settings_view 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(GenericViewTestCase):
class SmartSettingViewPermissionsTestCase(TestCase):
def setUp(self): def setUp(self):
self.user = get_user_model().objects.create_user( super(SmartSettingViewPermissionsTestCase, self).setUp()
username=TEST_USERNAME, email=TEST_EMAIL, self.login_user()
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()
def test_view_access_denied(self): 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) self.assertEqual(response.status_code, 403)
response = self.client.get( response = self.get(
reverse('settings:namespace_detail', args=('common',),) 'settings:namespace_detail', args=('common',)
) )
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
def test_view_access_permitted(self): 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) self.assertEqual(response.status_code, 200)
response = self.client.get( response = self.get(
reverse('settings:namespace_detail', args=('common',),) 'settings:namespace_detail', args=('common',)
) )
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)

View File

@@ -3,15 +3,14 @@ from __future__ import unicode_literals
import os import os
import shutil import shutil
from django.test import TestCase from common.tests import BaseTestCase
from documents.tests import TEST_NON_ASCII_DOCUMENT_PATH
from common.utils import mkdtemp from common.utils import mkdtemp
from documents.tests import TEST_NON_ASCII_DOCUMENT_PATH
from ..classes import StagingFile from ..classes import StagingFile
class StagingFileTestCase(TestCase): class StagingFileTestCase(BaseTestCase):
def test_unicode_staging_file(self): def test_unicode_staging_file(self):
temporary_directory = mkdtemp() temporary_directory = mkdtemp()
shutil.copy(TEST_NON_ASCII_DOCUMENT_PATH, temporary_directory) shutil.copy(TEST_NON_ASCII_DOCUMENT_PATH, temporary_directory)

View File

@@ -30,7 +30,7 @@ class UploadDocumentTestCase(BaseTestCase):
""" """
def setUp(self): def setUp(self):
super(UploadDocumentTestCase).setUp() super(UploadDocumentTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
@@ -42,10 +42,9 @@ class UploadDocumentTestCase(BaseTestCase):
self.client = Client() self.client = Client()
def tearDown(self): def tearDown(self):
super(UploadDocumentTestCase).tearDown()
self.document_type.delete() self.document_type.delete()
self.admin_user.delete() self.admin_user.delete()
super(UploadDocumentTestCase, self).tearDown()
def test_issue_gh_163(self): def test_issue_gh_163(self):
""" """
@@ -97,14 +96,16 @@ class UploadDocumentTestCase(BaseTestCase):
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class CompressedUploadsTestCase(TestCase): class CompressedUploadsTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(CompressedUploadsTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
def tearDown(self): def tearDown(self):
self.document_type.delete() self.document_type.delete()
super(CompressedUploadsTestCase, self).tearDown()
def test_upload_compressed_file(self): def test_upload_compressed_file(self):
source = WebFormSource( source = WebFormSource(

View File

@@ -22,7 +22,6 @@ from documents.tests import (
from documents.tests.test_views import GenericDocumentViewTestCase from documents.tests.test_views import GenericDocumentViewTestCase
from user_management.tests import ( from user_management.tests import (
TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME,
TEST_USER_PASSWORD, TEST_USER_USERNAME
) )
from ..links import link_upload_version from ..links import link_upload_version
from ..literals import SOURCE_CHOICE_WEB_FORM from ..literals import SOURCE_CHOICE_WEB_FORM
@@ -48,9 +47,7 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase):
self.document.delete() self.document.delete()
def test_upload_wizard_without_permission(self): def test_upload_wizard_without_permission(self):
self.client.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
with open(TEST_DOCUMENT_PATH) as file_object: with open(TEST_DOCUMENT_PATH) as file_object:
response = self.client.post( response = self.client.post(
@@ -66,13 +63,9 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase):
self.assertEqual(Document.objects.count(), 0) self.assertEqual(Document.objects.count(), 0)
def test_upload_wizard_with_permission(self): def test_upload_wizard_with_permission(self):
self.client.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_document_create)
permission_document_create.stored_permission
)
with open(TEST_DOCUMENT_PATH) as file_object: with open(TEST_DOCUMENT_PATH) as file_object:
response = self.client.post( response = self.client.post(
@@ -93,9 +86,7 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase):
permssion for the document type to the user permssion for the document type to the user
""" """
self.client.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
# Create an access control entry giving the role the document # Create an access control entry giving the role the document
# create permission for the selected document type. # create permission for the selected document type.
@@ -133,8 +124,8 @@ class DocumentUploadIssueTestCase(BaseTestCase):
self.client = Client() self.client = Client()
def tearDown(self): def tearDown(self):
super(DocumentUploadIssueTestCase, self).tearDown()
self.document_type.delete() self.document_type.delete()
super(DocumentUploadIssueTestCase, self).tearDown()
def test_issue_25(self): def test_issue_25(self):
# Login the admin user # Login the admin user
@@ -198,9 +189,7 @@ class NewDocumentVersionViewTestCase(GenericDocumentViewTestCase):
- Upload version view should reject request - Upload version view should reject request
""" """
self.login( self.login_admin_user()
username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD
)
NewVersionBlock.objects.block(self.document) NewVersionBlock.objects.block(self.document)
@@ -239,9 +228,7 @@ class StagingFolderTestCase(GenericViewTestCase):
super(StagingFolderTestCase, self).tearDown() super(StagingFolderTestCase, self).tearDown()
def test_staging_folder_delete_no_permission(self): def test_staging_folder_delete_no_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
staging_folder = StagingFolderSource.objects.create( staging_folder = StagingFolderSource.objects.create(
label=TEST_SOURCE_LABEL, label=TEST_SOURCE_LABEL,
@@ -264,13 +251,9 @@ class StagingFolderTestCase(GenericViewTestCase):
self.assertEqual(len(list(staging_folder.get_files())), 1) self.assertEqual(len(list(staging_folder.get_files())), 1)
def test_staging_folder_delete_with_permission(self): def test_staging_folder_delete_with_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_staging_file_delete)
permission_staging_file_delete.stored_permission
)
staging_folder = StagingFolderSource.objects.create( staging_folder = StagingFolderSource.objects.create(
label=TEST_SOURCE_LABEL, label=TEST_SOURCE_LABEL,
@@ -294,49 +277,37 @@ class StagingFolderTestCase(GenericViewTestCase):
class SourcesTestCase(GenericDocumentViewTestCase): class SourcesTestCase(GenericDocumentViewTestCase):
def create_web_source(self): def _create_web_source(self):
self.source = WebFormSource.objects.create( self.source = WebFormSource.objects.create(
enabled=True, label=TEST_SOURCE_LABEL, enabled=True, label=TEST_SOURCE_LABEL,
uncompress=TEST_SOURCE_UNCOMPRESS_N uncompress=TEST_SOURCE_UNCOMPRESS_N
) )
def test_source_list_view_with_permission(self): def test_source_list_view_with_permission(self):
self.create_web_source() self._create_web_source()
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_sources_setup_view)
permission_sources_setup_view.stored_permission
)
response = self.get(viewname='sources:setup_source_list') response = self.get(viewname='sources:setup_source_list')
self.assertContains(response, text=self.source.label, status_code=200) self.assertContains(response, text=self.source.label, status_code=200)
def test_source_list_view_no_permission(self): def test_source_list_view_no_permission(self):
self.create_web_source() self._create_web_source()
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
response = self.get(viewname='sources:setup_source_list') response = self.get(viewname='sources:setup_source_list')
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
def test_source_create_view_with_permission(self): def test_source_create_view_with_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_sources_setup_create)
permission_sources_setup_create.stored_permission self.grant(permission_sources_setup_view)
)
self.role.permissions.add(
permission_sources_setup_view.stored_permission
)
response = self.post( response = self.post(
args=(SOURCE_CHOICE_WEB_FORM,), follow=True, args=(SOURCE_CHOICE_WEB_FORM,), follow=True,
@@ -354,13 +325,9 @@ class SourcesTestCase(GenericDocumentViewTestCase):
self.assertEquals(response.status_code, 200) self.assertEquals(response.status_code, 200)
def test_source_create_view_no_permission(self): def test_source_create_view_no_permission(self):
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_sources_setup_view)
permission_sources_setup_view.stored_permission
)
response = self.post( response = self.post(
args=(SOURCE_CHOICE_WEB_FORM,), follow=True, args=(SOURCE_CHOICE_WEB_FORM,), follow=True,
@@ -374,18 +341,12 @@ class SourcesTestCase(GenericDocumentViewTestCase):
self.assertEqual(WebFormSource.objects.count(), 0) self.assertEqual(WebFormSource.objects.count(), 0)
def test_source_delete_view_with_permission(self): def test_source_delete_view_with_permission(self):
self.create_web_source() self._create_web_source()
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_sources_setup_delete)
permission_sources_setup_delete.stored_permission self.grant(permission_sources_setup_view)
)
self.role.permissions.add(
permission_sources_setup_view.stored_permission
)
response = self.post( response = self.post(
args=(self.source.pk,), follow=True, args=(self.source.pk,), follow=True,
@@ -396,15 +357,11 @@ class SourcesTestCase(GenericDocumentViewTestCase):
self.assertEqual(WebFormSource.objects.count(), 0) self.assertEqual(WebFormSource.objects.count(), 0)
def test_source_delete_view_no_permission(self): def test_source_delete_view_no_permission(self):
self.create_web_source() self._create_web_source()
self.login( self.login_user()
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.role.permissions.add( self.grant(permission_sources_setup_view)
permission_sources_setup_view.stored_permission
)
response = self.post( response = self.post(
args=(self.source.pk,), follow=True, args=(self.source.pk,), follow=True,

View File

@@ -15,7 +15,7 @@ from .literals import TEST_TAG_COLOR, TEST_TAG_LABEL
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class TagTestCase(BaseTestCase): class TagTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(TagTestCase).setUp() super(TagTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE label=TEST_DOCUMENT_TYPE
) )
@@ -26,9 +26,9 @@ class TagTestCase(BaseTestCase):
) )
def tearDown(self): def tearDown(self):
super(TagTestCase).tearDown()
self.document.delete() self.document.delete()
self.document_type.delete() self.document_type.delete()
super(TagTestCase, self).tearDown()
def runTest(self): def runTest(self):
tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL)

View File

@@ -2,7 +2,6 @@ from __future__ import unicode_literals
from documents.permissions import permission_document_view from documents.permissions import permission_document_view
from documents.tests.test_views import GenericDocumentViewTestCase from documents.tests.test_views import GenericDocumentViewTestCase
from user_management.tests import TEST_USER_PASSWORD, TEST_USER_USERNAME
from ..models import Tag from ..models import Tag
from ..permissions import ( from ..permissions import (
@@ -25,12 +24,12 @@ class TagViewTestCase(GenericDocumentViewTestCase):
) )
def tearDown(self): def tearDown(self):
super(TagViewTestCase, self).tearDown()
if self.tag.pk: if self.tag.pk:
self.tag.delete() self.tag.delete()
super(TagViewTestCase, self).tearDown()
def test_tag_create_view_no_permissions(self): 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.tag.delete()
self.assertEqual(Tag.objects.count(), 0) self.assertEqual(Tag.objects.count(), 0)
@@ -46,12 +45,12 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(Tag.objects.count(), 0) self.assertEqual(Tag.objects.count(), 0)
def test_tag_create_view_with_permissions(self): 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.tag.delete()
self.assertEqual(Tag.objects.count(), 0) self.assertEqual(Tag.objects.count(), 0)
self.role.permissions.add(permission_tag_create.stored_permission) self.grant(permission_tag_create)
response = self.post( response = self.post(
'tags:tag_create', data={ 'tags:tag_create', data={
@@ -68,7 +67,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(tag.color, TEST_TAG_COLOR) self.assertEqual(tag.color, TEST_TAG_COLOR)
def test_tag_delete_view_no_permissions(self): 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) self.assertEqual(Tag.objects.count(), 1)
@@ -80,11 +79,11 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(Tag.objects.count(), 1) self.assertEqual(Tag.objects.count(), 1)
def test_tag_delete_view_with_permissions(self): 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.assertEqual(Tag.objects.count(), 1)
self.role.permissions.add(permission_tag_delete.stored_permission) self.grant(permission_tag_delete)
response = self.post( response = self.post(
'tags:tag_delete', args=(self.tag.pk,), follow=True 'tags:tag_delete', args=(self.tag.pk,), follow=True
@@ -95,7 +94,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(Tag.objects.count(), 0) self.assertEqual(Tag.objects.count(), 0)
def test_tag_multiple_delete_view_no_permissions(self): 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) self.assertEqual(Tag.objects.count(), 1)
@@ -107,11 +106,11 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(Tag.objects.count(), 1) self.assertEqual(Tag.objects.count(), 1)
def test_tag_multiple_delete_view_with_permissions(self): 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.assertEqual(Tag.objects.count(), 1)
self.role.permissions.add(permission_tag_delete.stored_permission) self.grant(permission_tag_delete)
response = self.post( response = self.post(
'tags:tag_multiple_delete', data={'id_list': self.tag.pk}, 'tags:tag_multiple_delete', data={'id_list': self.tag.pk},
@@ -123,7 +122,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(Tag.objects.count(), 0) self.assertEqual(Tag.objects.count(), 0)
def test_tag_edit_view_no_permissions(self): def test_tag_edit_view_no_permissions(self):
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) self.login_user()
response = self.post( response = self.post(
'tags:tag_edit', args=(self.tag.pk,), data={ 'tags:tag_edit', args=(self.tag.pk,), data={
@@ -137,9 +136,9 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(tag.color, TEST_TAG_COLOR) self.assertEqual(tag.color, TEST_TAG_COLOR)
def test_tag_edit_view_with_permissions(self): 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( response = self.post(
'tags:tag_edit', args=(self.tag.pk,), data={ 'tags:tag_edit', args=(self.tag.pk,), data={
@@ -153,28 +152,31 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(tag.color, TEST_TAG_COLOR_EDITED) self.assertEqual(tag.color, TEST_TAG_COLOR_EDITED)
def test_document_tags_widget_no_permissions(self): 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) self.tag.documents.add(self.document)
response = self.get('documents:document_list') response = self.get('documents:document_list')
self.assertNotContains(response, text=TEST_TAG_LABEL, status_code=200) self.assertNotContains(response, text=TEST_TAG_LABEL, status_code=200)
def test_document_tags_widget_with_permissions(self): 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.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') response = self.get('documents:document_list')
self.assertContains(response, text=TEST_TAG_LABEL, status_code=200) self.assertContains(response, text=TEST_TAG_LABEL, status_code=200)
def test_document_attach_tag_view_no_permission(self): 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.assertEqual(self.document.tags.count(), 0)
self.role.permissions.add(permission_tag_view.stored_permission) self.grant(permission_tag_view)
response = self.post( response = self.post(
'tags:tag_attach', args=(self.document.pk,), data={ 'tags:tag_attach', args=(self.document.pk,), data={
'tag': self.tag.pk, 'tag': self.tag.pk,
@@ -188,14 +190,14 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(self.document.tags.count(), 0) self.assertEqual(self.document.tags.count(), 0)
def test_document_attach_tag_view_with_permission(self): 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.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 # permission_tag_view is needed because the form filters the
# choices # choices
self.role.permissions.add(permission_tag_view.stored_permission) self.grant(permission_tag_view)
response = self.post( response = self.post(
'tags:tag_attach', args=(self.document.pk,), data={ '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): 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.assertEqual(self.document.tags.count(), 0)
self.role.permissions.add(permission_tag_view.stored_permission) self.grant(permission_tag_view)
response = self.post( response = self.post(
'tags:multiple_documents_tag_attach', data={ 'tags:multiple_documents_tag_attach', data={
@@ -227,15 +229,15 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(self.document.tags.count(), 0) self.assertEqual(self.document.tags.count(), 0)
def test_document_multiple_attach_tag_view_with_permission(self): 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.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 # permission_tag_view is needed because the form filters the
# choices # choices
self.role.permissions.add(permission_tag_view.stored_permission) self.grant(permission_tag_view)
response = self.post( response = self.post(
'tags:multiple_documents_tag_attach', data={ 'tags:multiple_documents_tag_attach', data={
@@ -251,11 +253,12 @@ class TagViewTestCase(GenericDocumentViewTestCase):
) )
def test_single_document_multiple_tag_remove_view_no_permissions(self): 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.document.tags.add(self.tag)
self.assertQuerysetEqual(self.document.tags.all(), (repr(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( response = self.post(
'tags:single_document_multiple_tag_remove', 'tags:single_document_multiple_tag_remove',
@@ -269,13 +272,13 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),))
def test_single_document_multiple_tag_remove_view_with_permission(self): 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.document.tags.add(self.tag)
self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),))
self.role.permissions.add(permission_tag_remove.stored_permission) self.grant(permission_tag_remove)
self.role.permissions.add(permission_tag_view.stored_permission) self.grant(permission_tag_view)
response = self.post( response = self.post(
'tags:single_document_multiple_tag_remove', 'tags:single_document_multiple_tag_remove',
@@ -289,11 +292,12 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertEqual(self.document.tags.count(), 0) self.assertEqual(self.document.tags.count(), 0)
def test_multiple_documents_selection_tag_remove_view_no_permissions(self): 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.document.tags.add(self.tag)
self.assertQuerysetEqual(self.document.tags.all(), (repr(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( response = self.post(
'tags:multiple_documents_selection_tag_remove', 'tags:multiple_documents_selection_tag_remove',
@@ -307,13 +311,13 @@ class TagViewTestCase(GenericDocumentViewTestCase):
self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),))
def test_multiple_documents_selection_tag_remove_view_with_permission(self): 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.document.tags.add(self.tag)
self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),)) self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),))
self.role.permissions.add(permission_tag_remove.stored_permission) self.grant(permission_tag_remove)
self.role.permissions.add(permission_tag_view.stored_permission) self.grant(permission_tag_view)
response = self.post( response = self.post(
'tags:multiple_documents_selection_tag_remove', 'tags:multiple_documents_selection_tag_remove',

View File

@@ -17,9 +17,7 @@ from ..permissions import (
permission_user_delete, permission_user_edit, permission_user_view permission_user_delete, permission_user_edit, permission_user_view
) )
from .literals import ( from .literals import TEST_USER_PASSWORD_EDITED, TEST_USER_USERNAME
TEST_USER_PASSWORD, TEST_USER_PASSWORD_EDITED, TEST_USER_USERNAME
)
TEST_USER_TO_DELETE_USERNAME = 'user_to_delete' TEST_USER_TO_DELETE_USERNAME = 'user_to_delete'
@@ -43,10 +41,12 @@ class UserManagementViewTestCase(GenericViewTestCase):
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
self.client.logout() 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') response = self.get('common:current_user_details')
@@ -60,8 +60,8 @@ class UserManagementViewTestCase(GenericViewTestCase):
self.assertEqual(response.status_code, 302) self.assertEqual(response.status_code, 302)
self.client.logout() self.logout()
self.client.login( self.login(
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD_EDITED username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD_EDITED
) )
response = self.get('common:current_user_details') response = self.get('common:current_user_details')
@@ -72,8 +72,8 @@ class UserManagementViewTestCase(GenericViewTestCase):
return self.post( return self.post(
'user_management:user_multiple_set_password', data={ 'user_management:user_multiple_set_password', data={
'id_list': self.user.pk, 'id_list': self.user.pk,
'new_password_1': TEST_USER_PASSWORD_EDITED, 'new_password_1': password,
'new_password_2': TEST_USER_PASSWORD_EDITED 'new_password_2': password
}, follow=True }, follow=True
) )
@@ -87,9 +87,11 @@ class UserManagementViewTestCase(GenericViewTestCase):
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
self.logout() 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') response = self.get('common:current_user_details')