diff options
author | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-04-05 22:57:21 (GMT) |
---|---|---|
committer | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-04-05 22:57:21 (GMT) |
commit | f637050f79c37701fa77dd6e424a5f3338243e81 (patch) | |
tree | a5f5a74f1fe2e7201bf7f88151046557576715ab | |
parent | 0d8f07305d7ddcf684c3db5680263c98cf70c067 (diff) | |
download | cpython-f637050f79c37701fa77dd6e424a5f3338243e81.zip cpython-f637050f79c37701fa77dd6e424a5f3338243e81.tar.gz cpython-f637050f79c37701fa77dd6e424a5f3338243e81.tar.bz2 |
Merged revisions 71291 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r71291 | tarek.ziade | 2009-04-06 00:51:09 +0200 (Mon, 06 Apr 2009) | 1 line
Fixed #5095: msi missing from Distutils bdist formats
........
-rw-r--r-- | Doc/distutils/builtdist.rst | 11 | ||||
-rw-r--r-- | Lib/distutils/command/bdist.py | 35 | ||||
-rw-r--r-- | Lib/distutils/tests/test_bdist.py | 43 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
4 files changed, 67 insertions, 25 deletions
diff --git a/Doc/distutils/builtdist.rst b/Doc/distutils/builtdist.rst index 672faee..6e7e51c 100644 --- a/Doc/distutils/builtdist.rst +++ b/Doc/distutils/builtdist.rst @@ -80,7 +80,7 @@ The available formats for built distributions are: +-------------+------------------------------+---------+ | ``tar`` | tar file (:file:`.tar`) | \(3) | +-------------+------------------------------+---------+ -| ``zip`` | zip file (:file:`.zip`) | \(4) | +| ``zip`` | zip file (:file:`.zip`) | (2),(4) | +-------------+------------------------------+---------+ | ``rpm`` | RPM | \(5) | +-------------+------------------------------+---------+ @@ -90,9 +90,12 @@ The available formats for built distributions are: +-------------+------------------------------+---------+ | ``rpm`` | RPM | \(5) | +-------------+------------------------------+---------+ -| ``wininst`` | self-extracting ZIP file for | (2),(4) | +| ``wininst`` | self-extracting ZIP file for | \(4) | | | Windows | | +-------------+------------------------------+---------+ +| ``msi`` | Microsoft Installer. | | ++-------------+------------------------------+---------+ + Notes: @@ -102,8 +105,6 @@ Notes: (2) default on Windows - **\*\*** to-do! **\*\*** - (3) requires external utilities: :program:`tar` and possibly one of :program:`gzip`, :program:`bzip2`, or :program:`compress` @@ -133,6 +134,8 @@ generates all the "dumb" archive formats (``tar``, ``ztar``, ``gztar``, and +--------------------------+-----------------------+ | :command:`bdist_wininst` | wininst | +--------------------------+-----------------------+ +| :command:`bdist_msi` | msi | ++--------------------------+-----------------------+ The following sections give details on the individual :command:`bdist_\*` commands. diff --git a/Lib/distutils/command/bdist.py b/Lib/distutils/command/bdist.py index e3b047c..1a360b5 100644 --- a/Lib/distutils/command/bdist.py +++ b/Lib/distutils/command/bdist.py @@ -49,35 +49,28 @@ class bdist(Command): ] # The following commands do not take a format option from bdist - no_format_option = ('bdist_rpm', - #'bdist_sdux', 'bdist_pkgtool' - ) + no_format_option = ('bdist_rpm',) # This won't do in reality: will need to distinguish RPM-ish Linux, # Debian-ish Linux, Solaris, FreeBSD, ..., Windows, Mac OS. - default_format = { 'posix': 'gztar', - 'nt': 'zip', - 'os2': 'zip', } + default_format = {'posix': 'gztar', + 'nt': 'zip', + 'os2': 'zip'} # Establish the preferred order (for the --help-formats option). format_commands = ['rpm', 'gztar', 'bztar', 'ztar', 'tar', - 'wininst', 'zip', - #'pkgtool', 'sdux' - ] + 'wininst', 'zip', 'msi'] # And the real information. - format_command = { 'rpm': ('bdist_rpm', "RPM distribution"), - 'zip': ('bdist_dumb', "ZIP file"), - 'gztar': ('bdist_dumb', "gzip'ed tar file"), - 'bztar': ('bdist_dumb', "bzip2'ed tar file"), - 'ztar': ('bdist_dumb', "compressed tar file"), - 'tar': ('bdist_dumb', "tar file"), - 'wininst': ('bdist_wininst', - "Windows executable installer"), - 'zip': ('bdist_dumb', "ZIP file"), - #'pkgtool': ('bdist_pkgtool', - # "Solaris pkgtool distribution"), - #'sdux': ('bdist_sdux', "HP-UX swinstall depot"), + format_command = {'rpm': ('bdist_rpm', "RPM distribution"), + 'gztar': ('bdist_dumb', "gzip'ed tar file"), + 'bztar': ('bdist_dumb', "bzip2'ed tar file"), + 'ztar': ('bdist_dumb', "compressed tar file"), + 'tar': ('bdist_dumb', "tar file"), + 'wininst': ('bdist_wininst', + "Windows executable installer"), + 'zip': ('bdist_dumb', "ZIP file"), + 'msi': ('bdist_msi', "Microsoft Installer") } diff --git a/Lib/distutils/tests/test_bdist.py b/Lib/distutils/tests/test_bdist.py new file mode 100644 index 0000000..f2849a9 --- /dev/null +++ b/Lib/distutils/tests/test_bdist.py @@ -0,0 +1,43 @@ +"""Tests for distutils.command.bdist.""" +import unittest +import sys +import os +import tempfile +import shutil + +from distutils.core import Distribution +from distutils.command.bdist import bdist +from distutils.tests import support +from distutils.spawn import find_executable +from distutils import spawn +from distutils.errors import DistutilsExecError + +class BuildTestCase(support.TempdirManager, + unittest.TestCase): + + def test_formats(self): + + # let's create a command and make sure + # we can fix the format + pkg_pth, dist = self.create_dist() + cmd = bdist(dist) + cmd.formats = ['msi'] + cmd.ensure_finalized() + self.assertEquals(cmd.formats, ['msi']) + + # what format bdist offers ? + # XXX an explicit list in bdist is + # not the best way to bdist_* commands + # we should add a registry + formats = ['rpm', 'zip', 'gztar', 'bztar', 'ztar', + 'tar', 'wininst', 'msi'] + formats.sort() + founded = list(cmd.format_command.keys()) + founded.sort() + self.assertEquals(founded, formats) + +def test_suite(): + return unittest.makeSuite(BuildTestCase) + +if __name__ == '__main__': + test_support.run_unittest(test_suite()) @@ -327,6 +327,9 @@ Core and Builtins Library ------- +- Issue #5095: Added bdist_msi to the list of bdist supported formats. + Initial fix by Steven Bethard. + - Issue #1491431: Fixed distutils.filelist.glob_to_re for edge cases. Initial fix by Wayne Davison. |