Kaydet (Commit) b1a85413 authored tarafından Tarek Ziadé's avatar Tarek Ziadé

Fixed #4702: Throwing DistutilsPlatformError instead of IOError under win32 if MSVC is not found

üst 3bcb0ce9
......@@ -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"):
......
"""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")
......@@ -100,6 +100,9 @@ Core and Builtins
Library
-------
- Issue #4702: Throwing a DistutilsPlatformError instead of IOError in case
no MSVC compiler is found under Windows. Original patch by Philip Jenvey.
- Issue #4646: distutils was choking on empty options arg in the setup
function. Original patch by Thomas Heller.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment