gh-45108: Improve docstring and testing of ZipFile.testfile() (GH-96233)

This commit is contained in:
Serhiy Storchaka 2022-09-03 08:58:25 +03:00 committed by GitHub
parent 57b6110361
commit 16c6759b37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 12 deletions

View File

@ -124,8 +124,9 @@ def zip_test(self, f, compression, compresslevel=None):
self.assertEqual(info.filename, nm)
self.assertEqual(info.file_size, len(self.data))
# Check that testzip doesn't raise an exception
zipfp.testzip()
# Check that testzip thinks the archive is ok
# (it returns None if all contents could be read properly)
self.assertIsNone(zipfp.testzip())
def test_basic(self):
for f in get_files(self):
@ -748,8 +749,8 @@ def zip_test(self, f, compression):
self.assertEqual(info.filename, nm)
self.assertEqual(info.file_size, len(self.data))
# Check that testzip doesn't raise an exception
zipfp.testzip()
# Check that testzip thinks the archive is valid
self.assertIsNone(zipfp.testzip())
def test_basic(self):
for f in get_files(self):

View File

@ -32,10 +32,6 @@ def setUp(self):
line_gen = ("Test of zipfile line %d." % i for i in range(1000000))
self.data = '\n'.join(line_gen).encode('ascii')
# And write it to a file.
with open(TESTFN, "wb") as fp:
fp.write(self.data)
def zipTest(self, f, compression):
# Create the ZIP archive.
with zipfile.ZipFile(f, "w", compression) as zipfp:
@ -67,6 +63,9 @@ def zipTest(self, f, compression):
(num, filecount)), file=sys.__stdout__)
sys.__stdout__.flush()
# Check that testzip thinks the archive is valid
self.assertIsNone(zipfp.testzip())
def testStored(self):
# Try the temp file first. If we do TESTFN2 first, then it hogs
# gigabytes of disk space for the duration of the test.
@ -85,9 +84,7 @@ def testDeflated(self):
self.zipTest(TESTFN2, zipfile.ZIP_DEFLATED)
def tearDown(self):
for fname in TESTFN, TESTFN2:
if os.path.exists(fname):
os.remove(fname)
os_helper.unlink(TESTFN2)
class OtherTests(unittest.TestCase):

View File

@ -1468,7 +1468,10 @@ def printdir(self, file=None):
file=file)
def testzip(self):
"""Read all the files and check the CRC."""
"""Read all the files and check the CRC.
Return None if all files could be read successfully, or the name
of the offending file otherwise."""
chunk_size = 2 ** 20
for zinfo in self.filelist:
try: