ϪfdZddlmZddlmZmZmZddlmZddl m Z ddl m Z ddl mZGdd e j ZGd d e j ZGd d e j ZGdde j ZGdde j ZGdde j ZGdde j ZGdde j ZGdde j Zy)zD Tests for Deferred handling by L{twisted.trial.unittest.TestCase}. ) annotations)deferreactorthreads)Failure)runWithWarningsSuppressed)unittest)suppressceZdZdZdZdZy)DeferredSetUpOKcftjd}|j|j|SNvaluersucceed addCallback_cb_setUpCalledselfds tjtdS)Nzdeliberate error)rr, RuntimeErrorr#s rrzDeferredSetUpError.setUp:szz,'9:;;rcdt_yr)r8r/r#s rr$zDeferredSetUpError.test_ok=s (,%rNr0r(rrr8r87sJ<-rr8ceZdZdZdZdZy)DeferredSetUpNeverFireFc*tjSr!rDeferredr#s rrzDeferredSetUpNeverFire.setUpD~~rcdt_yr)r=r/r#s rr$zDeferredSetUpNeverFire.test_okGs ,0)rNr0r(rrr=r=AsJ 1rr=c"eZdZdZdZdZdZy)DeferredSetUpSkipFcftjd}|j|j|Sr)rrr_cb1rs rrzDeferredSetUpSkip.setUpNs% MM' " dii rc,tjd)Nzskip mer SkipTestrs rrFzDeferredSetUpSkip._cb1Ss **rcdt_yr)rDr/r#s rr$zDeferredSetUpSkip.test_okVs '+$rN)r%r&r'r/rrFr$r(rrrDrDKsJ +,rrDceZdZdZdZdZdZdZdZdZ dZ e e d ge je Z e jd Zd Zd ZdZdZdZdZde_y) DeferredTestsFc&|j|yr!r5rreasons r_cb_failzDeferredTests._cb_fail]s &rct|r!)r:rNs r _cb_errorzDeferredTests._cb_error`s 6""rc,tj|r!rHrNs r_cb_skipzDeferredTests._cb_skipcs''rc&d|j_yr __class__touchedrs r _touchClasszDeferredTests._touchClassfs!%rc&d|j_y)NFrVr#s rrzDeferredTests.setUpis!&rc,tjdS)Nsuccess)rrr#s r test_passzDeferredTests.test_passls}}Y''rc#6K|jddywr!rYr#s rtest_passGeneratedz DeferredTests.test_passGeneratedos  z7twisted.internet.defer.deferredGenerator was deprecated)messagec#6K|jddyw)zL Test case that is decorated with L{defer.inlineCallbacks}. Nr_r#s rtest_passInlineCallbacksz&DeferredTests.test_passInlineCallbacks}s  racJtj|jdS)NzI fail)rr,failureExceptionr#s r test_failzDeferredTests.test_failszz$//9::rcftjd}|j|j|S)Nr,)rrrrPrs rtest_failureInCallbackz$DeferredTests.test_failureInCallbacks% MM& ! dmm$rcftjd}|j|j|S)NerrorrrrrRrs rtest_errorInCallbackz"DeferredTests.test_errorInCallbacks% MM' " dnn%rctjd}|j|j|j|j|S)Nskip)rrrrTrYrs r test_skipzDeferredTests.test_skips7 MM& ! dmm$ d&&'rc.tjdS)Ncyr!r(r(rrz+DeferredTests.test_thread..sr)r deferToThreadr#s r test_threadzDeferredTests.test_threads$$\22rcftjd}|j|j|S)Ntodorlrs rtest_expectedFailurez"DeferredTests.test_expectedFailures% MM& ! dnn%rzExpected failureN)r%r&r'rXrPrRrTrYrr]r`rSUPPRESSrdeferredGeneratorinlineCallbacksrdrgrirmrprurxrwr(rrrLrLZsG#(&'(3 T   ;   3 !3rrLceZdZUdZded<dZde_dZdZde_d Z d e _d Z de _d e _ d Z de _d e _ dZde_dZde_y) TimeoutTestsNzFailure | NonetimedOutcptj}tjd|jd|SNrzhoorj!rr@r callLatercallbackrs rr]zTimeoutTests.test_passs) NN !QZZ2rcptj}tjd|jd|Srrrs rtest_passDefaultzTimeoutTests.test_passDefaults) NN !QZZ2rc*tjSr!r?r#s r test_timeoutzTimeoutTests.test_timeoutrArg?c*tjSr!r?r#s rtest_timeoutZerozTimeoutTests.test_timeoutZerorArrc*tjSr!r?r#s rrxz!TimeoutTests.test_expectedFailurerArzi will get it right, eventuallyc*tjSr!r?r#s rrpzTimeoutTests.test_skiprArc\fd}tj}|j||S)Nc*|j_|Sr!)rWr~)errrs rr~z4TimeoutTests.test_errorPropagation..timedOuts&)DNN #Jr)rr@ addErrback)rr~rs` rtest_errorPropagationz"TimeoutTests.test_errorPropagations'  NN  Xrcxtj}d}|j||jd|S)Nc*tjSr!r?)rs r neverFirez;TimeoutTests.test_calledButNeverCallback..neverFires>># #r)rr@rr)rrrs rtest_calledButNeverCallbackz(TimeoutTests.test_calledButNeverCallbacks1 NN  $ i  1 r)r%r&r'r~__annotations__r]timeoutrrrrxrwrprorrr(rrr}r}s#Hn# I  L  ! $' A I6IN%(!+.'rr}ceZdZdZdZdZy)TestClassTimeoutAttributeg?c6tj|_yr!)rr@rr#s rrzTestClassTimeoutAttribute.setUps!rc(d|_|jSr) methodCalledrr#s r testMethodz$TestClassTimeoutAttribute.testMethods vv rN)r%r&r'rrrr(rrrrsG"rrN)__doc__ __future__rtwisted.internetrrrtwisted.python.failurertwisted.python.utilr twisted.trialr twisted.trial.utilr ryTestCaser r*r2r8r=rDrLr}rr(rrrs#44*9"3 +h'' +-))- 4 1 1 4-**-1X..1 ,)) ,F3H%%F3R;.8$$;.| 1 1r