summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/tests/test_msvc9compiler.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/distutils/tests/test_msvc9compiler.py')
-rw-r--r--Lib/distutils/tests/test_msvc9compiler.py87
1 files changed, 80 insertions, 7 deletions
diff --git a/Lib/distutils/tests/test_msvc9compiler.py b/Lib/distutils/tests/test_msvc9compiler.py
index 1264854..503a5a8 100644
--- a/Lib/distutils/tests/test_msvc9compiler.py
+++ b/Lib/distutils/tests/test_msvc9compiler.py
@@ -1,18 +1,73 @@
"""Tests for distutils.msvc9compiler."""
import sys
import unittest
+import os
from distutils.errors import DistutilsPlatformError
+from distutils.tests import support
-class msvc9compilerTestCase(unittest.TestCase):
+_MANIFEST = """\
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
+ manifestVersion="1.0">
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level="asInvoker" uiAccess="false">
+ </requestedExecutionLevel>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
+ version="9.0.21022.8" processorArchitecture="x86"
+ publicKeyToken="XXXX">
+ </assemblyIdentity>
+ </dependentAssembly>
+ </dependency>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"
+ version="9.0.21022.8" processorArchitecture="x86"
+ publicKeyToken="XXXX"></assemblyIdentity>
+ </dependentAssembly>
+ </dependency>
+</assembly>
+"""
+
+_CLEANED_MANIFEST = """\
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
+ manifestVersion="1.0">
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level="asInvoker" uiAccess="false">
+ </requestedExecutionLevel>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+
+ </dependency>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"
+ version="9.0.21022.8" processorArchitecture="x86"
+ publicKeyToken="XXXX"></assemblyIdentity>
+ </dependentAssembly>
+ </dependency>
+</assembly>"""
+
+@unittest.skipUnless(sys.platform=="win32", "These tests are only for win32")
+class msvc9compilerTestCase(support.TempdirManager,
+ 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.msvccompiler import get_build_version
if get_build_version() < 8.0:
# this test is only for MSVC8.0 or above
@@ -31,9 +86,6 @@ class msvc9compilerTestCase(unittest.TestCase):
msvc9compiler.find_vcvarsall = old_find_vcvarsall
def test_reg_class(self):
- if sys.platform != 'win32':
- # this test is only for win32
- return
from distutils.msvccompiler import get_build_version
if get_build_version() < 8.0:
# this test is only for MSVC8.0 or above
@@ -56,6 +108,27 @@ class msvc9compilerTestCase(unittest.TestCase):
keys = Reg.read_keys(HKCU, r'Control Panel')
self.assertTrue('Desktop' in keys)
+ def test_remove_visual_c_ref(self):
+ from distutils.msvc9compiler import MSVCCompiler
+ tempdir = self.mkdtemp()
+ manifest = os.path.join(tempdir, 'manifest')
+ f = open(manifest, 'w')
+ f.write(_MANIFEST)
+ f.close()
+
+ compiler = MSVCCompiler()
+ compiler._remove_visual_c_ref(manifest)
+
+ # see what we got
+ f = open(manifest)
+ # removing trailing spaces
+ content = '\n'.join([line.rstrip() for line in f.readlines()])
+ f.close()
+
+ # makes sure the manifest was properly cleaned
+ self.assertEquals(content, _CLEANED_MANIFEST)
+
+
def test_suite():
return unittest.makeSuite(msvc9compilerTestCase)