From 54ae8bcda5a9c287ccb0a9e56241a00ea7b446e7 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 21 Oct 2015 20:50:31 -0400 Subject: [PATCH] Add GenericViewTestCase and GenericDocumentViewTestCase classes. --- mayan/apps/common/tests/test_views.py | 38 +++++++++++-- mayan/apps/documents/tests/test_views.py | 68 ++++++++++-------------- 2 files changed, 62 insertions(+), 44 deletions(-) diff --git a/mayan/apps/common/tests/test_views.py b/mayan/apps/common/tests/test_views.py index 05fc85d356..1102f4559e 100644 --- a/mayan/apps/common/tests/test_views.py +++ b/mayan/apps/common/tests/test_views.py @@ -1,15 +1,45 @@ -from __future__ import unicode_literals +from __future__ import absolute_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.urlresolvers import reverse from django.test.client import Client from django.test import TestCase -from user_management.tests.literals import ( - TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL +from permissions import Permission +from permissions.models import Role +from permissions.tests.literals import TEST_ROLE_LABEL +from user_management.tests import ( + TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL, TEST_GROUP, + TEST_USER_EMAIL, TEST_USER_USERNAME, TEST_USER_PASSWORD ) +class GenericViewTestCase(TestCase): + def setUp(self): + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.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) + self.group.user_set.add(self.user) + self.role.groups.add(self.group) + Permission.invalidate_cache() + + def tearDown(self): + self.admin_user.delete() + self.group.delete() + self.role.delete() + self.user.delete() + + class CommonViewTestCase(TestCase): def setUp(self): self.admin_user = User.objects.create_superuser( diff --git a/mayan/apps/documents/tests/test_views.py b/mayan/apps/documents/tests/test_views.py index 991381a2df..661c609fd4 100644 --- a/mayan/apps/documents/tests/test_views.py +++ b/mayan/apps/documents/tests/test_views.py @@ -10,6 +10,7 @@ from django.test.client import Client from django.test import TestCase, override_settings from django.utils.six import BytesIO +from common.tests.test_views import GenericViewTestCase from permissions.classes import Permission from permissions.models import Role from permissions.tests.literals import TEST_ROLE_LABEL @@ -33,40 +34,25 @@ TEST_DOCUMENT_TYPE_2_LABEL = 'test document type 2 label' @override_settings(OCR_AUTO_OCR=False) -class DocumentsViewsTestCase(TestCase): +class GenericDocumentViewTestCase(GenericViewTestCase): def setUp(self): + super(GenericDocumentViewTestCase, self).setUp() self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) - self.admin_user = get_user_model().objects.create_superuser( - username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, - password=TEST_ADMIN_PASSWORD - ) - self.client = Client() - - 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.admin_user.delete() - self.document_type.delete() - self.group.delete() - self.role.delete() - self.user.delete() + super(GenericDocumentViewTestCase, self).tearDown() + if self.document_type.pk: + self.document_type.delete() + +class DocumentsViewsTestCase(GenericDocumentViewTestCase): def test_restoring_documents(self): # Login the admin user logged_in = self.client.login( @@ -363,14 +349,8 @@ class DocumentsViewsTestCase(TestCase): del(buf) -@override_settings(OCR_AUTO_OCR=False) -class DocumentTypeViewsTestCase(TestCase): - def setUp(self): - self.admin_user = get_user_model().objects.create_superuser( - username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, - password=TEST_ADMIN_PASSWORD - ) - self.client = Client() +class DocumentTypeViewsTestCase(GenericDocumentViewTestCase): + def test_document_type_create_view(self): # Login the admin user logged_in = self.client.login( username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD @@ -378,10 +358,10 @@ class DocumentTypeViewsTestCase(TestCase): self.assertTrue(logged_in) self.assertTrue(self.admin_user.is_authenticated()) - def tearDown(self): - self.admin_user.delete() + self.document_type.delete() + + self.assertEqual(Document.objects.count(), 0) - def test_document_type_create_view(self): response = self.client.post( reverse('documents:document_type_create'), data={ @@ -399,13 +379,17 @@ class DocumentTypeViewsTestCase(TestCase): ) def test_document_type_delete_view(self): - document_type = DocumentType.objects.create( - label=TEST_DOCUMENT_TYPE + # 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()) response = self.client.post( reverse( - 'documents:document_type_delete', args=(document_type.pk,) + 'documents:document_type_delete', + args=(self.document_type.pk,) ), follow=True ) @@ -413,13 +397,17 @@ class DocumentTypeViewsTestCase(TestCase): self.assertEqual(DocumentType.objects.count(), 0) def test_document_type_edit_view(self): - document_type = DocumentType.objects.create( - label=TEST_DOCUMENT_TYPE + # 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()) response = self.client.post( reverse( - 'documents:document_type_edit', args=(document_type.pk,) + 'documents:document_type_edit', + args=(self.document_type.pk,) ), data={ 'label': TEST_DOCUMENT_TYPE_EDITED_LABEL, 'delete_time_period': DEFAULT_DELETE_PERIOD, @@ -430,6 +418,6 @@ class DocumentTypeViewsTestCase(TestCase): self.assertContains(response, 'successfully', status_code=200) self.assertEqual( - DocumentType.objects.first().label, + DocumentType.objects.get(pk=self.document_type.pk).label, TEST_DOCUMENT_TYPE_EDITED_LABEL )