Skip to content

Commit bcbdd2f

Browse files
bpo-28286: Add tests for the mode argument of GzipFile. (#4074)
1 parent daeefd2 commit bcbdd2f

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

Lib/test/test_gzip.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,30 @@ def test_fileobj_from_fdopen(self):
431431
with gzip.GzipFile(fileobj=f, mode="w") as g:
432432
pass
433433

434+
def test_fileobj_mode(self):
435+
gzip.GzipFile(self.filename, "wb").close()
436+
with open(self.filename, "r+b") as f:
437+
with gzip.GzipFile(fileobj=f, mode='r') as g:
438+
self.assertEqual(g.mode, gzip.READ)
439+
with gzip.GzipFile(fileobj=f, mode='w') as g:
440+
self.assertEqual(g.mode, gzip.WRITE)
441+
with gzip.GzipFile(fileobj=f, mode='a') as g:
442+
self.assertEqual(g.mode, gzip.WRITE)
443+
with gzip.GzipFile(fileobj=f, mode='x') as g:
444+
self.assertEqual(g.mode, gzip.WRITE)
445+
with self.assertRaises(ValueError):
446+
gzip.GzipFile(fileobj=f, mode='z')
447+
for mode in "rb", "r+b":
448+
with open(self.filename, mode) as f:
449+
with gzip.GzipFile(fileobj=f) as g:
450+
self.assertEqual(g.mode, gzip.READ)
451+
for mode in "wb", "ab", "xb":
452+
if "x" in mode:
453+
support.unlink(self.filename)
454+
with open(self.filename, mode) as f:
455+
with gzip.GzipFile(fileobj=f) as g:
456+
self.assertEqual(g.mode, gzip.WRITE)
457+
434458
def test_bytes_filename(self):
435459
str_filename = self.filename
436460
try:

0 commit comments

Comments
 (0)