a :êdg–ã@s¼ddlZddlZddlZddlmZddlmZddlmZdZ dZ dZ ej dkrtdd l mZeƒd krndZqxd Znd Ze edue¡Gd d„dejejƒƒZdd„Zedkr¸eeƒƒdS)éN)ÚDistutilsPlatformError)Úsupport)Ú run_unittesta¢ a a¸ Úwin32)Úget_build_versiong @z)These tests are only for MSVC8.0 or abovezThese tests are only for win32c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Úmsvc9compilerTestCasecCsRddlm}dd„}ddlm}|j}||_z| t|d¡W||_n||_0dS)Nr)Úquery_vcvarsallcSsdS©N©)Úversionr r ú>/usr/local/lib/python3.9/distutils/tests/test_msvc9compiler.pyÚ_find_vcvarsallosz?msvc9compilerTestCase.test_no_compiler.._find_vcvarsall)Ú msvc9compilerzwont find this version)Údistutils.msvc9compilerrZ distutilsrZfind_vcvarsallÚ assertRaisesr)Úselfrr rZold_find_vcvarsallr r r Útest_no_compilerjs  ÿz&msvc9compilerTestCase.test_no_compilercCs|ddlm}| t|jdd¡d}| |d¡}| |d¡ddl}|j}| |d¡}|  |d¡| |d¡}| d |¡dS) Nr)ÚRegZxxxzControl Panel\DesktopZdragfullwindows)Ú0Ú1Ú2Zxxxxz Control PanelZDesktop) rrrÚKeyErrorÚ get_valueZassertInÚwinregÚHKEY_CURRENT_USERZ read_keysÚ assertEqual)rrÚpathÚvrZHKCUÚkeysr r r Útest_reg_class{s      z$msvc9compilerTestCase.test_reg_classcCs¦ddlm}| ¡}tj |d¡}t|dƒ}z| t¡W|  ¡n |  ¡0|ƒ}|  |¡t|ƒ}z$d dd„|  ¡Dƒ¡}W|  ¡n |  ¡0|  |t ¡dS)Nr©Ú MSVCCompilerÚmanifestÚwÚ cSsg|] }| ¡‘qSr )Úrstrip)Ú.0Úliner r r Ú žózBmsvc9compilerTestCase.test_remove_visual_c_ref..)rr!ÚmkdtempÚosrÚjoinÚopenÚwriteÚ"_MANIFEST_WITH_MULTIPLE_REFERENCESÚcloseÚ_remove_visual_c_refÚ readlinesrÚ_CLEANED_MANIFEST)rr!Útempdirr"ÚfÚcompilerZcontentr r r Útest_remove_visual_c_refs    z.msvc9compilerTestCase.test_remove_visual_c_refcCslddlm}| ¡}tj |d¡}t|dƒ}z| t¡W|  ¡n |  ¡0|ƒ}|  |¡}|  |¡dS)Nrr r"r#) rr!r*r+rr,r-r.Ú"_MANIFEST_WITH_ONLY_MSVC_REFERENCEr0r1Z assertIsNone)rr!r4r"r5r6Zgotr r r Útest_remove_entire_manifest¥s    z1msvc9compilerTestCase.test_remove_entire_manifestN)Ú__name__Ú __module__Ú __qualname__rrr7r9r r r r rfsrcCs t t¡Sr )ÚunittestZ makeSuiterr r r r Ú test_suite´sr>Ú__main__)Úsysr=r+Zdistutils.errorsrZdistutils.testsrZ test.supportrr8r/r3ÚplatformZdistutils.msvccompilerrZ SKIP_MESSAGEZ skipUnlessZTempdirManagerZTestCaserr>r:r r r r Ús*      ÿM