diff options
author | Georg Brandl <georg@python.org> | 2010-10-28 06:42:33 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-10-28 06:42:33 (GMT) |
commit | 4d540885993b0c8336f20fd52ee3972f0de44c25 (patch) | |
tree | 39f15b46ad9556d09b073b477de08269538af91d | |
parent | b156a46b26d9f231d7b36d303055af4d2b3b7c17 (diff) | |
download | cpython-4d540885993b0c8336f20fd52ee3972f0de44c25.zip cpython-4d540885993b0c8336f20fd52ee3972f0de44c25.tar.gz cpython-4d540885993b0c8336f20fd52ee3972f0de44c25.tar.bz2 |
#7351: add more consistent exception name alias.
-rw-r--r-- | Doc/library/zipfile.rst | 10 | ||||
-rw-r--r-- | Lib/test/test_zipfile.py | 22 | ||||
-rw-r--r-- | Lib/zipfile.py | 29 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
4 files changed, 38 insertions, 26 deletions
diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst index 864ee48..ef2edfc 100644 --- a/Doc/library/zipfile.rst +++ b/Doc/library/zipfile.rst @@ -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 diff --git a/Lib/test/test_zipfile.py b/Lib/test/test_zipfile.py index c02d873..3c3ce2d 100644 --- a/Lib/test/test_zipfile.py +++ b/Lib/test/test_zipfile.py @@ -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) diff --git a/Lib/zipfile.py b/Lib/zipfile.py index ad04cca..bb3d4a2 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -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)) @@ -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. |