Commit d00ef0e0 authored by Martin v. Löwis's avatar Martin v. Löwis

Patch #822994: Consolidate tests for self.closed.

parent 8e6c8ca8
...@@ -35,6 +35,10 @@ except ImportError: ...@@ -35,6 +35,10 @@ except ImportError:
__all__ = ["StringIO"] __all__ = ["StringIO"]
def _complain_ifclosed(closed):
if closed:
raise ValueError, "I/O operation on closed file"
class StringIO: class StringIO:
"""class StringIO([buffer]) """class StringIO([buffer])
...@@ -55,7 +59,7 @@ class StringIO: ...@@ -55,7 +59,7 @@ class StringIO:
self.len = len(buf) self.len = len(buf)
self.buflist = [] self.buflist = []
self.pos = 0 self.pos = 0
self.closed = 0 self.closed = False
self.softspace = 0 self.softspace = 0
def __iter__(self): def __iter__(self):
...@@ -73,17 +77,15 @@ class StringIO: ...@@ -73,17 +77,15 @@ class StringIO:
"""Free the memory buffer. """Free the memory buffer.
""" """
if not self.closed: if not self.closed:
self.closed = 1 self.closed = True
del self.buf, self.pos del self.buf, self.pos
def isatty(self): def isatty(self):
if self.closed: _complain_ifclosed(self.closed)
raise ValueError, "I/O operation on closed file"
return False return False
def seek(self, pos, mode = 0): def seek(self, pos, mode = 0):
if self.closed: _complain_ifclosed(self.closed)
raise ValueError, "I/O operation on closed file"
if self.buflist: if self.buflist:
self.buf += ''.join(self.buflist) self.buf += ''.join(self.buflist)
self.buflist = [] self.buflist = []
...@@ -94,13 +96,11 @@ class StringIO: ...@@ -94,13 +96,11 @@ class StringIO:
self.pos = max(0, pos) self.pos = max(0, pos)
def tell(self): def tell(self):
if self.closed: _complain_ifclosed(self.closed)
raise ValueError, "I/O operation on closed file"
return self.pos return self.pos
def read(self, n = -1): def read(self, n = -1):
if self.closed: _complain_ifclosed(self.closed)
raise ValueError, "I/O operation on closed file"
if self.buflist: if self.buflist:
self.buf += ''.join(self.buflist) self.buf += ''.join(self.buflist)
self.buflist = [] self.buflist = []
...@@ -113,8 +113,7 @@ class StringIO: ...@@ -113,8 +113,7 @@ class StringIO:
return r return r
def readline(self, length=None): def readline(self, length=None):
if self.closed: _complain_ifclosed(self.closed)
raise ValueError, "I/O operation on closed file"
if self.buflist: if self.buflist:
self.buf += ''.join(self.buflist) self.buf += ''.join(self.buflist)
self.buflist = [] self.buflist = []
...@@ -143,8 +142,7 @@ class StringIO: ...@@ -143,8 +142,7 @@ class StringIO:
return lines return lines
def truncate(self, size=None): def truncate(self, size=None):
if self.closed: _complain_ifclosed(self.closed)
raise ValueError, "I/O operation on closed file"
if size is None: if size is None:
size = self.pos size = self.pos
elif size < 0: elif size < 0:
...@@ -154,8 +152,7 @@ class StringIO: ...@@ -154,8 +152,7 @@ class StringIO:
self.buf = self.getvalue()[:size] self.buf = self.getvalue()[:size]
def write(self, s): def write(self, s):
if self.closed: _complain_ifclosed(self.closed)
raise ValueError, "I/O operation on closed file"
if not s: return if not s: return
# Force s to be a string or unicode # Force s to be a string or unicode
if not isinstance(s, basestring): if not isinstance(s, basestring):
...@@ -185,8 +182,7 @@ class StringIO: ...@@ -185,8 +182,7 @@ class StringIO:
self.write(''.join(list)) self.write(''.join(list))
def flush(self): def flush(self):
if self.closed: _complain_ifclosed(self.closed)
raise ValueError, "I/O operation on closed file"
def getvalue(self): def getvalue(self):
""" """
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment