From c33aeaa082b2f821db0b87afbd01f5e0144b9aa4 Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Wed, 27 Aug 2008 20:53:02 +0000 Subject: [PATCH] FIxed #8156: `UploadedFile.__repr__` now returns a string, a good `__repr__` should. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8636 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/files/uploadedfile.py | 3 ++- tests/regressiontests/file_storage/tests.py | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/django/core/files/uploadedfile.py b/django/core/files/uploadedfile.py index b15f8d535f..9fc4bcbbe5 100644 --- a/django/core/files/uploadedfile.py +++ b/django/core/files/uploadedfile.py @@ -11,6 +11,7 @@ except ImportError: from django.conf import settings from django.core.files.base import File from django.core.files import temp as tempfile +from django.utils.encoding import smart_str __all__ = ('UploadedFile', 'TemporaryUploadedFile', 'InMemoryUploadedFile', 'SimpleUploadedFile') @@ -32,7 +33,7 @@ class UploadedFile(File): self.charset = charset def __repr__(self): - return "<%s: %s (%s)>" % (self.__class__.__name__, self.name, self.content_type) + return "<%s: %s (%s)>" % (self.__class__.__name__, smart_str(self.name), self.content_type) def _get_name(self): return self._name diff --git a/tests/regressiontests/file_storage/tests.py b/tests/regressiontests/file_storage/tests.py index a2b6baa07b..3f059c7f3c 100644 --- a/tests/regressiontests/file_storage/tests.py +++ b/tests/regressiontests/file_storage/tests.py @@ -1,3 +1,4 @@ +# coding: utf-8 """ Tests for the file storage mechanism @@ -72,6 +73,14 @@ u'custom_storage.2' # Cleanup the temp dir >>> os.rmdir(temp_dir) + +# Regression test for #8156: files with unicode names I can't quite figure out the +# encoding situation between doctest and this file, but the actual repr doesn't +# matter; it just shouldn't return a unicode object. +>>> from django.core.files.uploadedfile import UploadedFile +>>> uf = UploadedFile(name=u'¿Cómo?',content_type='text') +>>> uf.__repr__() +'' """ # Tests for a race condition on file saving (#4948).