diff --git a/mayan/apps/sources/classes.py b/mayan/apps/sources/classes.py index 34213afa76..ea64144278 100644 --- a/mayan/apps/sources/classes.py +++ b/mayan/apps/sources/classes.py @@ -3,7 +3,14 @@ from __future__ import unicode_literals import base64 import os import time -import urllib + +try: + # Python 2 + from urllib import unquote_plus +except ImportError: + # Python 3 + from urllib.parse import unquote_plus + from django.core.files import File from django.urls import reverse @@ -39,7 +46,7 @@ class StagingFile(object): if encoded_filename: self.encoded_filename = str(encoded_filename) self.filename = base64.urlsafe_b64decode( - urllib.unquote_plus(self.encoded_filename) + unquote_plus(self.encoded_filename) ).decode('utf8') else: self.filename = filename diff --git a/mayan/apps/sources/tests/test_views.py b/mayan/apps/sources/tests/test_views.py index b7f9712941..2994fc24dc 100644 --- a/mayan/apps/sources/tests/test_views.py +++ b/mayan/apps/sources/tests/test_views.py @@ -40,7 +40,7 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase): self.document.delete() def _request_upload_wizard(self): - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + with open(TEST_SMALL_DOCUMENT_PATH, 'rb') as file_object: return self.post( 'sources:upload_interactive', args=(self.source.pk,), data={ 'source-file': file_object, @@ -82,7 +82,7 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase): obj=self.document_type, permission=permission_document_create ) - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + with open(TEST_SMALL_DOCUMENT_PATH, 'rb') as file_object: response = self.post( 'sources:upload_interactive', args=(self.source.pk,), data={ 'source-file': file_object, @@ -142,7 +142,7 @@ class DocumentUploadIssueTestCase(GenericViewTestCase): self.assertEqual(WebFormSource.objects.count(), 1) # Upload the test document - with open(TEST_SMALL_DOCUMENT_PATH) as file_descriptor: + with open(TEST_SMALL_DOCUMENT_PATH, 'rb') as file_descriptor: self.post( 'sources:upload_interactive', data={ 'document-language': 'eng', 'source-file': file_descriptor,