from test
.test_support
import verify
, TESTFN
data1
= """ int length=DEFAULTALLOC, err = Z_OK;
int flushmode = Z_FINISH;
unsigned long start_total_out;
data2
= """/* zlibmodule.c -- gzip-compatible data compression */
/* See http://www.gzip.org/zlib/
/* See http://www.winimage.com/zLibDll for Windows */
f
= gzip
.GzipFile(filename
, 'wb') ; f
.write(data1
* 50)
f
= gzip
.GzipFile(filename
, 'r') ; d
= f
.read() ; f
.close()
# Append to the previous file
f
= gzip
.GzipFile(filename
, 'ab') ; f
.write(data2
* 15) ; f
.close()
f
= gzip
.GzipFile(filename
, 'rb') ; d
= f
.read() ; f
.close()
verify(d
== (data1
*50) + (data2
*15))
# Try .readline() with varying line lengths
f
= gzip
.GzipFile(filename
, 'rb')
L
= f
.readline(line_length
)
if L
== "" and line_length
!= 0: break
verify(len(L
) <= line_length
)
line_length
= (line_length
+ 1) % 50
f
= gzip
.GzipFile(filename
, 'rb')
f
= gzip
.GzipFile(filename
, 'rb')
f
= gzip
.GzipFile(filename
)
f
.seek(oldpos
) # negative seek
verify(line1
[:amount
] == line2
)
f
.seek(newpos
) # positive seek
f
= gzip
.GzipFile(filename
, 'w')
for pos
in range(0, 256, 16):
f
= gzip
.GzipFile(filename
, 'r')
verify(f
.myfileobj
.mode
== 'rb')