diff --git a/mayan/apps/sources/tests/test_views.py b/mayan/apps/sources/tests/test_views.py index df236f7287..7c07eb6c1f 100644 --- a/mayan/apps/sources/tests/test_views.py +++ b/mayan/apps/sources/tests/test_views.py @@ -3,7 +3,10 @@ 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.test_views import GenericViewTestCase @@ -15,6 +18,9 @@ from documents.tests import ( TEST_SMALL_DOCUMENT_CHECKSUM, TEST_SMALL_DOCUMENT_PATH ) from documents.tests.test_views import GenericDocumentViewTestCase +from metadata.models import MetadataType +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 @@ -120,6 +126,42 @@ 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, + }, follow=True + ) + 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): diff --git a/requirements/base.txt b/requirements/base.txt index 6dd631e0f5..814682396f 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -24,6 +24,7 @@ django-widget-tweaks==1.4.1 djangorestframework==3.3.2 djangorestframework-recursive==0.1.1 +furl==1.0.0 fusepy==2.0.4 graphviz==0.8