B
    ?™c  ã               @   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	 ej
dkrNdndZe edke¡G dd	„ d	ejejƒƒZd
d„ Zedkr’e	eƒ ƒ dS )z"Tests for distutils._msvccompiler.é    N)ÚDistutilsPlatformError)Úsupport)Úrun_unittestZwin32z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 )
ÚmsvccompilerTestCasec             C   sB   dd l m} dd„ }|j}||_z|  t|jd¡ W d ||_X d S )Nr   c             S   s   dS )N)NN© )Z	plat_specr   r   ú2lib/python3.7/distutils/tests/test_msvccompiler.pyÚ_find_vcvarsall   s    z>msvccompilerTestCase.test_no_compiler.<locals>._find_vcvarsallzwont find this version)Údistutils._msvccompilerÚ_msvccompilerr   ZassertRaisesr   Ú_get_vc_env)Úselfr
   r   Zold_find_vcvarsallr   r   r   Útest_no_compiler   s    
z%msvccompilerTestCase.test_no_compilerc          	   C   s€   dd l m} d}d}tj dd ¡}|tj|< z2| d¡}|  | ¡ |¡ |  ||| ¡  ¡ W d tj |¡ |rz|tjd< X d S )Nr   u   á¹°á¸–á¹¤á¹ªâ”…á¹¼áº¨á¹œu	   â‚ƒâ´â‚…ZDISTUTILS_USE_SDKZx86)	r	   r
   ÚosÚenvironÚpopr   ZassertInÚlowerZassertEqual)r   r
   Ztest_varZ
test_valueZold_distutils_use_sdkÚenvr   r   r   Útest_get_vc_env_unicode#   s    

z,msvccompilerTestCase.test_get_vc_env_unicodec             C   sJ   dd l m} | ¡ \}}|r<|  |d¡ |  tj |¡¡ n
t 	d¡‚d S )Nr   é   zVS 2017 is not installed)
r	   r
   Z_find_vc2017ÚassertGreaterEqualÚ
assertTruer   ÚpathÚisdirÚunittestÚSkipTest)r   r
   Úversionr   r   r   r   Útest_get_vc20175   s    z$msvccompilerTestCase.test_get_vc2017c             C   sJ   dd l m} | ¡ \}}|r<|  |d¡ |  tj |¡¡ n
t 	d¡‚d S )Nr   é   zVS 2015 is not installed)
r	   r
   Z_find_vc2015r   r   r   r   r   r   r   )r   r
   r   r   r   r   r   Útest_get_vc2015A   s    z$msvccompilerTestCase.test_get_vc2015N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r      s   r   c               C   s
   t  t¡S )N)r   Z	makeSuiter   r   r   r   r   Ú
test_suiteM   s    r"   Ú__main__)Ú__doc__Úsysr   r   Zdistutils.errorsr   Zdistutils.testsr   Ztest.supportr   ÚplatformZSKIP_MESSAGEZ
skipUnlessZTempdirManagerZTestCaser   r"   r   r   r   r   r   Ú<module>   s   
=