{G_Tc@sddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z m Z m Z yddl Z Wnek reZ nXddlmZmZmZmZddlZddlZddlZddlZddlZddlmZmZmZdZdZdZ ejZ!ee e!Z"d Z#d Z$d Z%d Z&ej'j(d ej)dZ*de fdYZ+ej,e dde+fdYZ-dej.fdYZ/dZ0e1dkre0ndS(iN(t test_support(tImportHooksBaseTestCasettest_srcttest_co(tZipFiletZipInfot ZIP_STOREDt ZIP_DEFLATED(t extract_tbt extract_stacktprint_tbs def do_raise(): raise TypeError cCstj|}t|tdkr[|dkrBt|}q[tdt|}ntjtjdt||}|S(Ngilss  cOsttd}zxxT|jD]F\}\}}t|tj|} |j| _|j| |qW|j |j dd} | dk rt td} | j }| j t td} | j| | j|| j ntjjdttdj|ttdg} |j d} | dk rN| | n|r| j}|j|tjjt||nWd|j tjtXdS( NtwtstufftrbtwbiRt __dummy__tcall(RtTEMP_ZIPtitemsRttimet localtimet compressiont compress_typetwritestrtclosetgettNonetopentreadtwritetsysRtinsertt __import__tjointglobalstlocalstget_filet assertEqualRtremove(R+t expected_exttfilestmodulestkwtztnameRRtzinfoR-tftmodR1tfile((s//usr/local/lib/python2.7/test/test_zipimport.pytdoTestEs8             cCsdtjkrdSdtjkr/tjd=nittfd6}y|jd|dWn0tk r|jtkr|j dqn X|jt kr|j dndS(Ntzlibszlib.pys.pys&expected test to not raise ImportErrors"expected test to raise ImportError( R?tbuiltin_module_namesRJtNOWRRRt ImportErrorR6RtfailR(R+RI((s//usr/local/lib/python2.7/test/test_zipimport.pyt testAFakeZlibks  cCs.ittftd6}|jd|tdS(Ns.py(RURtTESTMODRR(R+RI((s//usr/local/lib/python2.7/test/test_zipimport.pyttestPyscCs.ittftt6}|jt|tdS(N(RUttest_pycRYtpyc_extRR(R+RI((s//usr/local/lib/python2.7/test/test_zipimport.pyttestPycscCs?ittftd6ttftt6}|jt|tdS(Ns.py(RURRYR[R\RR(R+RI((s//usr/local/lib/python2.7/test/test_zipimport.pyttestBothscCs.itdftd6}|jd|tdS(Nts.py(RURYRRR;(R+RI((s//usr/local/lib/python2.7/test/test_zipimport.pyt testEmptyPyscCsmttd}|dN}t|td}ittftd6t|ftt6}|jd|tdS(Niiis.py(tordR[tchrRURRYR\RR(R+tm0t badmagic_pycRI((s//usr/local/lib/python2.7/test/test_zipimport.pyt testBadMagics  cCsttd}|dN}t|td}it|ftt6}y|jd|tWntk ronX|jddS(Niiis.pys)expected ImportError; import from bad pyc( RaR[RbRURYR\RRRVRW(R+RcRdRI((s//usr/local/lib/python2.7/test/test_zipimport.pyt testBadMagic2s  cCsuttd}|dN}td t|td}ittftd6t|ftt6}|jd|tdS(Niiis.py(RaR[RbRURRYR\RR(R+tt3t badtime_pycRI((s//usr/local/lib/python2.7/test/test_zipimport.pyt testBadMTimes  cCsWttj}ittf|dt6ttf|tt6}|jt|ttdS(Nt__init__(tTESTPACKRRRUR[R\RYRR(R+tpackdirRI((s//usr/local/lib/python2.7/test/test_zipimport.pyt testPackages cCsttj}|ttj}ittf|dt6ttf|dt6ttf|tt6}|jt|tttdS(NRj( RkRRt TESTPACK2RUR[R\RYRR(R+Rltpackdir2RI((s//usr/local/lib/python2.7/test/test_zipimport.pyttestDeepPackages  cCsttj}|ttj}ittf|dt6ttf|dt6ttf|tt6}tt d}z"xT|j D]F\}\}}t |t j |}|j|_|j||qW|jtjt } |j| jt |j| jtt| jt} |j| jt| j|j| j|dt|j| j|tt|j| j|tt|t} t| } t| tj| } |j| j td|j| j | d|j| j| | j| j"} |j| j | d|j| j| | jtjt tjt}|j|jt |j|j#ttjWd|jtj$t XdS(NRjR,(%RkRRRnRUR[R\RYRR2R3RR4R5R6R7R8R9R't zipimporterRFtarchivet is_packagetTruet load_modulet get_filenamet__file__tFalseRRAR?RJt get_sourceR;t __loader__tprefixRG(R+RlRoRIRLRMRRRNtziRPtmod_pathtmod_nametloadertzi2((s//usr/local/lib/python2.7/test/test_zipimport.pyttestZipImporterMethodssF         cCsmttj}|ttj}ittf|dt6ttf|tt6}tt d}zxT|j D]F\}\}}t |t j |}|j|_|j||qmW|jtjt tj|} |j| jt |j| j||j| jtt| jt} |j| jt| j|j| jttjdt|j| jttjttttjt} t| } t| tj | } |j| j!td|j| j!| d|j| j| | j| j#} |j| j!| d|j| j| | jWd|jtj$t XdS(NRjR,(%RkRRRnRUR[R\RYRR2R3RR4R5R6R7R8R9R'RqRFRrR{RsRtRuRvRwRxRRAR?RJRyR;RzRG(R+RlRoRIRLRMRRRNR|RPR}R~R((s//usr/local/lib/python2.7/test/test_zipimport.pyt$testZipImporterMethodsInSubDirectorys>   $$      cCsttd}|j|_zd}djgtdD]}t|^q7d}|j|||jtj t}|j ||j ||j dt |Wd|jtjtXdS(NR,s testdata.datR_iiszipimporter object(RR2R6RBtrangeRbR8R9R'RqRFtget_datatassertIntreprRRG(R+RLRMtxRR|((s//usr/local/lib/python2.7/test/test_zipimport.pyt testGetDatas 2  cCs\d}tt|ddt}it|ftt6tdfd6}|jt|tdS(Nsif 1: # indent hack def get_file(): return __file__ if __loader__.get_data("some.data") != "some data": raise AssertionError, "bad data" stexecs some datas some.data(RtcompileRURYR\RR(R+tsrcRRI((s//usr/local/lib/python2.7/test/test_zipimport.pyttestImporterAttr,s cCs8ittftd6}|jd|tddddS(Ns.pyR-s Some Stuffi(RURRYRR(R+RI((s//usr/local/lib/python2.7/test/test_zipimport.pyttestImport_WithStuff7scCs|jtj|tdS(N(RFtinspectt getsourceR(R+tmodule((s//usr/local/lib/python2.7/test/test_zipimport.pytassertModuleSource>scCs7ittftd6}|jd|td|jdS(Ns.pyR1(RURRYRRR(R+RI((s//usr/local/lib/python2.7/test/test_zipimport.pyt testGetSourceAscCsctttddt}ittftd6t|ftt6}|jt|td|jdS(NsRs.pyR1(RRRRURYR\RRR(R+RRI((s//usr/local/lib/python2.7/test/test_zipimport.pyttestGetCompiledSourceEscCsAittftd6tdfd6}|jd|td|dS(Ns.pys>>> log.append(True) sxyz.txtR1(RURRYRR(R+tcallbackRI((s//usr/local/lib/python2.7/test/test_zipimport.pyt runDoctestKscCscg}tjd}t_z&tjdd|dtdtWd|t_X|j|tgdS(Nsxyz.txttpackagetmodule_relativetglobs(tdoctesttmasterR;ttestfileRtRDRF(R+Rtlogt old_master((s//usr/local/lib/python2.7/test/test_zipimport.pyt doDoctestFilePs cCs|j|jdS(N(RR(R+((s//usr/local/lib/python2.7/test/test_zipimport.pyttestDoctestFile\scCsEg}tjdd|dtdtj|j|tgdS(Nsxyz.txtRRR(Rt DocFileTestRtRDtrunRF(R+RR((s//usr/local/lib/python2.7/test/test_zipimport.pytdoDoctestSuite_s cCs|j|jdS(N(RR(R+((s//usr/local/lib/python2.7/test/test_zipimport.pyttestDoctestSuitegscCsy|jWntjdj}t|dd\}}}}|j|tjt|j dd\}}}}|j|tjt j }t |d||j |j jtn XtddS(NiiisThis ought to be impossible(tdo_raiseR?texc_infottb_nextRRFt raise_srctstripR ttb_frametStringIOR t assertTruetgetvaluetendswithtAssertionError(R+RttbROtlnotntlinets((s//usr/local/lib/python2.7/test/test_zipimport.pyt doTracebackjs"  cCs7ittftd6}|jd|td|jdS(Ns.pyR1(RURRYRRR;R(R+RI((s//usr/local/lib/python2.7/test/test_zipimport.pyt testTraceback|s(t__name__t __module__RR6R*RRRXRZR]R^R`ReRfRiRmRpRRRRRRRRRRRRRRR(((s//usr/local/lib/python2.7/test/test_zipimport.pyR$:s8  &       - '          s requires zlibtCompressedZipImportTestCasecBseZeZRS((RRRR6(((s//usr/local/lib/python2.7/test/test_zipimport.pyRstBadFileZipImportTestCasecBsYeZdZdZdZdZdZdZdZdZ dZ RS( cCs|jtjtj|dS(N(t assertRaisesR'tZipImportErrorRq(R+tfilename((s//usr/local/lib/python2.7/test/test_zipimport.pytassertZipFailures cCs|jddS(NtAdfjdkFJKDFJjdklfjs(R(R+((s//usr/local/lib/python2.7/test/test_zipimport.pyt testNoFilescCs|jddS(NR_(R(R+((s//usr/local/lib/python2.7/test/test_zipimport.pyttestEmptyFilenamescCs6|jttjd|jttjtdddS(Ntkwd(Rt TypeErrorR'RqR;RY(R+((s//usr/local/lib/python2.7/test/test_zipimport.pyt testBadArgsscCs|jdddS(NtAi(R(R+((s//usr/local/lib/python2.7/test/test_zipimport.pyttestFilenameTooLongscCs1tjtttdj|jtdS(Nsw+(RtunlinkRYR<R9R(R+((s//usr/local/lib/python2.7/test/test_zipimport.pyt testEmptyFiles cCshtjttjttjd}ztj||jtWdtjtdtjtXdS(Nii( RRRYRR<tO_CREATR9Rtchmod(R+tfd((s//usr/local/lib/python2.7/test/test_zipimport.pyttestFileUnreadables  cCsHtjtttd}|jdd|j|jtdS(Nsw+tai(RRRYR<R>R9R(R+tfp((s//usr/local/lib/python2.7/test/test_zipimport.pyttestNotZipFiles   cCstjtttd}|jtjdd|jd|jtj t}z|j t |j d|j t |jd|j t |jd|j t |jd|j t |jd|j t |jdtj}|j|j dd|j ||jd|j ||jd|j t|jd|j ||jd|j ||jdWdtjjXdS(Nsw+s=IiPKRitabctaaaaaaaaaaaaaaaaaa(RRRYR<R>RRR9R'RqRRt find_moduleR;RuRstget_codeRRyRRFtIOErrorR(R)(R+RRLterror((s//usr/local/lib/python2.7/test/test_zipimport.pyt_testBogusZipFiles*    ( RRRRRRRRRRR(((s//usr/local/lib/python2.7/test/test_zipimport.pyRs       cCs,ztjtttWdtjtXdS(N(Rt run_unittestR$RRRRY(((s//usr/local/lib/python2.7/test/test_zipimport.pyt test_mains  t__main__(2R?RR RRR4tunittestttestRttest.test_importhooksRRRRSRVR;tzipfileRRRRR'R%RRRt tracebackRR R RRRRUR[R\RYRkRnRtabspathtextsepR2R$t skipUnlessRtTestCaseRRR(((s//usr/local/lib/python2.7/test/test_zipimport.pytsJ         "       HG