Separate tests for gzip.GzipFile and gzip.open.

This commit is contained in:
Nadeem Vawda 2012-05-06 15:17:52 +02:00
parent 7e126205e6
commit 1b8a14d3f0
1 changed files with 14 additions and 15 deletions

View File

@ -33,7 +33,7 @@ class UnseekableIO(io.BytesIO):
raise io.UnsupportedOperation
class TestGzip(unittest.TestCase):
class BaseTest(unittest.TestCase):
filename = support.TESTFN
def setUp(self):
@ -43,6 +43,7 @@ class TestGzip(unittest.TestCase):
support.unlink(self.filename)
class TestGzip(BaseTest):
def test_write(self):
with gzip.GzipFile(self.filename, 'wb') as f:
f.write(data1 * 50)
@ -115,14 +116,14 @@ class TestGzip(unittest.TestCase):
# Bug #1074261 was triggered when reading a file that contained
# many, many members. Create such a file and verify that reading it
# works.
with gzip.open(self.filename, 'wb', 9) as f:
with gzip.GzipFile(self.filename, 'wb', 9) as f:
f.write(b'a')
for i in range(0, 200):
with gzip.open(self.filename, "ab", 9) as f: # append
with gzip.GzipFile(self.filename, "ab", 9) as f: # append
f.write(b'a')
# Try reading the file
with gzip.open(self.filename, "rb") as zgfile:
with gzip.GzipFile(self.filename, "rb") as zgfile:
contents = b""
while 1:
ztxt = zgfile.read(8192)
@ -374,10 +375,9 @@ class TestGzip(unittest.TestCase):
datac = gzip.compress(data)
self.assertEqual(gzip.decompress(datac), data)
# Test the 'open' convenience function.
def test_open_binary(self):
# Test explicit binary modes.
class TestOpen(BaseTest):
def test_binary_modes(self):
uncompressed = data1 * 50
with gzip.open(self.filename, "wb") as f:
f.write(uncompressed)
@ -392,7 +392,7 @@ class TestGzip(unittest.TestCase):
file_data = gzip.decompress(f.read())
self.assertEqual(file_data, uncompressed * 2)
def test_open_default_binary(self):
def test_implicit_binary_modes(self):
# Test implicit binary modes (no "b" or "t" in mode string).
uncompressed = data1 * 50
with gzip.open(self.filename, "w") as f:
@ -408,8 +408,7 @@ class TestGzip(unittest.TestCase):
file_data = gzip.decompress(f.read())
self.assertEqual(file_data, uncompressed * 2)
def test_open_text(self):
# Test text modes.
def test_text_modes(self):
uncompressed = data1.decode("ascii") * 50
with gzip.open(self.filename, "wt") as f:
f.write(uncompressed)
@ -424,7 +423,7 @@ class TestGzip(unittest.TestCase):
file_data = gzip.decompress(f.read()).decode("ascii")
self.assertEqual(file_data, uncompressed * 2)
def test_open_bad_params(self):
def test_bad_params(self):
# Test invalid parameter combinations.
with self.assertRaises(ValueError):
gzip.open(self.filename, "wbt")
@ -435,7 +434,7 @@ class TestGzip(unittest.TestCase):
with self.assertRaises(ValueError):
gzip.open(self.filename, "rb", newline="\n")
def test_open_with_encoding(self):
def test_encoding(self):
# Test non-default encoding.
uncompressed = data1.decode("ascii") * 50
with gzip.open(self.filename, "wt", encoding="utf-16") as f:
@ -446,7 +445,7 @@ class TestGzip(unittest.TestCase):
with gzip.open(self.filename, "rt", encoding="utf-16") as f:
self.assertEqual(f.read(), uncompressed)
def test_open_with_encoding_error_handler(self):
def test_encoding_error_handler(self):
# Test with non-default encoding error handler.
with gzip.open(self.filename, "wb") as f:
f.write(b"foo\xffbar")
@ -454,7 +453,7 @@ class TestGzip(unittest.TestCase):
as f:
self.assertEqual(f.read(), "foobar")
def test_open_with_newline(self):
def test_newline(self):
# Test with explicit newline (universal newline mode disabled).
uncompressed = data1.decode("ascii") * 50
with gzip.open(self.filename, "wt") as f:
@ -463,7 +462,7 @@ class TestGzip(unittest.TestCase):
self.assertEqual(f.readlines(), [uncompressed])
def test_main(verbose=None):
support.run_unittest(TestGzip)
support.run_unittest(TestGzip, TestOpen)
if __name__ == "__main__":
test_main(verbose=True)