Update and fix failing tests.
This commit is contained in:
@@ -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):
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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},
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user