ó {G_Tc@s dZddlZddlZddlZddlTddlmZyddlZWnek rmdZnXdej fd„ƒYZ dej fd„ƒYZ d ej fd „ƒYZ d ej fd „ƒYZejed ƒdej fd„ƒYƒZd„ZedkreƒndS(s9Unit tests for contextlib.py, and other context managers.iÿÿÿÿN(t*(t test_supporttContextManagerTestCasecBsneZd„Zd„Zd„Zd„Zd„Zd„Zd„Ze j e j j dkdƒd „ƒZRS( cszg‰t‡fd†ƒ}|ƒ7}|jˆdgƒ|j|dƒˆj|ƒWdQX|jˆdddgƒdS(Nc3s#ˆjdƒdVˆjdƒdS(Nii*iç(tappend((tstate(s0/usr/local/lib/python2.7/test/test_contextlib.pytwoohoos ii*iç(tcontextmanagert assertEqualR(tselfRtx((Rs0/usr/local/lib/python2.7/test/test_contextlib.pyttest_contextmanager_plains c s™g‰t‡fd†ƒ}|jtƒP|ƒ@}|jˆdgƒ|j|dƒˆj|ƒtƒ‚WdQXWdQX|jˆdddgƒdS(Nc3s+ˆjdƒz dVWdˆjdƒXdS(Nii*iç(R((R(s0/usr/local/lib/python2.7/test/test_contextlib.pyRs  ii*iç(Rt assertRaisestZeroDivisionErrorRR(RRR ((Rs0/usr/local/lib/python2.7/test/test_contextlib.pyttest_contextmanager_finallys  cCsHtd„ƒ}|ƒ}|jƒ|j|jttdƒdƒƒdS(Ncss dVdS(N((((s0/usr/local/lib/python2.7/test/test_contextlib.pytwhee/stfoo(Rt __enter__t assertFalset__exit__t TypeErrortNone(RRtctx((s0/usr/local/lib/python2.7/test/test_contextlib.pyttest_contextmanager_no_reraise.s  cCsHtd„ƒ}|ƒ}|jƒ|jt|jttdƒdƒdS(Ncssy dVWn dVnXdS(N((((s0/usr/local/lib/python2.7/test/test_contextlib.pytwhoo8s R(RRR t RuntimeErrorRRR(RRR((s0/usr/local/lib/python2.7/test/test_contextlib.pyt*test_contextmanager_trap_yield_after_throw7s   cs‰g‰t‡‡fd†ƒ}|ƒC}ˆjˆdgƒˆj|dƒˆj|ƒtdƒ‚WdQXˆjˆdddgƒdS(Nc3s]ˆjdƒy dVWn@tk rX}ˆj|jdƒˆjˆdddgƒnXdS(Nii*iiç(RR targsR(te(RR(s0/usr/local/lib/python2.7/test/test_contextlib.pyRFs   ii*iç(RRRR (RRR ((RRs0/usr/local/lib/python2.7/test/test_contextlib.pyttest_contextmanager_exceptDs  cCs+d„}t|ddƒd„ƒƒ}|S(Ncs‡fd†}|S(Ncs1x*ˆjƒD]\}}t|||ƒq W|S(N(titemstsetattr(tfunctktv(tkw(s0/usr/local/lib/python2.7/test/test_contextlib.pytdecorateWs((R"R#((R"s0/usr/local/lib/python2.7/test/test_contextlib.pytattribsVsRtbarcSsdS(sWhee!N((tspam((s0/usr/local/lib/python2.7/test/test_contextlib.pytbaz\s(R(RR$R'((s0/usr/local/lib/python2.7/test/test_contextlib.pyt_create_contextmanager_attribsUs cCs6|jƒ}|j|jdƒ|j|jdƒdS(NR'R%(R(Rt__name__R(RR'((s0/usr/local/lib/python2.7/test/test_contextlib.pyttest_contextmanager_attribsbs is)Docstrings are omitted with -O2 and abovecCs#|jƒ}|j|jdƒdS(NsWhee!(R(Rt__doc__(RR'((s0/usr/local/lib/python2.7/test/test_contextlib.pyttest_contextmanager_doc_attribgs (R)t __module__R R RRRR(R*tunittesttskipIftsystflagstoptimizeR,(((s0/usr/local/lib/python2.7/test/test_contextlib.pyRs   tNestedTestCasecBsGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsŽtd„ƒ}td„ƒ}td„ƒ}t|ƒ|ƒ|ƒƒ@\}}}|j|dƒ|j|dƒ|j|dƒWdQXdS(Ncss dVdS(Ni((((s0/usr/local/lib/python2.7/test/test_contextlib.pytarscss dVdS(Ni((((s0/usr/local/lib/python2.7/test/test_contextlib.pytbuscss dVdS(Ni((((s0/usr/local/lib/python2.7/test/test_contextlib.pytcxsiii(RtnestedR(RR4R5R6R tytz((s0/usr/local/lib/python2.7/test/test_contextlib.pyt test_nestedqs'c s²g‰t‡fd†ƒ}t‡fd†ƒ}|jtƒKt|ƒ|ƒƒ/\}}ˆj|ƒˆj|ƒddWdQXWdQX|jˆdddddd gƒdS( Nc3s+ˆjdƒz dVWdˆjdƒXdS(Niii(R((R(s0/usr/local/lib/python2.7/test/test_contextlib.pyR4‚s  c3s+ˆjdƒz dVWdˆjdƒXdS(Niii(R((R(s0/usr/local/lib/python2.7/test/test_contextlib.pyR5‰s  iiiiiii(RR R R7RR(RR4R5R R8((Rs0/usr/local/lib/python2.7/test/test_contextlib.pyttest_nested_cleanup€s  c Cstd„ƒ}dtfd„ƒY}|jtƒ1t|ƒ|ƒƒ\}}ddWdQXWdQX|j||fdƒdS(Ncss dVdS(Ni((((s0/usr/local/lib/python2.7/test/test_contextlib.pyR4˜sR5cBseZd„Zd„ZRS(cSsdS(Ni((R((s0/usr/local/lib/python2.7/test/test_contextlib.pyRœscWsy tƒ‚WnnXdS(N(t Exception(Rtexc_info((s0/usr/local/lib/python2.7/test/test_contextlib.pyRžs (R)R-RR(((s0/usr/local/lib/python2.7/test/test_contextlib.pyR5›s iii(ii(RtobjectR R R7R(RR4R5R R8((s0/usr/local/lib/python2.7/test/test_contextlib.pyttest_nested_right_exception—s cCsktd„ƒ}td„ƒ}y(t|ƒ|ƒƒ ddWdQXWntk rf|jdƒnXdS(Ncss dVdS(N((((s0/usr/local/lib/python2.7/test/test_contextlib.pyR4©scssy dVWnnXdS(N((((s0/usr/local/lib/python2.7/test/test_contextlib.pyR5¬s iis Didn't swallow ZeroDivisionError(RR7R tfail(RR4R5((s0/usr/local/lib/python2.7/test/test_contextlib.pyttest_nested_b_swallows¨s cCsgtd„ƒ}d}x;trR|d7}t|ƒ|ƒƒPWdQX|d7}qW|j|dƒdS(Ncss dVdS(N((((s0/usr/local/lib/python2.7/test/test_contextlib.pyR4ºsiii (RtTrueR7R(RR4R((s0/usr/local/lib/python2.7/test/test_contextlib.pyttest_nested_break¹s  cCsotd„ƒ}d}xC|dkrZ|d7}t|ƒ|ƒƒwWdQX|d7}qW|j|dƒdS(Ncss dVdS(N((((s0/usr/local/lib/python2.7/test/test_contextlib.pyR4Æsiiii (RR7R(RR4R((s0/usr/local/lib/python2.7/test/test_contextlib.pyttest_nested_continueÅs  cs5td„ƒ‰‡fd†}|j|ƒdƒdS(Ncssy dVWnnXdS(N((((s0/usr/local/lib/python2.7/test/test_contextlib.pyR4Òs cs$tˆƒˆƒƒ dSWdQXdS(Nii (R7((R4(s0/usr/local/lib/python2.7/test/test_contextlib.pyRØs i(RR(RR((R4s0/usr/local/lib/python2.7/test/test_contextlib.pyttest_nested_returnÑs( R)R-R:R;R?RARCRDRE(((s0/usr/local/lib/python2.7/test/test_contextlib.pyR3ms     tClosingTestCasecBseZd„Zd„ZRS(cstg‰dd‡fd†ƒY}|ƒ}|jˆgƒt|ƒ}|j||ƒWdQX|jˆdgƒdS(NtCcseZ‡fd†ZRS(csˆjdƒdS(Ni(R(R(R(s0/usr/local/lib/python2.7/test/test_contextlib.pytcloseås(R)R-RH((R(s0/usr/local/lib/python2.7/test/test_contextlib.pyRGäsi((Rtclosing(RRGR R8((Rs0/usr/local/lib/python2.7/test/test_contextlib.pyt test_closingâs c s’g‰dd‡fd†ƒY}|ƒ}|jˆgƒ|jtƒ2t|ƒ}|j||ƒddWdQXWdQX|jˆdgƒdS(NRGcseZ‡fd†ZRS(csˆjdƒdS(Ni(R(R(R(s0/usr/local/lib/python2.7/test/test_contextlib.pyRHðs(R)R-RH((R(s0/usr/local/lib/python2.7/test/test_contextlib.pyRGïsii((RR R RI(RRGR R8((Rs0/usr/local/lib/python2.7/test/test_contextlib.pyttest_closing_errorís (R)R-RJRK(((s0/usr/local/lib/python2.7/test/test_contextlib.pyRFÞs tFileContextTestCasecBseZd„ZRS(c Csâtjƒ}zÁd}t|dƒ$}|j|jƒ|jdƒWdQX|j|jƒd}|jt ƒKt|dƒ5}|j|jƒ|j |j ƒdƒddWdQXWdQX|j|jƒWdt j |ƒXdS(NtwsBooh trii(ttempfiletmktempRtopenRtclosedtwritet assertTrueR R RtreadRtunlink(Rttfntf((s0/usr/local/lib/python2.7/test/test_contextlib.pyt testWithOpenüs (R)R-RY(((s0/usr/local/lib/python2.7/test/test_contextlib.pyRLúss!Threading required for this test.tLockContextTestCasecBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(c CsŒ|j|ƒƒ||j|ƒƒWdQX|j|ƒƒ|jtƒ*||j|ƒƒddWdQXWdQX|j|ƒƒdS(Nii(RRTR R (Rtlocktlocked((s0/usr/local/lib/python2.7/test/test_contextlib.pyt boilerPlatescCs#tjƒ}|j||jƒdS(N(t threadingtLockR]R\(RR[((s0/usr/local/lib/python2.7/test/test_contextlib.pyt testWithLocks cCs#tjƒ}|j||jƒdS(N(R^tRLockR]t _is_owned(RR[((s0/usr/local/lib/python2.7/test/test_contextlib.pyt testWithRLock s cs/tjƒ‰‡fd†}|jˆ|ƒdS(Ncs ˆjƒS(N(Rb((R[(s0/usr/local/lib/python2.7/test/test_contextlib.pyR\&s(R^t ConditionR](RR\((R[s0/usr/local/lib/python2.7/test/test_contextlib.pyttestWithCondition$s cs/tjƒ‰‡fd†}|jˆ|ƒdS(Ncs%ˆjtƒrˆjƒtStSdS(N(tacquiretFalsetreleaseRB((R[(s0/usr/local/lib/python2.7/test/test_contextlib.pyR\,s (R^t SemaphoreR](RR\((R[s0/usr/local/lib/python2.7/test/test_contextlib.pyttestWithSemaphore*s cs/tjƒ‰‡fd†}|jˆ|ƒdS(Ncs%ˆjtƒrˆjƒtStSdS(N(RfRgRhRB((R[(s0/usr/local/lib/python2.7/test/test_contextlib.pyR\6s (R^tBoundedSemaphoreR](RR\((R[s0/usr/local/lib/python2.7/test/test_contextlib.pyttestWithBoundedSemaphore4s (R)R-R]R`RcReRjRl(((s0/usr/local/lib/python2.7/test/test_contextlib.pyRZs     cCs-tjdtfƒtjtƒWdQXdS(Ns>With-statements now directly support multiple context managers(Rtcheck_warningstDeprecationWarningt run_unittestR)(((s0/usr/local/lib/python2.7/test/test_contextlib.pyt test_main?s  t__main__(R+R0ROR.t contextlibttestRR^t ImportErrorRtTestCaseRR3RFRLt skipUnlessRZRpR)(((s0/usr/local/lib/python2.7/test/test_contextlib.pyts$      _q0