Merged revisions 71413 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r71413 | tarek.ziade | 2009-04-09 23:36:44 +0200 (Thu, 09 Apr 2009) | 1 line

  Fixed #5731: Distutils bdist_wininst no longer worked on non-Windows platforms
........
This commit is contained in:
Tarek Ziadé 2009-04-09 22:02:39 +00:00
parent be3a821b81
commit a619180354
3 changed files with 40 additions and 3 deletions

View File

@ -330,9 +330,14 @@ class bdist_wininst(Command):
directory = os.path.dirname(__file__) directory = os.path.dirname(__file__)
# we must use a wininst-x.y.exe built with the same C compiler # we must use a wininst-x.y.exe built with the same C compiler
# used for python. XXX What about mingw, borland, and so on? # used for python. XXX What about mingw, borland, and so on?
if self.plat_name == 'win32':
sfix = '' # if plat_name starts with "win" but is not "win32"
# we want to strip "win" and leave the rest (e.g. -amd64)
# for all other cases, we don't want any suffix
if self.plat_name != 'win32' and self.plat_name[:3] == 'win':
sfix = self.plat_name[3:]
else: else:
sfix = self.plat_name[3:] # strip 'win' - leaves eg '-amd64' sfix = ''
filename = os.path.join(directory, "wininst-%.1f%s.exe" % (bv, sfix)) filename = os.path.join(directory, "wininst-%.1f%s.exe" % (bv, sfix))
return open(filename, "rb").read() return open(filename, "rb").read()

View File

@ -0,0 +1,29 @@
"""Tests for distutils.command.bdist_wininst."""
import unittest
from distutils.command.bdist_wininst import bdist_wininst
from distutils.tests import support
class BuildWinInstTestCase(support.TempdirManager,
unittest.TestCase):
def test_get_exe_bytes(self):
# issue5731: command was broken on non-windows platforms
# this test makes sure it works now for every platform
# let's create a command
pkg_pth, dist = self.create_dist()
cmd = bdist_wininst(dist)
cmd.ensure_finalized()
# let's run the code that finds the right wininst*.exe file
# and make sure it finds it and returns its content
# no matter what platform we have
exe_file = cmd.get_exe_bytes()
self.assert_(len(exe_file) > 10)
def test_suite():
return unittest.makeSuite(BuildWinInstTestCase)
if __name__ == '__main__':
test_support.run_unittest(test_suite())

View File

@ -337,6 +337,9 @@ Core and Builtins
Library Library
------- -------
- Issue #5731: Distutils bdist_wininst no longer worked on non-Windows
platforms. Initial patch by Paul Moore.
- Issue #5095: Added bdist_msi to the list of bdist supported formats. - Issue #5095: Added bdist_msi to the list of bdist supported formats.
Initial fix by Steven Bethard. Initial fix by Steven Bethard.