Issue #16025: Minor corrections to the zipfile documentation.

Patch by Serhiy Storchaka.
This commit is contained in:
Andrew Svetlov 2012-10-06 18:10:01 +03:00
commit 5061a34283
2 changed files with 34 additions and 12 deletions

View File

@ -61,7 +61,7 @@ The module defines the following items:
.. class:: ZipInfo(filename='NoName', date_time=(1980,1,1,0,0,0))
Class used to represent information about a member of an archive. Instances
of this class are returned by the :meth:`getinfo` and :meth:`infolist`
of this class are returned by the :meth:`.getinfo` and :meth:`.infolist`
methods of :class:`ZipFile` objects. Most users of the :mod:`zipfile` module
will not need to create these, but only use those created by this
module. *filename* should be the full name of the archive member, and
@ -87,20 +87,20 @@ The module defines the following items:
.. data:: ZIP_DEFLATED
The numeric constant for the usual ZIP compression method. This requires the
zlib module.
:mod:`zlib` module.
.. data:: ZIP_BZIP2
The numeric constant for the BZIP2 compression method. This requires the
bz2 module.
:mod:`bz2` module.
.. versionadded:: 3.3
.. data:: ZIP_LZMA
The numeric constant for the LZMA compression method. This requires the
lzma module.
:mod:`lzma` module.
.. versionadded:: 3.3
@ -155,7 +155,7 @@ ZipFile Objects
these extensions.
If the file is created with mode ``'a'`` or ``'w'`` and then
:meth:`close`\ d without adding any files to the archive, the appropriate
:meth:`closed <close>` without adding any files to the archive, the appropriate
ZIP structures for an empty archive will be written to the file.
ZipFile is also a context manager and therefore supports the
@ -169,7 +169,7 @@ ZipFile Objects
Added the ability to use :class:`ZipFile` as a context manager.
.. versionchanged:: 3.3
Added support for :mod:`bzip2` and :mod:`lzma` compression.
Added support for :mod:`bzip2 <bz2>` and :mod:`lzma` compression.
.. method:: ZipFile.close()
@ -207,7 +207,7 @@ ZipFile Objects
*mode* parameter, if included, must be one of the following: ``'r'`` (the
default), ``'U'``, or ``'rU'``. Choosing ``'U'`` or ``'rU'`` will enable
:term:`universal newlines` support in the read-only object. *pwd* is the
password used for encrypted files. Calling :meth:`open` on a closed
password used for encrypted files. Calling :meth:`.open` on a closed
ZipFile will raise a :exc:`RuntimeError`.
.. note::
@ -229,7 +229,7 @@ ZipFile Objects
.. note::
The :meth:`open`, :meth:`read` and :meth:`extract` methods can take a filename
The :meth:`.open`, :meth:`read` and :meth:`extract` methods can take a filename
or a :class:`ZipInfo` object. You will appreciate this when trying to read a
ZIP file that contains members with duplicate names.
@ -335,7 +335,7 @@ ZipFile Objects
:class:`ZipInfo` constructor sets this member to :const:`ZIP_STORED`.
.. versionchanged:: 3.2
The *compression_type* argument.
The *compress_type* argument.
The following data attributes are also available:
@ -351,7 +351,7 @@ The following data attributes are also available:
The comment text associated with the ZIP file. If assigning a comment to a
:class:`ZipFile` instance created with mode 'a' or 'w', this should be a
string no longer than 65535 bytes. Comments longer than this will be
truncated in the written archive when :meth:`ZipFile.close` is called.
truncated in the written archive when :meth:`close` is called.
.. _pyzipfile-objects:
@ -407,8 +407,8 @@ The :class:`PyZipFile` constructor takes the same parameters as the
ZipInfo Objects
---------------
Instances of the :class:`ZipInfo` class are returned by the :meth:`getinfo` and
:meth:`infolist` methods of :class:`ZipFile` objects. Each object stores
Instances of the :class:`ZipInfo` class are returned by the :meth:`.getinfo` and
:meth:`.infolist` methods of :class:`ZipFile` objects. Each object stores
information about a single member of the ZIP archive.
Instances have the following attributes:

View File

@ -192,6 +192,28 @@ class ProcessTestCase(BaseTestCase):
p.wait()
self.assertEqual(p.stderr, None)
@unittest.skipIf(mswindows, "path not included in Windows message")
def test_path_in_arg_not_found_message(self):
# Check that the error message displays the path not found when
# args[0] is not found.
self.assertRaisesRegex(FileNotFoundError, "notfound_blahblah",
subprocess.Popen, ["notfound_blahblah"])
@unittest.skipIf(mswindows, "path not displayed in Windows message")
def test_path_in_executable_not_found_message(self):
# Check that the error message displays the executable argument (and
# not args[0]) when the executable argument is not found
# (issue #16114).
# We call sys.exit() inside the code to prevent the test runner
# from hanging if the test fails and finds python.
self.assertRaisesRegex(FileNotFoundError, "notfound_blahblah",
subprocess.Popen, [sys.executable, "-c",
"import sys; sys.exit(47)"],
executable="notfound_blahblah")
self.assertRaisesRegex(FileNotFoundError, "exenotfound_blahblah",
subprocess.Popen, ["argnotfound_blahblah"],
executable="exenotfound_blahblah")
# For use in the test_cwd* tests below.
def _normalize_cwd(self, cwd):
# Normalize an expected cwd (for Tru64 support).