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
This commit is contained in:
Jacob Kaplan-Moss 2008-08-27 20:53:02 +00:00
parent 40e5cde1c5
commit c33aeaa082
2 changed files with 11 additions and 1 deletions

View File

@ -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

View File

@ -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__()
'<UploadedFile: ... (text)>'
"""
# Tests for a race condition on file saving (#4948).