Add tests for the remove metadata view.
This commit is contained in:
13
mayan/apps/metadata/tests/literals.py
Normal file
13
mayan/apps/metadata/tests/literals.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
TEST_CORRECT_LOOKUP_VALUE = '1'
|
||||
TEST_DATE_PARSER = 'metadata.parsers.DateParser'
|
||||
TEST_DATE_VALIDATOR = 'metadata.validators.DateValidator'
|
||||
TEST_DEFAULT_VALUE = 'test'
|
||||
TEST_INCORRECT_LOOKUP_VALUE = '0'
|
||||
TEST_INVALID_DATE = '___________'
|
||||
TEST_LOOKUP_TEMPLATE = '1,2,3'
|
||||
TEST_METADATA_TYPE_NAME = 'test'
|
||||
TEST_METADATA_TYPE_LABEL = 'test'
|
||||
TEST_PARSED_VALID_DATE = '2001-01-01'
|
||||
TEST_VALID_DATE = '2001-1-1'
|
||||
@@ -9,28 +9,25 @@ from documents.tests import TEST_SMALL_DOCUMENT_PATH, TEST_DOCUMENT_TYPE
|
||||
|
||||
from ..models import MetadataType, DocumentMetadata
|
||||
|
||||
TEST_DEFAULT_VALUE = 'test'
|
||||
TEST_LOOKUP_TEMPLATE = '1,2,3'
|
||||
TEST_INCORRECT_LOOKUP_VALUE = '0'
|
||||
TEST_CORRECT_LOOKUP_VALUE = '1'
|
||||
TEST_DATE_VALIDATOR = 'metadata.validators.DateValidator'
|
||||
TEST_DATE_PARSER = 'metadata.parsers.DateParser'
|
||||
TEST_INVALID_DATE = '___________'
|
||||
TEST_VALID_DATE = '2001-1-1'
|
||||
TEST_PARSED_VALID_DATE = '2001-01-01'
|
||||
from .literals import (
|
||||
TEST_DEFAULT_VALUE, TEST_LOOKUP_TEMPLATE, TEST_INCORRECT_LOOKUP_VALUE,
|
||||
TEST_CORRECT_LOOKUP_VALUE, TEST_DATE_VALIDATOR, TEST_DATE_PARSER,
|
||||
TEST_METADATA_TYPE_NAME, TEST_METADATA_TYPE_LABEL, TEST_INVALID_DATE,
|
||||
TEST_VALID_DATE, TEST_PARSED_VALID_DATE
|
||||
)
|
||||
|
||||
|
||||
@override_settings(OCR_AUTO_OCR=False)
|
||||
class MetadataTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.metadata_type = MetadataType.objects.create(
|
||||
name='test', label='test'
|
||||
)
|
||||
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
)
|
||||
|
||||
self.metadata_type = MetadataType.objects.create(
|
||||
name=TEST_METADATA_TYPE_NAME, label=TEST_METADATA_TYPE_LABEL
|
||||
)
|
||||
|
||||
self.document_type.metadata.create(metadata_type=self.metadata_type)
|
||||
|
||||
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
|
||||
@@ -63,13 +60,16 @@ class MetadataTestCase(TestCase):
|
||||
document_metadata.full_clean()
|
||||
document_metadata.save()
|
||||
|
||||
self.assertEqual(self.document.metadata_value_of.test, TEST_DEFAULT_VALUE)
|
||||
self.assertEqual(
|
||||
self.document.metadata_value_of.test, TEST_DEFAULT_VALUE
|
||||
)
|
||||
|
||||
def test_lookup(self):
|
||||
self.metadata_type.lookup = TEST_LOOKUP_TEMPLATE
|
||||
|
||||
document_metadata = DocumentMetadata(
|
||||
document=self.document, metadata_type=self.metadata_type, value=TEST_INCORRECT_LOOKUP_VALUE
|
||||
document=self.document, metadata_type=self.metadata_type,
|
||||
value=TEST_INCORRECT_LOOKUP_VALUE
|
||||
)
|
||||
|
||||
with self.assertRaises(ValidationError):
|
||||
@@ -82,13 +82,16 @@ class MetadataTestCase(TestCase):
|
||||
document_metadata.full_clean()
|
||||
document_metadata.save()
|
||||
|
||||
self.assertEqual(self.document.metadata_value_of.test, TEST_CORRECT_LOOKUP_VALUE)
|
||||
self.assertEqual(
|
||||
self.document.metadata_value_of.test, TEST_CORRECT_LOOKUP_VALUE
|
||||
)
|
||||
|
||||
def test_validation(self):
|
||||
self.metadata_type.validation = TEST_DATE_VALIDATOR
|
||||
|
||||
document_metadata = DocumentMetadata(
|
||||
document=self.document, metadata_type=self.metadata_type, value=TEST_INVALID_DATE
|
||||
document=self.document, metadata_type=self.metadata_type,
|
||||
value=TEST_INVALID_DATE
|
||||
)
|
||||
|
||||
with self.assertRaises(ValidationError):
|
||||
@@ -107,7 +110,8 @@ class MetadataTestCase(TestCase):
|
||||
self.metadata_type.parser = TEST_DATE_PARSER
|
||||
|
||||
document_metadata = DocumentMetadata(
|
||||
document=self.document, metadata_type=self.metadata_type, value=TEST_INVALID_DATE
|
||||
document=self.document, metadata_type=self.metadata_type,
|
||||
value=TEST_INVALID_DATE
|
||||
)
|
||||
|
||||
with self.assertRaises(ValidationError):
|
||||
@@ -120,4 +124,6 @@ class MetadataTestCase(TestCase):
|
||||
document_metadata.full_clean()
|
||||
document_metadata.save()
|
||||
|
||||
self.assertEqual(self.document.metadata_value_of.test, TEST_PARSED_VALID_DATE)
|
||||
self.assertEqual(
|
||||
self.document.metadata_value_of.test, TEST_PARSED_VALID_DATE
|
||||
)
|
||||
|
||||
85
mayan/apps/metadata/tests/test_views.py
Normal file
85
mayan/apps/metadata/tests/test_views.py
Normal file
@@ -0,0 +1,85 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.files import File
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test.client import Client
|
||||
from django.test import TestCase
|
||||
|
||||
from documents.models import DocumentType
|
||||
from documents.tests.literals import (
|
||||
TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL,
|
||||
TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH
|
||||
)
|
||||
|
||||
from ..models import MetadataType, DocumentMetadata
|
||||
|
||||
from .literals import TEST_METADATA_TYPE_NAME, TEST_METADATA_TYPE_LABEL
|
||||
|
||||
|
||||
class DocumentMetadataTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.admin_user = User.objects.create_superuser(
|
||||
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL,
|
||||
password=TEST_ADMIN_PASSWORD
|
||||
)
|
||||
self.client = Client()
|
||||
# Login the admin user
|
||||
logged_in = self.client.login(
|
||||
username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD
|
||||
)
|
||||
self.assertTrue(logged_in)
|
||||
self.assertTrue(self.admin_user.is_authenticated())
|
||||
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
)
|
||||
|
||||
self.metadata_type = MetadataType.objects.create(
|
||||
name=TEST_METADATA_TYPE_NAME, label=TEST_METADATA_TYPE_LABEL
|
||||
)
|
||||
|
||||
self.document_type.metadata.create(metadata_type=self.metadata_type)
|
||||
|
||||
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
|
||||
self.document = self.document_type.new_document(
|
||||
file_object=File(file_object)
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
self.document_type.delete()
|
||||
self.admin_user.delete()
|
||||
self.metadata_type.delete()
|
||||
|
||||
def test_remove_metadata_view(self):
|
||||
document_metadata = self.document.metadata.create(
|
||||
metadata_type=self.metadata_type, value=''
|
||||
)
|
||||
|
||||
self.assertEqual(len(self.document.metadata.all()), 1)
|
||||
|
||||
# Test display of metadata removal form
|
||||
response = self.client.get(
|
||||
reverse(
|
||||
'metadata:metadata_remove', args=(self.document.pk,),
|
||||
)
|
||||
)
|
||||
|
||||
self.assertContains(response, 'emove', status_code=200)
|
||||
|
||||
# Test post to metadata removal view
|
||||
response = self.client.post(
|
||||
reverse(
|
||||
'metadata:metadata_remove', args=(self.document.pk,),
|
||||
), data={
|
||||
'form-0-id': document_metadata.metadata_type.pk,
|
||||
'form-0-update': True,
|
||||
'form-TOTAL_FORMS': '1',
|
||||
'form-INITIAL_FORMS': '0',
|
||||
'form-MAX_NUM_FORMS': '',
|
||||
}, follow=True
|
||||
)
|
||||
|
||||
self.assertContains(response, 'Success', status_code=200)
|
||||
|
||||
self.assertEqual(len(self.document.metadata.all()), 0)
|
||||
Reference in New Issue
Block a user