summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_gzip.py
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2010-01-03 22:29:56 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2010-01-03 22:29:56 (GMT)
commit673ddf9907898d4483a2622699f588f0b58a5226 (patch)
tree287266052188ec70042e331f451c4675b803c4f4 /Lib/test/test_gzip.py
parent49d709c92143ba450ee2d3195bb3fa0505a0e88f (diff)
downloadcpython-673ddf9907898d4483a2622699f588f0b58a5226.zip
cpython-673ddf9907898d4483a2622699f588f0b58a5226.tar.gz
cpython-673ddf9907898d4483a2622699f588f0b58a5226.tar.bz2
Issue #7471: Improve the performance of GzipFile's buffering mechanism,
and make it implement the `io.BufferedIOBase` ABC to allow for further speedups by wrapping it in an `io.BufferedReader`. Patch by Nir Aides.
Diffstat (limited to 'Lib/test/test_gzip.py')
-rw-r--r--Lib/test/test_gzip.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index 13b0e57..60094dc 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -5,6 +5,7 @@
import unittest
from test import test_support
import os
+import io
import struct
gzip = test_support.import_module('gzip')
@@ -80,6 +81,16 @@ class TestGzip(unittest.TestCase):
zgfile.close()
self.assertEquals(contents, 'a'*201)
+ def test_buffered_reader(self):
+ # Issue #7471: a GzipFile can be wrapped in a BufferedReader for
+ # performance.
+ self.test_write()
+
+ f = gzip.GzipFile(self.filename, 'rb')
+ with io.BufferedReader(f) as r:
+ lines = [line for line in r]
+
+ self.assertEqual(lines, 50 * data1.splitlines(True))
def test_readline(self):
self.test_write()