From 31c9282d875646c2786a9a8f2dc0aa99c0fcfdad Mon Sep 17 00:00:00 2001 From: Michael Price Date: Mon, 19 Mar 2018 17:13:09 -0400 Subject: [PATCH] Repurpose the source app upload test with metadata as a metadata wizard step test. Signed-off-by: Michael Price --- mayan/apps/metadata/api.py | 1 - .../apps/metadata/tests/test_wizard_steps.py | 62 +++++++++++++++++++ mayan/apps/sources/tests/test_views.py | 42 ------------- 3 files changed, 62 insertions(+), 43 deletions(-) create mode 100644 mayan/apps/metadata/tests/test_wizard_steps.py diff --git a/mayan/apps/metadata/api.py b/mayan/apps/metadata/api.py index 1613ec234c..6a3c98bdc7 100644 --- a/mayan/apps/metadata/api.py +++ b/mayan/apps/metadata/api.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals from furl import furl from django.shortcuts import get_object_or_404 -from django.utils.encoding import force_text from django.utils.six.moves.urllib.parse import unquote_plus from .models import DocumentMetadata, MetadataType diff --git a/mayan/apps/metadata/tests/test_wizard_steps.py b/mayan/apps/metadata/tests/test_wizard_steps.py new file mode 100644 index 0000000000..7a2da7ae8a --- /dev/null +++ b/mayan/apps/metadata/tests/test_wizard_steps.py @@ -0,0 +1,62 @@ +from __future__ import unicode_literals + +from furl import furl + +from django.urls import reverse + +from documents.models import Document +from documents.permissions import permission_document_create +from documents.tests import ( + GenericDocumentViewTestCase, TEST_SMALL_DOCUMENT_PATH, +) +from metadata.tests.literals import TEST_METADATA_VALUE_UNICODE +from metadata.tests.mixins import MetadataTypeMixin + +from sources.models import WebFormSource + +from sources.tests.literals import ( + TEST_SOURCE_LABEL, TEST_SOURCE_UNCOMPRESS_N, +) + + +class DocumentUploadMetadataTestCase(MetadataTypeMixin, GenericDocumentViewTestCase): + def setUp(self): + super(DocumentUploadMetadataTestCase, self).setUp() + self.login_user() + self.source = WebFormSource.objects.create( + enabled=True, label=TEST_SOURCE_LABEL, + uncompress=TEST_SOURCE_UNCOMPRESS_N + ) + + self.document.delete() + + self.document_type.metadata.create( + metadata_type=self.metadata_type, required=True + ) + + def tearDown(self): + self.document_type.delete() + super(DocumentUploadMetadataTestCase, self).tearDown() + + def test_unicode_interactive_with_unicode_metadata(self): + url = furl(reverse('sources:upload_interactive')) + url.args['metadata0_id'] = self.metadata_type.pk + url.args['metadata0_value'] = TEST_METADATA_VALUE_UNICODE + + self.grant_access( + permission=permission_document_create, obj=self.document_type + ) + # Upload the test document + with open(TEST_SMALL_DOCUMENT_PATH) as file_descriptor: + response = self.post( + path=url, data={ + 'document-language': 'eng', 'source-file': file_descriptor, + 'document_type_id': self.document_type.pk, + } + ) + self.assertEqual(response.status_code, 302) + self.assertEqual(Document.objects.count(), 1) + self.assertEqual( + Document.objects.first().metadata.first().value, + TEST_METADATA_VALUE_UNICODE + ) diff --git a/mayan/apps/sources/tests/test_views.py b/mayan/apps/sources/tests/test_views.py index 20c40209b5..b7f9712941 100644 --- a/mayan/apps/sources/tests/test_views.py +++ b/mayan/apps/sources/tests/test_views.py @@ -3,10 +3,7 @@ from __future__ import unicode_literals import os import shutil -from furl import furl - from django.test import override_settings -from django.urls import reverse from checkouts.models import NewVersionBlock from common.tests import GenericViewTestCase @@ -18,8 +15,6 @@ from documents.tests import ( TEST_DOCUMENT_TYPE_LABEL, TEST_SMALL_DOCUMENT_CHECKSUM, TEST_SMALL_DOCUMENT_PATH, ) -from metadata.tests.literals import TEST_METADATA_VALUE_UNICODE -from metadata.tests.mixins import MetadataTypeMixin from ..links import link_upload_version from ..literals import SOURCE_CHOICE_WEB_FORM @@ -124,43 +119,6 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase): ) -class DocumentUploadMetadataTestCase(MetadataTypeMixin, GenericDocumentViewTestCase): - def setUp(self): - super(DocumentUploadMetadataTestCase, self).setUp() - self.source = WebFormSource.objects.create( - enabled=True, label=TEST_SOURCE_LABEL, - uncompress=TEST_SOURCE_UNCOMPRESS_N - ) - - self.document.delete() - - self.document_type.metadata.create( - metadata_type=self.metadata_type, required=True - ) - - def test_unicode_interactive_with_unicode_metadata(self): - self.login_admin_user() - - url = furl(reverse('sources:upload_interactive')) - url.args['metadata0_id'] = self.metadata_type.pk - url.args['metadata0_value'] = TEST_METADATA_VALUE_UNICODE - - # Upload the test document - with open(TEST_SMALL_DOCUMENT_PATH) as file_descriptor: - response = self.post( - path=url, data={ - 'document-language': 'eng', 'source-file': file_descriptor, - 'document_type_id': self.document_type.pk, - } - ) - self.assertEqual(response.status_code, 302) - self.assertEqual(Document.objects.count(), 1) - self.assertEqual( - Document.objects.first().metadata.first().value, - TEST_METADATA_VALUE_UNICODE - ) - - @override_settings(OCR_AUTO_OCR=False) class DocumentUploadIssueTestCase(GenericViewTestCase): def setUp(self):