blob: 7edc61794ae007420bb2a5e668865465d44c77b9 [file] [log] [blame]
Andrew M. Kuchling605ebdd1999-03-25 21:50:27 +00001import sys, os
2import gzip, tempfile
3
4filename = tempfile.mktemp()
5
6data1 = """ int length=DEFAULTALLOC, err = Z_OK;
7 PyObject *RetVal;
8 int flushmode = Z_FINISH;
9 unsigned long start_total_out;
10
11"""
12
13data2 = """/* zlibmodule.c -- gzip-compatible data compression */
14/* See http://www.cdrom.com/pub/infozip/zlib/ */
15/* See http://www.winimage.com/zLibDll for Windows */
16"""
17
Andrew M. Kuchling85ab7382000-07-29 20:18:34 +000018f = gzip.GzipFile(filename, 'wb') ; f.write(data1 * 50) ; f.close()
Andrew M. Kuchling605ebdd1999-03-25 21:50:27 +000019
Guido van Rossum052364b1999-04-07 19:00:58 +000020f = gzip.GzipFile(filename, 'rb') ; d = f.read() ; f.close()
Andrew M. Kuchling85ab7382000-07-29 20:18:34 +000021assert d == data1*50
Andrew M. Kuchling605ebdd1999-03-25 21:50:27 +000022
23# Append to the previous file
Andrew M. Kuchling85ab7382000-07-29 20:18:34 +000024f = gzip.GzipFile(filename, 'ab') ; f.write(data2 * 15) ; f.close()
Andrew M. Kuchling605ebdd1999-03-25 21:50:27 +000025
Guido van Rossum052364b1999-04-07 19:00:58 +000026f = gzip.GzipFile(filename, 'rb') ; d = f.read() ; f.close()
Andrew M. Kuchling85ab7382000-07-29 20:18:34 +000027assert d == (data1*50) + (data2*15)
28
29# Try .readline() with varying line lengths
30
31f = gzip.GzipFile(filename, 'rb')
32line_length = 0
33while 1:
34 L = f.readline( line_length )
35 if L == "" and line_length != 0: break
36 assert len(L) <= line_length
37 line_length = (line_length + 1) % 50
38f.close()
39
Fred Drake004d5e62000-10-23 17:22:08 +000040# Try .readlines()
Andrew M. Kuchling85ab7382000-07-29 20:18:34 +000041
42f = gzip.GzipFile(filename, 'rb')
43L = f.readlines()
44f.close()
45
46f = gzip.GzipFile(filename, 'rb')
47while 1:
48 L = f.readlines(150)
Fred Drake004d5e62000-10-23 17:22:08 +000049 if L == []: break
Andrew M. Kuchling85ab7382000-07-29 20:18:34 +000050f.close()
51
Andrew M. Kuchling605ebdd1999-03-25 21:50:27 +000052
53os.unlink( filename )