ó {G_Tc@s¬ddlZddlZddlZddlZddlZddlZddlZddlmZddl Z de j fd„ƒYZ d„Z e dkr¨e ƒndS(iÿÿÿÿN(t test_supporttCompileallTestscBsbeZd„Zd„Zd„Zejeedƒdƒd„ƒZ d„Z d„Z d„Z RS( cCs¿tjƒ|_tjj|jdƒ|_|jtr<dnd|_t |jdƒ}|j dƒWdQXtjj|jdƒ|_ |j tr›dnd|_ t j|j|j ƒdS(Ns_test.pytctotwsx = 123 s _test2.py(ttempfiletmkdtempt directorytostpathtjoint source_patht __debug__tbc_pathtopentwritet source_path2tbc_path2tshutiltcopyfile(tselftfile((s0/usr/local/lib/python2.7/test/test_compileall.pytsetUpscCstj|jƒdS(N(RtrmtreeR(R((s0/usr/local/lib/python2.7/test/test_compileall.pyttearDownscCsjt|jdƒ}|jdƒ}WdQXttj|jƒjƒ}tj dt j ƒ|ƒ}||fS(Ntrbis<4sl( RR treadtintRtstatR tst_mtimetstructtpacktimpt get_magic(RRtdatatmtimetcompare((s0/usr/local/lib/python2.7/test/test_compileall.pyR"s Rstest needs os.stat()cCsÏtj|jƒ|j|jƒŒt|jdƒ}|jƒt|ƒ}WdQXt|jdƒ!}|j |ƒ|j |ƒWdQX|j |jƒŒt j |j dtdtƒ|j|jƒŒdS(sOCheck that compileall recreates bytecode when the new metadata is used.RNtwbtforcetquiet(t py_compiletcompileR t assertEqualR"RR RtlenRtassertNotEqualt compileallt compile_dirRtFalsetTruet assertTrue(RtmetadataRtbc((s0/usr/local/lib/python2.7/test/test_compileall.pytrecreation_check"s cCs&|jtjdtjƒdƒƒdS(Ns<4sli(R4RRR R!(R((s0/usr/local/lib/python2.7/test/test_compileall.pyt test_mtime1scCs|jdƒdS(Nt(R4(R((s0/usr/local/lib/python2.7/test/test_compileall.pyttest_magic_number5scCsx5|j|jfD]!}ytj|ƒWqqXqWtj|jdtdtƒ|j tj j |jƒo‚tj j |jƒ ƒtj|jƒtj |j dtdtƒ|j tj j |jƒoßtj j |jƒƒtj|jƒtj|jƒdS(NR&R'(R RRtunlinkR-t compile_fileR R/R0R1R tisfileR.R(Rtfn((s0/usr/local/lib/python2.7/test/test_compileall.pyttest_compile_files9s( t__name__t __module__RRR"tunittestt skipUnlessthasattrRR4R5R7R<(((s0/usr/local/lib/python2.7/test/test_compileall.pyR s  $  cCstjtƒdS(N(Rt run_unittestR(((s0/usr/local/lib/python2.7/test/test_compileall.pyt test_mainJst__main__(R-R RR(RRRttestRR?tTestCaseRRCR=(((s0/usr/local/lib/python2.7/test/test_compileall.pyts        >