Author: jacob
Date: 2008-08-27 15:29:45 -0500 (Wed, 27 Aug 2008)
New Revision: 8634

Modified:
   django/trunk/django/core/files/uploadedfile.py
Log:
Fixed #7769: Added a couple missing file methods to `TemporaryUploadedFile`. 
Thanks, Mads S?\195?\188lau J?\195?\184rgensen.

Modified: django/trunk/django/core/files/uploadedfile.py
===================================================================
--- django/trunk/django/core/files/uploadedfile.py      2008-08-27 19:59:29 UTC 
(rev 8633)
+++ django/trunk/django/core/files/uploadedfile.py      2008-08-27 20:29:45 UTC 
(rev 8634)
@@ -84,8 +84,9 @@
     # We can't directly subclass because NamedTemporaryFile is actually a
     # factory function
     def read(self, *args):          return self._file.read(*args)
-    def seek(self, offset):         return self._file.seek(offset)
+    def seek(self, *args):          return self._file.seek(*args)
     def write(self, s):             return self._file.write(s)
+    def tell(self, *args):          return self._file.tell(*args)
     def __iter__(self):             return iter(self._file)
     def readlines(self, size=None): return self._file.readlines(size)
     def xreadlines(self):           return self._file.xreadlines()
@@ -107,39 +108,39 @@
     """
     def __init__(self, file, field_name, name, content_type, size, charset):
         super(InMemoryUploadedFile, self).__init__(name, content_type, size, 
charset)
-        self.file = file
+        self._file = file
         self.field_name = field_name
-        self.file.seek(0)
+        self._file.seek(0)
 
-    def seek(self, *args, **kwargs):
-        self.file.seek(*args, **kwargs)
-
     def open(self):
-        self.seek(0)
+        self._file.seek(0)
 
-    def read(self, *args, **kwargs):
-        return self.file.read(*args, **kwargs)
-
     def chunks(self, chunk_size=None):
-        self.file.seek(0)
+        self._file.seek(0)
         yield self.read()
 
     def multiple_chunks(self, chunk_size=None):
         # Since it's in memory, we'll never have multiple chunks.
         return False
 
+    # proxy methods to StringIO
+    def read(self, *args): return self._file.read(*args)
+    def seek(self, *args): return self._file.seek(*args)
+    def tell(self, *args): return self._file.tell(*args)
+    def close(self):       return self._file.close()
+
 class SimpleUploadedFile(InMemoryUploadedFile):
     """
     A simple representation of a file, which just has content, size, and a 
name.
     """
     def __init__(self, name, content, content_type='text/plain'):
-        self.file = StringIO(content or '')
+        self._file = StringIO(content or '')
         self.name = name
         self.field_name = None
         self.size = len(content or '')
         self.content_type = content_type
         self.charset = None
-        self.file.seek(0)
+        self._file.seek(0)
 
     def from_dict(cls, file_dict):
         """


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to