a
    e                     @   s   d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 dZ
dZdZejd	krxdd
lmZ e dkrrdZq|dZndZeedu eG dd dejejZdd Zedkre	e  dS )z"Tests for distutils.msvc9compiler.    N)DistutilsPlatformError)support)run_unittesta  <?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>
</assembly>
a  <?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>
a  <?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>Zwin32)get_build_versiong       @z)These tests are only for MSVC8.0 or abovezThese tests are only for win32c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
msvc9compilerTestCasec                 C   sR   ddl m} dd }ddlm} |j}||_z| t|d W ||_n||_0 d S )Nr   )query_vcvarsallc                 S   s   d S N )versionr	   r	   3lib/python3.9/distutils/tests/test_msvc9compiler.py_find_vcvarsallo   s    z?msvc9compilerTestCase.test_no_compiler.<locals>._find_vcvarsall)msvc9compilerzwont find this version)distutils.msvc9compilerr   Z	distutilsr   Zfind_vcvarsallassertRaisesr   )selfr   r   r   Zold_find_vcvarsallr	   r	   r   test_no_compilerj   s    z&msvc9compilerTestCase.test_no_compilerc                 C   s|   ddl m} | t|jdd d}||d}| |d dd l}|j}||d}| 	|d  ||d}| d	| d S )
Nr   )RegZxxxzControl Panel\DesktopZdragfullwindows)012ZxxxxzControl PanelZDesktop)
r   r   r   KeyErrorZ	get_valueZassertInwinregHKEY_CURRENT_USERZ	read_keysassertEqual)r   r   pathvr   ZHKCUkeysr	   r	   r   test_reg_class{   s    z$msvc9compilerTestCase.test_reg_classc                 C   s   ddl m} |  }tj|d}t|d}z|t W |	  n
|	  0 | }|
| t|}z$ddd | D }W |	  n
|	  0 | |t d S )Nr   MSVCCompilermanifestw
c                 S   s   g | ]}|  qS r	   )rstrip).0liner	   r	   r   
<listcomp>       zBmsvc9compilerTestCase.test_remove_visual_c_ref.<locals>.<listcomp>)r   r   mkdtemposr   joinopenwrite"_MANIFEST_WITH_MULTIPLE_REFERENCESclose_remove_visual_c_ref	readlinesr   _CLEANED_MANIFEST)r   r   tempdirr    fcompilerZcontentr	   r	   r   test_remove_visual_c_ref   s    

z.msvc9compilerTestCase.test_remove_visual_c_refc                 C   sl   ddl m} |  }tj|d}t|d}z|t W |	  n
|	  0 | }|
|}| | d S )Nr   r   r    r!   )r   r   r(   r)   r   r*   r+   r,   "_MANIFEST_WITH_ONLY_MSVC_REFERENCEr.   r/   ZassertIsNone)r   r   r2   r    r3   r4   Zgotr	   r	   r   test_remove_entire_manifest   s    

z1msvc9compilerTestCase.test_remove_entire_manifestN)__name__
__module____qualname__r   r   r5   r7   r	   r	   r	   r   r   f   s   r   c                   C   s
   t tS r   )unittestZ	makeSuiter   r	   r	   r	   r   
test_suite   s    r<   __main__)__doc__sysr;   r)   Zdistutils.errorsr   Zdistutils.testsr   Ztest.supportr   r6   r-   r1   platformZdistutils.msvccompilerr   ZSKIP_MESSAGEZ
skipUnlessZTempdirManagerZTestCaser   r<   r8   r	   r	   r	   r   <module>   s,   

M