Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
28f96b5b
Kaydet (Commit)
28f96b5b
authored
Eki 13, 2010
tarafından
Brian Curtin
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Implement #7944. Use `with` throughout the test suite.
üst
01e39797
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
104 additions
and
117 deletions
+104
-117
test_gzip.py
Lib/test/test_gzip.py
+104
-117
No files found.
Lib/test/test_gzip.py
Dosyayı görüntüle @
28f96b5b
...
...
@@ -44,14 +44,15 @@ class TestGzip(unittest.TestCase):
def
test_write
(
self
):
f
=
gzip
.
GzipFile
(
self
.
filename
,
'wb'
)
;
f
.
write
(
data1
*
50
)
with
gzip
.
GzipFile
(
self
.
filename
,
'wb'
)
as
f
:
f
.
write
(
data1
*
50
)
# Try flush and fileno.
f
.
flush
()
f
.
fileno
()
if
hasattr
(
os
,
'fsync'
):
os
.
fsync
(
f
.
fileno
())
f
.
close
()
# Try flush and fileno.
f
.
flush
()
f
.
fileno
()
if
hasattr
(
os
,
'fsync'
):
os
.
fsync
(
f
.
fileno
())
f
.
close
()
# Test multiple close() calls.
f
.
close
()
...
...
@@ -59,7 +60,8 @@ class TestGzip(unittest.TestCase):
def
test_read
(
self
):
self
.
test_write
()
# Try reading.
f
=
gzip
.
GzipFile
(
self
.
filename
,
'r'
)
;
d
=
f
.
read
()
;
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
'r'
)
as
f
:
d
=
f
.
read
()
self
.
assertEqual
(
d
,
data1
*
50
)
def
test_io_on_closed_object
(
self
):
...
...
@@ -87,31 +89,30 @@ class TestGzip(unittest.TestCase):
def
test_append
(
self
):
self
.
test_write
()
# Append to the previous file
f
=
gzip
.
GzipFile
(
self
.
filename
,
'ab'
)
;
f
.
write
(
data2
*
15
)
;
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
'ab'
)
as
f
:
f
.
write
(
data2
*
15
)
f
=
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
;
d
=
f
.
read
()
;
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
as
f
:
d
=
f
.
read
()
self
.
assertEqual
(
d
,
(
data1
*
50
)
+
(
data2
*
15
))
def
test_many_append
(
self
):
# Bug #1074261 was triggered when reading a file that contained
# many, many members. Create such a file and verify that reading it
# works.
f
=
gzip
.
open
(
self
.
filename
,
'wb'
,
9
)
f
.
write
(
b
'a'
)
f
.
close
()
for
i
in
range
(
0
,
200
):
f
=
gzip
.
open
(
self
.
filename
,
"ab"
,
9
)
# append
with
gzip
.
open
(
self
.
filename
,
'wb'
,
9
)
as
f
:
f
.
write
(
b
'a'
)
f
.
close
()
for
i
in
range
(
0
,
200
):
with
gzip
.
open
(
self
.
filename
,
"ab"
,
9
)
as
f
:
# append
f
.
write
(
b
'a'
)
# Try reading the file
zgfile
=
gzip
.
open
(
self
.
filename
,
"rb"
)
contents
=
b
""
while
1
:
ztxt
=
zgfile
.
read
(
8192
)
contents
+=
ztxt
if
not
ztxt
:
break
zgfile
.
close
()
with
gzip
.
open
(
self
.
filename
,
"rb"
)
as
zgfile
:
contents
=
b
""
while
1
:
ztxt
=
zgfile
.
read
(
8192
)
contents
+=
ztxt
if
not
ztxt
:
break
self
.
assertEquals
(
contents
,
b
'a'
*
201
)
def
test_buffered_reader
(
self
):
...
...
@@ -119,9 +120,9 @@ class TestGzip(unittest.TestCase):
# performance.
self
.
test_write
()
f
=
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
with
io
.
BufferedReader
(
f
)
as
r
:
lines
=
[
line
for
line
in
r
]
with
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
as
f
:
with
io
.
BufferedReader
(
f
)
as
r
:
lines
=
[
line
for
line
in
r
]
self
.
assertEqual
(
lines
,
50
*
data1
.
splitlines
(
True
))
...
...
@@ -129,141 +130,127 @@ class TestGzip(unittest.TestCase):
self
.
test_write
()
# Try .readline() with varying line lengths
f
=
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
line_length
=
0
while
1
:
L
=
f
.
readline
(
line_length
)
if
not
L
and
line_length
!=
0
:
break
self
.
assertTrue
(
len
(
L
)
<=
line_length
)
line_length
=
(
line_length
+
1
)
%
50
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
as
f
:
line_length
=
0
while
1
:
L
=
f
.
readline
(
line_length
)
if
not
L
and
line_length
!=
0
:
break
self
.
assertTrue
(
len
(
L
)
<=
line_length
)
line_length
=
(
line_length
+
1
)
%
50
def
test_readlines
(
self
):
self
.
test_write
()
# Try .readlines()
f
=
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
L
=
f
.
readlines
()
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
as
f
:
L
=
f
.
readlines
()
f
=
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
while
1
:
L
=
f
.
readlines
(
150
)
if
L
==
[]:
break
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
'rb'
)
as
f
:
while
1
:
L
=
f
.
readlines
(
150
)
if
L
==
[]:
break
def
test_seek_read
(
self
):
self
.
test_write
()
# Try seek, read test
f
=
gzip
.
GzipFile
(
self
.
filename
)
while
1
:
oldpos
=
f
.
tell
()
line1
=
f
.
readline
()
if
not
line1
:
break
newpos
=
f
.
tell
()
f
.
seek
(
oldpos
)
# negative seek
if
len
(
line1
)
>
10
:
amount
=
10
else
:
amount
=
len
(
line1
)
line2
=
f
.
read
(
amount
)
self
.
assertEqual
(
line1
[:
amount
],
line2
)
f
.
seek
(
newpos
)
# positive seek
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
)
as
f
:
while
1
:
oldpos
=
f
.
tell
()
line1
=
f
.
readline
()
if
not
line1
:
break
newpos
=
f
.
tell
()
f
.
seek
(
oldpos
)
# negative seek
if
len
(
line1
)
>
10
:
amount
=
10
else
:
amount
=
len
(
line1
)
line2
=
f
.
read
(
amount
)
self
.
assertEqual
(
line1
[:
amount
],
line2
)
f
.
seek
(
newpos
)
# positive seek
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
()
with
gzip
.
GzipFile
(
self
.
filename
)
as
f
:
f
.
read
(
10
)
f
.
seek
(
10
,
whence
=
1
)
y
=
f
.
read
(
10
)
self
.
assertEquals
(
y
,
data1
[
20
:
30
])
def
test_seek_write
(
self
):
# Try seek, write test
f
=
gzip
.
GzipFile
(
self
.
filename
,
'w'
)
for
pos
in
range
(
0
,
256
,
16
):
f
.
seek
(
pos
)
f
.
write
(
b
'GZ
\n
'
)
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
'w'
)
as
f
:
for
pos
in
range
(
0
,
256
,
16
):
f
.
seek
(
pos
)
f
.
write
(
b
'GZ
\n
'
)
def
test_mode
(
self
):
self
.
test_write
()
f
=
gzip
.
GzipFile
(
self
.
filename
,
'r'
)
self
.
assertEqual
(
f
.
myfileobj
.
mode
,
'rb'
)
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
'r'
)
as
f
:
self
.
assertEqual
(
f
.
myfileobj
.
mode
,
'rb'
)
def
test_1647484
(
self
):
for
mode
in
(
'wb'
,
'rb'
):
f
=
gzip
.
GzipFile
(
self
.
filename
,
mode
)
self
.
assertTrue
(
hasattr
(
f
,
"name"
))
self
.
assertEqual
(
f
.
name
,
self
.
filename
)
f
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
mode
)
as
f
:
self
.
assertTrue
(
hasattr
(
f
,
"name"
))
self
.
assertEqual
(
f
.
name
,
self
.
filename
)
def
test_mtime
(
self
):
mtime
=
123456789
fWrite
=
gzip
.
GzipFile
(
self
.
filename
,
'w'
,
mtime
=
mtime
)
fWrite
.
write
(
data1
)
fWrite
.
close
()
fRead
=
gzip
.
GzipFile
(
self
.
filename
)
dataRead
=
fRead
.
read
()
self
.
assertEqual
(
dataRead
,
data1
)
self
.
assertTrue
(
hasattr
(
fRead
,
'mtime'
))
self
.
assertEqual
(
fRead
.
mtime
,
mtime
)
fRead
.
close
()
with
gzip
.
GzipFile
(
self
.
filename
,
'w'
,
mtime
=
mtime
)
as
fWrite
:
fWrite
.
write
(
data1
)
with
gzip
.
GzipFile
(
self
.
filename
)
as
fRead
:
dataRead
=
fRead
.
read
()
self
.
assertEqual
(
dataRead
,
data1
)
self
.
assertTrue
(
hasattr
(
fRead
,
'mtime'
))
self
.
assertEqual
(
fRead
.
mtime
,
mtime
)
def
test_metadata
(
self
):
mtime
=
123456789
fWrite
=
gzip
.
GzipFile
(
self
.
filename
,
'w'
,
mtime
=
mtime
)
fWrite
.
write
(
data1
)
fWrite
.
close
()
fRead
=
open
(
self
.
filename
,
'rb'
)
# see RFC 1952: http://www.faqs.org/rfcs/rfc1952.html
with
gzip
.
GzipFile
(
self
.
filename
,
'w'
,
mtime
=
mtime
)
as
fWrite
:
fWrite
.
write
(
data1
)
idBytes
=
fRead
.
read
(
2
)
self
.
assertEqual
(
idBytes
,
b
'
\x1f\x8b
'
)
# gzip ID
with
open
(
self
.
filename
,
'rb'
)
as
fRead
:
# see RFC 1952: http://www.faqs.org/rfcs/rfc1952.html
cmByte
=
fRead
.
read
(
1
)
self
.
assertEqual
(
cmByte
,
b
'
\x08
'
)
# deflate
idBytes
=
fRead
.
read
(
2
)
self
.
assertEqual
(
idBytes
,
b
'
\x1f\x8b
'
)
# gzip ID
flags
Byte
=
fRead
.
read
(
1
)
self
.
assertEqual
(
flagsByte
,
b
'
\x08
'
)
# only the FNAME flag is set
cm
Byte
=
fRead
.
read
(
1
)
self
.
assertEqual
(
cmByte
,
b
'
\x08
'
)
# deflate
mtimeBytes
=
fRead
.
read
(
4
)
self
.
assertEqual
(
mtimeBytes
,
struct
.
pack
(
'<i'
,
mtime
))
# little-endian
flagsByte
=
fRead
.
read
(
1
)
self
.
assertEqual
(
flagsByte
,
b
'
\x08
'
)
# only the FNAME flag is set
xflByte
=
fRead
.
read
(
1
)
self
.
assertEqual
(
xflByte
,
b
'
\x02
'
)
# maximum compressio
n
mtimeBytes
=
fRead
.
read
(
4
)
self
.
assertEqual
(
mtimeBytes
,
struct
.
pack
(
'<i'
,
mtime
))
# little-endia
n
os
Byte
=
fRead
.
read
(
1
)
self
.
assertEqual
(
osByte
,
b
'
\xff
'
)
# OS "unknown" (OS-independent)
xfl
Byte
=
fRead
.
read
(
1
)
self
.
assertEqual
(
xflByte
,
b
'
\x02
'
)
# maximum compression
# Since the FNAME flag is set, the zero-terminated filename follows.
# RFC 1952 specifies that this is the name of the input file, if any.
# However, the gzip module defaults to storing the name of the output
# file in this field.
expected
=
self
.
filename
.
encode
(
'Latin-1'
)
+
b
'
\x00
'
nameBytes
=
fRead
.
read
(
len
(
expected
))
self
.
assertEqual
(
nameBytes
,
expected
)
osByte
=
fRead
.
read
(
1
)
self
.
assertEqual
(
osByte
,
b
'
\xff
'
)
# OS "unknown" (OS-independent)
# Since no other flags were set, the header ends here.
# Rather than process the compressed data, let's seek to the trailer.
fRead
.
seek
(
os
.
stat
(
self
.
filename
)
.
st_size
-
8
)
# Since the FNAME flag is set, the zero-terminated filename follows.
# RFC 1952 specifies that this is the name of the input file, if any.
# However, the gzip module defaults to storing the name of the output
# file in this field.
expected
=
self
.
filename
.
encode
(
'Latin-1'
)
+
b
'
\x00
'
nameBytes
=
fRead
.
read
(
len
(
expected
))
self
.
assertEqual
(
nameBytes
,
expected
)
crc32Bytes
=
fRead
.
read
(
4
)
# CRC32 of uncompressed data [data1]
self
.
assertEqual
(
crc32Bytes
,
b
'
\xaf\xd7
d
\x83
'
)
# Since no other flags were set, the header ends here.
# Rather than process the compressed data, let's seek to the trailer.
fRead
.
seek
(
os
.
stat
(
self
.
filename
)
.
st_size
-
8
)
isizeBytes
=
fRead
.
read
(
4
)
self
.
assertEqual
(
isizeBytes
,
struct
.
pack
(
'<i'
,
len
(
data1
))
)
crc32Bytes
=
fRead
.
read
(
4
)
# CRC32 of uncompressed data [data1]
self
.
assertEqual
(
crc32Bytes
,
b
'
\xaf\xd7
d
\x83
'
)
fRead
.
close
()
isizeBytes
=
fRead
.
read
(
4
)
self
.
assertEqual
(
isizeBytes
,
struct
.
pack
(
'<i'
,
len
(
data1
)))
def
test_with_open
(
self
):
# GzipFile supports the context management protocol
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment