diff --git a/mayan/apps/sources/classes.py b/mayan/apps/sources/classes.py index 3ff49704af..9b8aa3b0c5 100644 --- a/mayan/apps/sources/classes.py +++ b/mayan/apps/sources/classes.py @@ -53,7 +53,9 @@ class StagingFile(object): ).decode('utf8') else: self.filename = filename - self.encoded_filename = base64.urlsafe_b64encode(filename.encode('utf8')) + self.encoded_filename = base64.urlsafe_b64encode( + filename.encode('utf8') + ) def __unicode__(self): return unicode(self.filename) diff --git a/mayan/apps/sources/tests/test_classes.py b/mayan/apps/sources/tests/test_classes.py new file mode 100644 index 0000000000..7c0bfc43fe --- /dev/null +++ b/mayan/apps/sources/tests/test_classes.py @@ -0,0 +1,34 @@ +from __future__ import unicode_literals + +import os +import shutil +import tempfile + +from django.test import TestCase + +from documents.tests import TEST_NON_ASCII_DOCUMENT_PATH + +from ..classes import StagingFile + + +class StagingFileTestCase(TestCase): + def test_unicode_staging_file(self): + temporary_directory = tempfile.mkdtemp() + shutil.copy(TEST_NON_ASCII_DOCUMENT_PATH, temporary_directory) + + filename = os.path.basename(TEST_NON_ASCII_DOCUMENT_PATH) + + class MockStagingFolder(object): + self.folder_path = temporary_directory + + staging_file_1 = StagingFile( + staging_folder=MockStagingFolder(), + filename=filename + ) + + staging_file_2 = StagingFile( + staging_folder=MockStagingFolder(), + encoded_filename=staging_file_1.encoded_filename + ) + + self.assertEqual(filename, staging_file_2.filename)