]> granicus.if.org Git - python/commitdiff
make StringIO like other file objects in that readline(-1) has no effect #7348
authorBenjamin Peterson <benjamin@python.org>
Sun, 13 Dec 2009 17:29:16 +0000 (17:29 +0000)
committerBenjamin Peterson <benjamin@python.org>
Sun, 13 Dec 2009 17:29:16 +0000 (17:29 +0000)
Lib/StringIO.py
Lib/test/test_StringIO.py

index 054ad4c3d585c2809cfa76ed177dad378bd5039e..340fae1229031c7110d18d5d6e143f7b9d106d1a 100644 (file)
@@ -158,7 +158,7 @@ class StringIO:
             newpos = self.len
         else:
             newpos = i+1
-        if length is not None:
+        if length is not None and length > 0:
             if self.pos + length < newpos:
                 newpos = self.pos + length
         r = self.buf[self.pos:newpos]
index f5a177ed55ee2cc8cc949f40261b14678c4fe805..d10255de41f2ae151f07f48330804eecb5837fd0 100644 (file)
@@ -28,6 +28,8 @@ class TestGenericStringIO(unittest.TestCase):
         eq(self._fp.read(10), self._line[:10])
         eq(self._fp.readline(), self._line[10:] + '\n')
         eq(len(self._fp.readlines(60)), 2)
+        self._fp.seek(0)
+        eq(self._fp.readline(-1), self._line + '\n')
 
     def test_writes(self):
         f = self.MODULE.StringIO()