summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2008-12-30 23:09:20 (GMT)
committerTarek Ziadé <ziade.tarek@gmail.com>2008-12-30 23:09:20 (GMT)
commit9df8ce3a8f2acb6c31a5f0b50015a9ba17d23823 (patch)
tree40b12bc656d5cc9733f6cb5c7f54201895b7d131 /Lib
parentfce25a710480f34aeaeb36f1ab9fbdcaa66b502a (diff)
downloadcpython-9df8ce3a8f2acb6c31a5f0b50015a9ba17d23823.zip
cpython-9df8ce3a8f2acb6c31a5f0b50015a9ba17d23823.tar.gz
cpython-9df8ce3a8f2acb6c31a5f0b50015a9ba17d23823.tar.bz2
Merged revisions 68081 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r68081 | tarek.ziade | 2008-12-31 00:03:41 +0100 (Wed, 31 Dec 2008) | 1 line Fixed #4702: Throwing DistutilsPlatformError instead of IOError under win32 if MSVC is not found ........
Diffstat (limited to 'Lib')
-rw-r--r--Lib/distutils/msvc9compiler.py4
-rw-r--r--Lib/distutils/tests/test_msvc9compiler.py33
2 files changed, 35 insertions, 2 deletions
diff --git a/Lib/distutils/msvc9compiler.py b/Lib/distutils/msvc9compiler.py
index eced052..aae0637 100644
--- a/Lib/distutils/msvc9compiler.py
+++ b/Lib/distutils/msvc9compiler.py
@@ -247,7 +247,7 @@ def query_vcvarsall(version, arch="x86"):
result = {}
if vcvarsall is None:
- raise IOError("Unable to find vcvarsall.bat")
+ raise DistutilsPlatformError("Unable to find vcvarsall.bat")
log.debug("Calling 'vcvarsall.bat %s' (version=%s)", arch, version)
popen = subprocess.Popen('"%s" %s & set' % (vcvarsall, arch),
stdout=subprocess.PIPE,
@@ -255,7 +255,7 @@ def query_vcvarsall(version, arch="x86"):
stdout, stderr = popen.communicate()
if popen.wait() != 0:
- raise IOError(stderr.decode("mbcs"))
+ raise DistutilsPlatformError(stderr.decode("mbcs"))
stdout = stdout.decode("mbcs")
for line in stdout.split("\n"):
diff --git a/Lib/distutils/tests/test_msvc9compiler.py b/Lib/distutils/tests/test_msvc9compiler.py
new file mode 100644
index 0000000..1659cea
--- /dev/null
+++ b/Lib/distutils/tests/test_msvc9compiler.py
@@ -0,0 +1,33 @@
+"""Tests for distutils.msvc9compiler."""
+import sys
+import unittest
+
+from distutils.errors import DistutilsPlatformError
+
+class msvc9compilerTestCase(unittest.TestCase):
+
+ def test_no_compiler(self):
+ # makes sure query_vcvarsall throws
+ # a DistutilsPlatformError if the compiler
+ # is not found
+ if sys.platform != 'win32':
+ # this test is only for win32
+ return
+ from distutils.msvc9compiler import query_vcvarsall
+ def _find_vcvarsall(version):
+ return None
+
+ from distutils import msvc9compiler
+ old_find_vcvarsall = msvc9compiler.find_vcvarsall
+ msvc9compiler.find_vcvarsall = _find_vcvarsall
+ try:
+ self.assertRaises(DistutilsPlatformError, query_vcvarsall,
+ 'wont find this version')
+ finally:
+ msvc9compiler.find_vcvarsall = old_find_vcvarsall
+
+def test_suite():
+ return unittest.makeSuite(msvc9compilerTestCase)
+
+if __name__ == "__main__":
+ unittest.main(defaultTest="test_suite")