Patch #1355023: support whence argument for GzipFile.seek.
This commit is contained in:
parent
040a927cd1
commit
065f0c8a06
|
@ -371,7 +371,12 @@ class GzipFile:
|
|||
self.extrasize = 0
|
||||
self.offset = 0
|
||||
|
||||
def seek(self, offset):
|
||||
def seek(self, offset, whence=0):
|
||||
if whence:
|
||||
if whence == 1:
|
||||
offset = self.offset + offset
|
||||
else:
|
||||
raise ValueError('Seek from end not supported')
|
||||
if self.mode == WRITE:
|
||||
if offset < self.offset:
|
||||
raise IOError('Negative seek in write mode')
|
||||
|
|
|
@ -128,6 +128,17 @@ class TestGzip(unittest.TestCase):
|
|||
f.seek(newpos) # positive seek
|
||||
f.close()
|
||||
|
||||
def test_seek_whence(self):
|
||||
self.test_write()
|
||||
# Try seek(whence=1), read test
|
||||
|
||||
f = gzip.GzipFile(self.filename)
|
||||
f.read(10)
|
||||
f.seek(10, whence=1)
|
||||
y = f.read(10)
|
||||
f.close()
|
||||
self.assertEquals(y, data1[20:30])
|
||||
|
||||
def test_seek_write(self):
|
||||
# Try seek, write test
|
||||
f = gzip.GzipFile(self.filename, 'w')
|
||||
|
|
Loading…
Reference in New Issue