#7351: add more consistent exception name alias.

This commit is contained in:
Georg Brandl 2010-10-28 06:42:33 +00:00
parent b156a46b26
commit 4d54088599
4 changed files with 38 additions and 26 deletions

View File

@ -24,10 +24,18 @@ For other archive formats, see the :mod:`bz2`, :mod:`gzip`, and
The module defines the following items:
.. exception:: BadZipfile
.. exception:: BadZipFile
The error raised for bad ZIP files (old name: ``zipfile.error``).
.. versionadded:: 3.2
.. exception:: BadZipfile
This is an alias for :exc:`BadZipFile` that exists for compatibility with
Python versions prior to 3.2. Usage is deprecated.
.. exception:: LargeZipFile

View File

@ -463,8 +463,8 @@ class TestsWithSourceFile(unittest.TestCase):
try:
with zipfile.ZipFile(TESTFN2, "r") as zipfp2:
raise zipfile.BadZipfile()
except zipfile.BadZipfile:
raise zipfile.BadZipFile()
except zipfile.BadZipFile:
self.assertTrue(zipfp2.fp is None, 'zipfp is not closed')
def tearDown(self):
@ -723,7 +723,7 @@ class OtherTests(unittest.TestCase):
fp.write("this is not a legal zip file\n")
try:
zf = zipfile.ZipFile(TESTFN)
except zipfile.BadZipfile:
except zipfile.BadZipFile:
pass
def test_is_zip_erroneous_file(self):
@ -786,11 +786,11 @@ class OtherTests(unittest.TestCase):
def test_empty_file_raises_BadZipFile(self):
f = open(TESTFN, 'w')
f.close()
self.assertRaises(zipfile.BadZipfile, zipfile.ZipFile, TESTFN)
self.assertRaises(zipfile.BadZipFile, zipfile.ZipFile, TESTFN)
with open(TESTFN, 'w') as fp:
fp.write("short file")
self.assertRaises(zipfile.BadZipfile, zipfile.ZipFile, TESTFN)
self.assertRaises(zipfile.BadZipFile, zipfile.ZipFile, TESTFN)
def test_closed_zip_raises_RuntimeError(self):
"""Verify that testzip() doesn't swallow inappropriate exceptions."""
@ -912,23 +912,23 @@ class OtherTests(unittest.TestCase):
self.check_testzip_with_bad_crc(zipfile.ZIP_DEFLATED)
def check_read_with_bad_crc(self, compression):
"""Tests that files with bad CRCs raise a BadZipfile exception when read."""
"""Tests that files with bad CRCs raise a BadZipFile exception when read."""
zipdata = self.zips_with_bad_crc[compression]
# Using ZipFile.read()
with zipfile.ZipFile(io.BytesIO(zipdata), mode="r") as zipf:
self.assertRaises(zipfile.BadZipfile, zipf.read, 'afile')
self.assertRaises(zipfile.BadZipFile, zipf.read, 'afile')
# Using ZipExtFile.read()
with zipfile.ZipFile(io.BytesIO(zipdata), mode="r") as zipf:
with zipf.open('afile', 'r') as corrupt_file:
self.assertRaises(zipfile.BadZipfile, corrupt_file.read)
self.assertRaises(zipfile.BadZipFile, corrupt_file.read)
# Same with small reads (in order to exercise the buffering logic)
with zipfile.ZipFile(io.BytesIO(zipdata), mode="r") as zipf:
with zipf.open('afile', 'r') as corrupt_file:
corrupt_file.MIN_READ_SIZE = 2
with self.assertRaises(zipfile.BadZipfile):
with self.assertRaises(zipfile.BadZipFile):
while corrupt_file.read(2):
pass
@ -978,11 +978,11 @@ class OtherTests(unittest.TestCase):
def test_open_empty_file(self):
# Issue 1710703: Check that opening a file with less than 22 bytes
# raises a BadZipfile exception (rather than the previously unhelpful
# raises a BadZipFile exception (rather than the previously unhelpful
# IOError)
f = open(TESTFN, 'w')
f.close()
self.assertRaises(zipfile.BadZipfile, zipfile.ZipFile, TESTFN, 'r')
self.assertRaises(zipfile.BadZipFile, zipfile.ZipFile, TESTFN, 'r')
def tearDown(self):
unlink(TESTFN)

View File

