ó q®¸Qc@s ddlZddlZddlmZddlZddlmZmZddlmZddl m Z ddl m Z ddl mZmZmZddlZddlmZead e je jejfd „ƒYZd „Zed krejeƒƒndS( iÿÿÿÿN(tStringIO(t Extensiont Distribution(t build_ext(t sysconfig(tsupport(tDistutilsSetupErrort CompileErrortDistutilsPlatformError(t test_supporttBuildExtTestCasecBseZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zejejdkdƒd„ƒZejejdkdƒd„ƒZejejdkdƒd„ƒZd„ZRS(cCs°tt|ƒjƒ|jƒ|_t|_tjj |jƒ|j tjj |jƒtj dkr¬ddl }|j|_|jƒ|_ddlm}|j|_ndS(Ns2.6iÿÿÿÿ(R(tsuperR tsetUptmkdtempttmp_dirtFalset xx_createdtsystpathtappendt addCleanuptremovetversiontsitet USER_BASEt old_user_basetdistutils.commandR(tselfRR((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyR s   cCs0|jrtjdƒntt|ƒjƒdS(Ntxx(RR tunloadR R ttearDown(R((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyR%s c Csátj|jƒt|_tjj|jdƒ}td|gƒ}t idd6|gd6ƒ}|j|_ t |ƒ}tj |ƒ|j|_ |j|_tj}tjs¾tƒt_nz|jƒ|jƒWd|t_XtrídStaddl}x$dD]}|jt||ƒƒqW|j|jd d ƒd ƒ|j|jd dƒdƒ|j|jƒjƒdƒtjrŸd}|j|j |ƒn|jt!|j"ƒ|j"ƒƒ|jt!|j#ƒ|j#ƒƒdS(Ns xxmodule.cRtnamet ext_modulesiÿÿÿÿterrortfootnewtrojiiii iis/This is a template module just for instruction.(serrorsfoosnewR$($Rtcopy_xxmodule_cRtTrueRtosRtjoinRRt package_dirRtfixup_build_extt build_libt build_tempRtstdoutR tverboseRtensure_finalizedtruntALREADY_TESTEDRt assertTruethasattrt assertEqualR"R#tdemotNonetHAVE_DOCSTRINGSt__doc__t isinstancetNulltStr( Rtxx_ctxx_exttdisttcmdt old_stdoutRtattrtdoc((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_build_ext,s>             cCsµtidd6ƒ}t|ƒ}tj}dt_ddlm}|jdƒ}d|dR?toldREtold_var((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_solaris_enable_sharedVs        c Cs tjdkrdSddl}tidd6ƒ}t|ƒ}g|jD]\}}}|^qH}|jd|ƒd|_tj j |j dƒ}tj j |j dƒ} tj |ƒtj | ƒ|j ƒ|j||jƒ|j||jƒ|j| |jƒdS( Ns2.6iÿÿÿÿRRtuseritlibtinclude(RRRRRt user_optionstassertInROR'RR(RtmkdirR/RKtrpatht include_dirs( RRR>R?RtshorttlabeltoptionsRPtincl((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_user_siteks"  "    cCs3tddgƒg}tidd6|d6ƒ}t|ƒ}|jƒtjƒ}|j||jkƒtjddƒ}|j||jkƒt|ƒ}d|_|jƒ|j |jd d d gƒt|ƒ}d t j |_ |jƒ|j d |j ƒ|j d|j ƒt|ƒ}dt j |_|jƒ|j |jddgƒt|ƒ}d|_|jƒ|j |jddgƒt|ƒ}d|_|jƒ|j |jddgƒt|ƒ}d|_|jƒ|j |jgƒt|ƒ}d|_|jƒ|j |jddgƒdS(NR"txxxRRR t plat_specificismy_lib, other_lib lastlibtmy_libt other_libtlastlibsmy_lib_dir%sother_lib_dirt my_lib_dirt other_lib_dirsone%stwotonettwosone,twot1s1 2t2(RcRe(RdRe(RRRtfinalize_optionsRtget_python_incR2RVt librariesR4R'tpathsepRKRSRUtdefinetundefR6t swig_opts(RtmodulesR>R?t py_includetplat_py_include((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_finalize_options‰sJ                      cCsºtƒ}t|ƒ}|jƒ|jt|jdƒddg}|jt|j|ƒdg}|jt|j|ƒdg}|jt|j|ƒdidgd6dd6dd6fg}|j|ƒ|d }|jt|tƒƒ|j |j dƒ|jt |dƒ ƒdidgd6dd6dd6ddgd 6fg}|jt|j|ƒddg|d dd <|j|ƒ|j |d j d gƒ|j |d j dgƒdS(NR"tbarsfoo-bartsfoo.bartsourcesRitsomeiReRft3tmacrosi(RrsfooRr(sfoo-barRs(sfoo.barRs(ReRfRv(ReRf(Rv(ReRf(RRRgt assertRaisesRtcheck_extensions_listR2R9RR4RiR3t undef_macrost define_macros(RR>R?textstext((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_check_extensions_listÈs0         cCsbtddgƒg}tidd6|d6ƒ}t|ƒ}|jƒ|j|jƒdgƒdS(NR"R\RRR (RRRR/R4tget_source_files(RRnR>R?((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_get_source_files÷s   cCsItƒ}t|ƒ}d|_|jƒ|jƒ|j|jdƒdS(Ntunix(RRtcompilerR/R0R4(RR>R?((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_compiler_optionþs      c Cs*|jƒ}tjj|dƒ}|j|dƒtd|gƒ}tidd6|gd6ƒ}t|ƒ}tj |ƒ|j ƒ|j t |j ƒƒdƒtjj|jdƒ|_tjj|jd ƒ|_tjj|jƒƒ}tjƒ}tj|ƒz'd|_|jƒ|j ƒd }Wdtj|ƒX|jtjj|ƒƒ|j tjj|ƒd tjd ƒƒtjj|ƒ} |j | |ƒd|_d |_|jƒ|j ƒd }|jtjj|ƒƒ|j tjj|ƒd tjd ƒƒtjj|ƒ} |j | |jƒ|jd ƒ} idd6| _|j dƒ} tjj!| ƒd } |j | |jƒd|_tjj|jƒƒ}tjƒ}tj|ƒz|j dƒ} Wdtj|ƒXtjj!| ƒd } tjj!| ƒd } |j | dƒdS(Nsfoo.csvoid initfoo(void) {}; R"RRR itbuildttemptiiÿÿÿÿtSOtbuild_pyRrRs("R R'RR(t write_fileRRRRR*R/R4RJt get_outputsRR+R,trealpathtgetcwdtchdirtinplaceR0R2texiststsplitextRtget_config_vartdirnameR6R‚tget_finalized_commandR)tget_ext_fullpathtsplit( RRtc_fileR}R>R?t other_tmp_dirtold_wdtso_filetso_dirR‡Rtlastdir((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_get_outputs sb               cCs²tjƒd}tƒ}t|ƒ}d|_idd6|j_ddg|j_tj ƒ}tj j |ddd|ƒ}|j dƒ}|j ||ƒd |_tj j |d ƒ|_tj j |d dd|ƒ}|j dƒ}|j ||ƒ|jd ƒ}i|_d d g|j_|j d ƒ}tj j |d d dd|ƒ}|j ||ƒd|_|j d ƒ}tj j |d dd|ƒ}|j ||ƒdS(NR†itsrcRstlxmls lxml.htmltetrees lxml.etreeittmpdirR‡ttwistedstwisted.runner.portmaptrunnertportmap(Rtget_config_varsRRRt distributionR)tpackagesR'R‹RR(R“R4R+R’(RR}R>R?tcurdirtwantedRR‡((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_ext_fullpathHs4        c Csètjj|jdƒ}td|gƒ}tidd6|gd6ƒ}t|ƒ}|jƒd|_idd6|j _ dd g|j _ tj ƒ}t jd ƒ}tjj|ddd |ƒ}|jdƒ}|j||ƒdS( Ns lxml.etree.cs lxml.etreeRRR iRœRss lxml.htmlR†Rž(R'RR(RRRRR/RR¤R)R¥R‹RRR“R4( Rtetree_ct etree_extR>R?R¦R}R§R((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_build_ext_inplacejs    c Cszddl}ddl}ddl}|jj}ztjddtƒddlm }ddl m}t j j |jdƒ}|d|gƒ}tidd 6|gd 6ƒ}||ƒ}|jƒd |_id d 6|j_ddg|j_t jƒ} tjdƒ} t j j | d dd| ƒ} |jdƒ} |j| | ƒWd||j_||j_||jj _XdS(Niÿÿÿÿtsetuptools_build_extt deprecated(R(Rs lxml.etree.cs lxml.etreeRRR iRœRss lxml.htmlR†Rž(tdistutils.coretdistutils.extensiontdistutils.command.build_extt extensionRR t import_moduleR&R¬Rtsetuptools_extensionR'RR(RRR/RR¤R)R¥R‹RRR“R4tcoretcommand( Rt distutilst saved_extR¬RR©RªR>R?R¦R}R§R((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_setuptools_compatys,$       cCstidd6ƒ}t|ƒ}|jƒtjdƒ}tjjddƒ}|j|ƒ}tjj|j dd|ƒ}|j ||ƒdS(Nt UpdateManagerRR†tfdsend( RRR/RRR'RR(R“R+R4(RR>R?R}text_nametext_pathR§((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_build_ext_path_with_os_sep—s  cCs“tjdkrdStidd6ƒ}t|ƒ}|jƒtjdƒ}d}|j|ƒ}tj j |j dd|ƒ}|j ||ƒdS(Ntwin32R¹RR†sUpdateManager/fdsendRº( RRGRRR/RRR“R'RR(R+R4(RR>R?R}R»R¼R§((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyt"test_build_ext_path_cross_platform¡s  tdarwinstest only relevant for MacOSXcCs|jddƒdS(Ns==(t_try_compile_deployment_targetR6(R((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_deployment_target_default®scCs|jt|jddƒdS(Nt>s10.1(RxRRÁ(R((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyttest_deployment_target_too_lowµs cCs}tjdƒ}|ryg|jdƒD]}t|ƒ^q%}|dcd7Æst<(RRR”tintR(RÁ(Rt deptargettx((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyt test_deployment_target_higher_ok¼s (c Cs–tj}|jƒt_|jttd|ƒ|dkr\tjjdƒritjd=qin |tjd int dummy; #if TARGET %s MAC_OS_X_VERSION_MIN_REQUIRED #else #error "Unexpected target" #endif RÆs %02d%01d0RÌtextra_compile_argss -DTARGET=%sRR s*Wrong deployment target during compilation(R'RÏtcopyRtsetattrR6RIRR(RtopentwritettextwraptdedentRRttupletmapRËR”RRR)RR+R,R/R0Rtfail( Rtoperatorttargett orig_environt deptarget_ctfpt deptarget_extR>R?((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyRÁÉs<            (t__name__t __module__R RRCRNR[RqR~R€RƒR›R¨R«R¸R½R¿tunittestt skipUnlessRRGRÂRÄRÎRÁ(((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyR s&  *   ? /  ? "   $$$ cCs tjtƒS(N(Rãt makeSuiteR (((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyt test_suiteûst__main__(RR'RRÖR®RRR°RR¶Rtdistutils.testsRtdistutils.errorsRRRRãttestR RR1tTempdirManagertLoggingSilencertTestCaseR RæRát run_unittest(((s4/sys/lib/python2.7/distutils/tests/test_build_ext.pyts$     ÿå