From 7be6e8c6eda0e429f3d3a762230a771df300b5fd Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sun, 20 Mar 2016 15:59:49 -0400 Subject: [PATCH] Add unicode filename test for the StagingFile class. --- mayan/apps/sources/classes.py | 4 ++- mayan/apps/sources/tests/test_classes.py | 34 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 mayan/apps/sources/tests/test_classes.py 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)