Fix document list generation for the document's type change views. Move type change event and recent document addition to the models. Add view tests for the document's type change views.

This commit is contained in:
Roberto Rosario
2015-10-20 20:03:54 -04:00
parent ebfd37ebf5
commit 9fbc8647b8
4 changed files with 171 additions and 25 deletions
+128 -4
View File
@@ -2,14 +2,25 @@
from __future__ import unicode_literals
from django.contrib.auth.models import User
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from django.core.files import File
from django.core.urlresolvers import reverse
from django.test.client import Client
from django.test import TestCase, override_settings
from authentication.tests.literals import (
TEST_USER_EMAIL, TEST_USER_PASSWORD, TEST_USER_USERNAME
)
from permissions.classes import Permission
from permissions.models import Role
from permissions.tests.literals import (
TEST_GROUP, TEST_ROLE_LABEL, TEST_USER_USERNAME
)
from ..literals import DEFAULT_DELETE_PERIOD, DEFAULT_DELETE_TIME_UNIT
from ..models import DeletedDocument, Document, DocumentType
from ..permissions import permission_document_properties_edit
from .literals import (
TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL,
@@ -17,6 +28,7 @@ from .literals import (
)
TEST_DOCUMENT_TYPE_EDITED_LABEL = 'test document type edited label'
TEST_DOCUMENT_TYPE_2_LABEL = 'test document type 2 label'
@override_settings(OCR_AUTO_OCR=False)
@@ -26,7 +38,7 @@ class DocumentsViewsTestCase(TestCase):
label=TEST_DOCUMENT_TYPE
)
self.admin_user = User.objects.create_superuser(
self.admin_user = get_user_model().objects.create_superuser(
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL,
password=TEST_ADMIN_PASSWORD
)
@@ -38,14 +50,27 @@ class DocumentsViewsTestCase(TestCase):
self.assertTrue(logged_in)
self.assertTrue(self.admin_user.is_authenticated())
self.user = get_user_model().objects.create_user(
username=TEST_USER_USERNAME, email=TEST_USER_EMAIL,
password=TEST_USER_PASSWORD
)
self.group = Group.objects.create(name=TEST_GROUP)
self.role = Role.objects.create(label=TEST_ROLE_LABEL)
Permission.invalidate_cache()
self.group.user_set.add(self.user)
self.role.groups.add(self.group)
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
self.document = self.document_type.new_document(
file_object=File(file_object), label='mayan_11_1.pdf'
)
def tearDown(self):
self.document_type.delete()
self.admin_user.delete()
self.document_type.delete()
self.group.delete()
self.role.delete()
self.user.delete()
def test_restoring_documents(self):
self.assertEqual(Document.objects.count(), 1)
@@ -93,11 +118,110 @@ class DocumentsViewsTestCase(TestCase):
response, 'roperties for document', status_code=200
)
def test_document_document_type_change_view(self):
self.assertEqual(Document.objects.count(), 1)
self.assertEqual(
Document.objects.first().document_type, self.document_type
)
document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE_2_LABEL
)
response = self.client.post(
reverse(
'documents:document_document_type_edit',
args=(self.document.pk,)
), data={'document_type': document_type.pk}, follow=True
)
self.assertEqual(response.status_code, 200)
self.assertEqual(
Document.objects.first().document_type, document_type
)
def test_document_multiple_document_type_change_view(self):
self.assertEqual(Document.objects.count(), 1)
self.assertEqual(
Document.objects.first().document_type, self.document_type
)
document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE_2_LABEL
)
response = self.client.post(
reverse(
'documents:document_multiple_document_type_edit',
), data={
'id_list': self.document.pk, 'document_type': document_type.pk
}, follow=True
)
self.assertEqual(response.status_code, 200)
self.assertEqual(
Document.objects.first().document_type, document_type
)
def test_document_multiple_document_type_change_user_view(self):
self.client.logout()
logged_in = self.client.login(
username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD
)
self.assertTrue(logged_in)
self.assertTrue(self.user.is_authenticated())
self.assertEqual(Document.objects.count(), 1)
self.assertEqual(
Document.objects.first().document_type, self.document_type
)
document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE_2_LABEL
)
response = self.client.post(
reverse(
'documents:document_multiple_document_type_edit',
), data={
'id_list': self.document.pk, 'document_type': document_type.pk
}, follow=True
)
self.assertEqual(response.status_code, 200)
# Fails to change the document type
self.assertEqual(
Document.objects.first().document_type, self.document_type
)
# Create ACL for a positive test result
self.role.permissions.add(
permission_document_properties_edit.stored_permission
)
response = self.client.post(
reverse(
'documents:document_multiple_document_type_edit',
), data={
'id_list': self.document.pk, 'document_type': document_type.pk
}, follow=True
)
self.assertEqual(response.status_code, 200)
self.assertEqual(
Document.objects.first().document_type, document_type
)
@override_settings(OCR_AUTO_OCR=False)
class DocumentTypeViewsTestCase(TestCase):
def setUp(self):
self.admin_user = User.objects.create_superuser(
self.admin_user = get_user_model().objects.create_superuser(
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL,
password=TEST_ADMIN_PASSWORD
)