summaryrefslogtreecommitdiffstats
path: root/Lib/distutils
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-04-09 22:48:19 (GMT)
committerTarek Ziadé <ziade.tarek@gmail.com>2009-04-09 22:48:19 (GMT)
commitb9f1a0c2f601fad55bfc6b4f995a1739fbc957d9 (patch)
treebeff2bb6478876e61de00ba1d2caa91f2bada316 /Lib/distutils
parent107740ff0c9189d8c43349e0263e1ca30d9cb91d (diff)
downloadcpython-b9f1a0c2f601fad55bfc6b4f995a1739fbc957d9.zip
cpython-b9f1a0c2f601fad55bfc6b4f995a1739fbc957d9.tar.gz
cpython-b9f1a0c2f601fad55bfc6b4f995a1739fbc957d9.tar.bz2
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 ........
Diffstat (limited to 'Lib/distutils')
-rw-r--r--Lib/distutils/command/bdist_wininst.py11
-rw-r--r--Lib/distutils/tests/test_bdist_wininst.py34
2 files changed, 42 insertions, 3 deletions
diff --git a/Lib/distutils/command/bdist_wininst.py b/Lib/distutils/command/bdist_wininst.py
index f18e318..d153e2b 100644
--- a/Lib/distutils/command/bdist_wininst.py
+++ b/Lib/distutils/command/bdist_wininst.py
@@ -344,10 +344,15 @@ class bdist_wininst (Command):
directory = os.path.dirname(__file__)
# 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?
- 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:
- sfix = self.plat_name[3:] # strip 'win' - leaves eg '-amd64'
+ sfix = ''
+
filename = os.path.join(directory, "wininst-%.1f%s.exe" % (bv, sfix))
return open(filename, "rb").read()
# class bdist_wininst
diff --git a/Lib/distutils/tests/test_bdist_wininst.py b/Lib/distutils/tests/test_bdist_wininst.py
new file mode 100644
index 0000000..de6601f
--- /dev/null
+++ b/Lib/distutils/tests/test_bdist_wininst.py
@@ -0,0 +1,34 @@
+"""Tests for distutils.command.bdist_wininst."""
+import unittest
+import os
+
+from distutils.dist import Distribution
+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
+ tmp_dir = self.mkdtemp()
+ pkg_dir = os.path.join(tmp_dir, 'foo')
+ os.mkdir(pkg_dir)
+ dist = Distribution()
+ 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())