@ -22,10 +22,10 @@ except ImportError:
zlib = None
crc32 = binascii.crc32
__all__ = ["BadZipfile", "error", "ZIP_STORED", "ZIP_DEFLATED", "is_zipfile",
"ZipInfo", "ZipFile", "PyZipFile", "LargeZipFile" ]
__all__ = ["BadZipFile", "BadZipfile", "error", "ZIP_STORED", "ZIP_DEFLATED",
"is_zipfile", "ZipInfo", "ZipFile", "PyZipFile", "LargeZipFile"]
class BadZipfile(Exception):
class BadZipFile(Exception):
pass
@ -35,7 +35,8 @@ class LargeZipFile(Exception):
and those extensions are disabled.
"""
error = BadZipfile # The exception raised by this module
error = BadZipfile = BadZipFile # Pre-3.2 compatibility names
ZIP64_LIMIT = (1 << 31) - 1
ZIP_FILECOUNT_LIMIT = 1 << 16
@ -180,7 +181,7 @@ def _EndRecData64(fpin, offset, endrec):
return endrec
if diskno != 0 or disks != 1:
raise BadZipfile("zipfiles that span multiple disks are not supported")
raise BadZipZile("zipfiles that span multiple disks are not supported")
# Assume no 'zip64 extensible data'
fpin.seek(offset - sizeEndCentDir64Locator - sizeEndCentDir64, 2)
@ -592,7 +593,7 @@ class ZipExtFile(io.BufferedIOBase):
self._running_crc = crc32(newdata, self._running_crc) & 0xffffffff
# Check the CRC if we're at the end of the file
if eof and self._running_crc != self._expected_crc:
raise BadZipfile("Bad CRC-32 for file %r" % self.name)
raise BadZipFile("Bad CRC-32 for file %r" % self.name)
def read1(self, n):
"""Read up to n bytes with at most one read() system call."""
@ -720,7 +721,7 @@ class ZipFile:
self._RealGetContents()
# seek to start of directory and overwrite
self.fp.seek(self.start_dir, 0)
except BadZipfile:
except BadZipFile:
# file is not a zip file, just append
self.fp.seek(0, 2)
@ -744,7 +745,7 @@ class ZipFile:
is bad."""
try:
self._RealGetContents()
except BadZipfile:
except BadZipFile:
if not self._filePassed:
self.fp.close()
self.fp = None
@ -756,9 +757,9 @@ class ZipFile:
try:
endrec = _EndRecData(fp)
except IOError:
raise BadZipfile("File is not a zip file")
raise BadZipFile("File is not a zip file")
if not endrec:
raise BadZipfile("File is not a zip file")
raise BadZipFile("File is not a zip file")
if self.debug > 1:
print(endrec)
size_cd = endrec[_ECD_SIZE] # bytes in central directory
@ -783,7 +784,7 @@ class ZipFile:
while total < size_cd:
centdir = fp.read(sizeCentralDir)
if centdir[0:4] != stringCentralDir:
raise BadZipfile("Bad magic number for central directory")
raise BadZipFile("Bad magic number for central directory")
centdir = struct.unpack(structCentralDir, centdir)
if self.debug > 2:
print(centdir)
@ -854,7 +855,7 @@ class ZipFile:
f = self.open(zinfo.filename, "r")
while f.read(chunk_size): # Check CRC-32
pass
except BadZipfile:
except BadZipFile:
return zinfo.filename
def getinfo(self, name):
@ -903,7 +904,7 @@ class ZipFile:
# Skip the file header:
fheader = zef_file.read(sizeFileHeader)
if fheader[0:4] != stringFileHeader:
raise BadZipfile("Bad magic number for file header")
raise BadZipFile("Bad magic number for file header")
fheader = struct.unpack(structFileHeader, fheader)
fname = zef_file.read(fheader[_FH_FILENAME_LENGTH])
@ -911,7 +912,7 @@ class ZipFile:
zef_file.read(fheader[_FH_EXTRA_FIELD_LENGTH])
if fname != zinfo.orig_filename.encode("utf-8"):
raise BadZipfile(
raise BadZipFile(
'File name in directory %r and header %r differ.'
% (zinfo.orig_filename, fname))

View File

@ -51,6 +51,9 @@ Core and Builtins
Library
-------
- Issue #7351: Add ``zipfile.BadZipFile`` spelling of the exception name
and deprecate the old name ``zipfile.BadZipfile``.
- Issue #5027: The standard ``xml`` namespace is now understood by
xml.sax.saxutils.XMLGenerator as being bound to
http://www.w3.org/XML/1998/namespace. Patch by Troy J. Farrell.