+
    üÐju+  ã                   óð   € R t ^ RIt^ RIt^ RIHt ^ RIHtHtHtH	t	H
t
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ R	IHt  ! R
 R]4      t]! 4       P7                  ]P9                  4       4       R# )z/
Tests for implementations of L{IReactorCore}.
N)Ú	FrameType)ÚCallableÚListÚOptionalÚTupleÚUnionÚcast)ÚFileDescriptor)ÚDeferred)ÚReactorAlreadyRunningÚReactorNotRestartable)ÚReactorBuilder©ÚFailure)ÚSynchronousTestCasec                   ó   a € ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltRtV tR# ) ÚSystemEventTestsBuilderzo
Builder defining tests relating to L{IReactorCore.addSystemEventTrigger}
and L{IReactorCore.fireSystemEvent}.
c                ó   <€ V ^8„  d   QhRR/# ©é   ÚreturnN© )ÚformatÚ__classdict__s   "€ÚA/usr/lib/python3/dist-packages/twisted/internet/test/test_core.pyÚ__annotate__Ú$SystemEventTestsBuilder.__annotate__   s   ø€ ÷ Qñ Q¨ñ Qó    c                ó‚   € V P                  4       p\        \        V 4      P                  \        VP
                  4       R# )z]
C{reactor.stop()} raises L{RuntimeError} when called when the reactor
has not been started.
N)ÚbuildReactorr   r   ÚassertRaisesÚRuntimeErrorÚstop©ÚselfÚreactors   & r   Útest_stopWhenNotStartedÚ/SystemEventTestsBuilder.test_stopWhenNotStarted   s.   € ð
 ×#Ñ#Ó%ˆÜÔ  $Ó'×4Ñ4´\À7Ç<Á<ÖPr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   $   s   ø€ ÷ Qñ Q¨Tñ Qr   c                óÚ   € V P                  4       pVP                  VP                  4       V P                  V4       \	        \
        V 4      P                  \        VP                  4       R# )zZ
C{reactor.stop()} raises L{RuntimeError} when called after the reactor
has been stopped.
N)r   ÚcallWhenRunningr"   Ú
runReactorr   r   r    r!   r#   s   & r   Útest_stopWhenAlreadyStoppedÚ3SystemEventTestsBuilder.test_stopWhenAlreadyStopped$   sL   € ð
 ×#Ñ#Ó%ˆØ×Ñ §¡Ô-Ø�‰˜Ô ÜÔ  $Ó'×4Ñ4´\À7Ç<Á<ÖPr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   .   s   ø€ ÷ Qñ Q¨4ñ Qr   c                ó6  € V P                  4       p. pVP                  VP                  R4       VP                  VP                  R4       VP                  VP                  4       V P	                  V4       \        \        V 4      P                  VRR.4       R# )zU
Functions are run in the order that they were passed to
L{reactor.callWhenRunning}.
ÚfirstÚsecondN)r   r*   Úappendr"   r+   r   r   ÚassertEqual©r$   r%   Úeventss   &  r   Útest_callWhenRunningOrderÚ1SystemEventTestsBuilder.test_callWhenRunningOrder.   sz   € ð
 ×#Ñ#Ó%ˆØˆØ×Ñ §¡¨wÔ7Ø×Ñ §¡¨xÔ8Ø×Ñ §¡Ô-Ø�‰˜Ô ÜÔ  $Ó'×3Ñ3°F¸WÀhÐ<OÖPr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   ;   s   ø€ ÷ Vñ V¨dñ Vr   c           	     ó¨  aa€ V P                  4       o/ oR VV3R llpR VV3R llpR VV3R llp\        \        V 4      pSP                  RRV4       SP                  R	RV4       SP                  R
RV4       SP	                  SP
                  4       VP                  S/ 4       V P                  S4       VP                  SRRR	RR
R/4       R# )zŸ
The reactor is not running when C{"before"} C{"startup"} triggers are
called and is running when C{"during"} and C{"after"} C{"startup"}
triggers are called.
c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚJSystemEventTestsBuilder.test_runningForStartupEvents.<locals>.__annotate__D   ó   € ÷ 	.ñ 	.˜tñ 	.r   c                  ó&   <€ S P                   SR &   R# ©ÚbeforeN©Úrunning©r%   Ústates   €€r   ÚbeforeStartupÚKSystemEventTestsBuilder.test_runningForStartupEvents.<locals>.beforeStartupD   ó   ø€ Ø%Ÿo™oˆE�(‹Or   c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r;   G   r<   r   c                  ó&   <€ S P                   SR &   R# )ÚduringNr@   rB   s   €€r   ÚduringStartupÚKSystemEventTestsBuilder.test_runningForStartupEvents.<locals>.duringStartupG   rF   r   c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r;   J   s   € ÷ 	-ñ 	-˜dñ 	-r   c                  ó&   <€ S P                   SR &   R# ©ÚafterNr@   rB   s   €€r   ÚafterStartupÚJSystemEventTestsBuilder.test_runningForStartupEvents.<locals>.afterStartupJ   s   ø€ Ø$Ÿ_™_ˆE�'‹Nr   r?   ÚstartuprI   rO   FTN)r   r   r   ÚaddSystemEventTriggerr*   r"   r3   r+   )r$   rD   rJ   rP   ÚtestCaser%   rC   s   &    @@r   Útest_runningForStartupEventsÚ4SystemEventTestsBuilder.test_runningForStartupEvents;   sÆ   ù€ ð ×#Ñ#Ó%ˆØˆ÷	.ñ 	.÷	.ñ 	.÷	-ñ 	-ô Ô+¨TÓ2ˆà×%Ñ% h°	¸=ÔIØ×%Ñ% h°	¸=ÔIØ×%Ñ% g¨y¸,ÔGØ×Ñ §¡Ô-Ø×Ñ˜U BÔ'Ø�‰˜Ô Ø×Ñ˜U X¨u°hÀÀgÈtÐ$TÖUr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   W   s   ø€ ÷  -ñ  -¸4ñ  -r   c                óê  aa€ V P                  4       pRoR V3R llpR V3R llpVP                  RRV4       VP                  RRV4       . oR	 VV3R
 llp\        \        V 4      pVP	                  \
        RV4       VP                  VP                  4       VP                  S4       VP                  S. 4       V P                  V4       VP                  RS4       VP                  SR4       R# )zM
Signal handlers are installed in responsed to the C{"during"}
C{"startup"}.
Nc                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚWSystemEventTestsBuilder.test_signalHandlersInstalledDuringStartup.<locals>.__annotate___   s   € ÷ 	ñ 	˜tñ 	r   c                  ó   <€ R o R# r>   r   ©Úphases   €r   rD   ÚXSystemEventTestsBuilder.test_signalHandlersInstalledDuringStartup.<locals>.beforeStartup_   s   ø€ àŠEr   c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   rZ   c   s   € ÷ 	ñ 	˜dñ 	r   c                  ó   <€ R o R# rN   r   r\   s   €r   rP   ÚWSystemEventTestsBuilder.test_signalHandlersInstalledDuringStartup.<locals>.afterStartupc   s   ø€ àŠEr   r?   rR   rO   c                óZ   € V ^8„  d   QhR\         R\        \         \        .R3,          RR/# )r   ÚsignumÚactionNr   )Úintr   r   )r   s   "r   r   rZ   l   s1   € ÷ 	#ñ 	#œsð 	#¬H´c¼9Ð5EÀtÐ5KÕ,Lð 	#ÐQUñ 	#r   c                 ó*   <€ SP                  S4       R # ©N©r2   )rc   rd   r]   ÚsawPhases   &&€€r   Ú
fakeSignalÚUSystemEventTestsBuilder.test_signalHandlersInstalledDuringStartup.<locals>.fakeSignall   s   ø€ Ø�O‰O˜EÖ"r   Úsignal)r   rS   r   r   Úpatchrl   r*   r"   ÚassertIsNoner3   r+   ÚassertIn)r$   r%   rD   rP   rj   rT   r]   ri   s   &     @@r   Ú)test_signalHandlersInstalledDuringStartupÚASystemEventTestsBuilder.test_signalHandlersInstalledDuringStartupW   sÜ   ù€ ð
 ×#Ñ#Ó%ˆØ#ˆ÷	ð 	÷	ð 	ð 	×%Ñ% h°	¸=ÔIØ×%Ñ% g¨y¸,ÔGàˆ÷	#ñ 	#ô Ô+¨TÓ2ˆà�‰”v˜x¨Ô4Ø×Ñ §¡Ô-Ø×Ñ˜eÔ$Ø×Ñ˜X rÔ*Ø�‰˜Ô Ø×Ñ˜( HÔ-Ø×Ñ˜U GÖ,r   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   y   s   ø€ ÷ 
ñ 
¨ñ 
r   c                óR  a€ V P                  4       p. oVP                  RRV3R l4       VP                  RRV3R l4       VP                  RRV3R l4       VP                  VP                  4       V P	                  V4       \        \        V 4      P                  S. R	O4       R# )
zn
C{reactor.stop()} fires all three phases of shutdown event triggers
before it makes C{reactor.run()} return.
r?   Úshutdownc                  ó&   <€ S P                  R4      # ©r?   ©r?   rt   rh   ©r5   s   €r   Ú<lambda>ÚASystemEventTestsBuilder.test_stopShutDownEvents.<locals>.<lambda>�   ó   ø€ ¨&¯-©-Ð8NÔ*Or   rI   c                  ó&   <€ S P                  R4      # )rI   ©rI   rt   rh   rx   s   €r   ry   rz   „   r{   r   rO   c                  ó&   <€ S P                  R4      # )rO   ©rO   rt   rh   rx   s   €r   ry   rz   ‡   s   ø€ ¨¯©Ð7LÔ)Mr   N)rw   r}   r   )r   rS   r*   r"   r+   r   r   r3   r4   s   & @r   Útest_stopShutDownEventsÚ/SystemEventTestsBuilder.test_stopShutDownEventsy   sš   ø€ ð
 ×#Ñ#Ó%ˆØˆØ×%Ñ%Ø�jÔ"Oô	
ð 	×%Ñ%Ø�jÔ"Oô	
ð 	×%Ñ%Ø�ZÔ!Mô	
ð 	×Ñ §¡Ô-Ø�‰˜Ô ÜÔ  $Ó'×3Ñ3ØÚSö	
r   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   �   s   ø€ ÷ Eñ E¸$ñ Er   c                ó.  aa€ V P                  4       o. oSP                  RRSP                  R4       R VV3R llp\        \        V 4      pSP                  V4       VP                  S. 4       V P                  S4       VP                  SRR.4       R# )zT
C{"before"} C{"shutdown"} triggers are not run synchronously from
L{reactor.stop}.
r?   rt   zbefore shutdownc                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚVSystemEventTestsBuilder.test_shutdownFiresTriggersAsynchronously.<locals>.__annotate__›   s   € ÷ 	%ñ 	%˜ñ 	%r   c                  óJ   <€ SP                  4        S P                  R 4       R# )ÚstoppedN)r"   r2   ©r5   r%   s   €€r   ÚstopItÚPSystemEventTestsBuilder.test_shutdownFiresTriggersAsynchronously.<locals>.stopIt›   s   ø€ Ø�L‰LŒNØ�M‰M˜)Ö$r   r‡   N)r   rS   r2   r   r   r*   r3   r+   )r$   r‰   rT   r5   r%   s   &  @@r   Ú(test_shutdownFiresTriggersAsynchronouslyÚ@SystemEventTestsBuilder.test_shutdownFiresTriggersAsynchronously�   s�   ù€ ð
 ×#Ñ#Ó%ˆØˆØ×%Ñ%Ø�j &§-¡-Ð1Bô	
÷	%ñ 	%ô Ô+¨TÓ2ˆà×Ñ Ô'Ø×Ñ˜V RÔ(Ø�‰˜Ô Ø×Ñ˜V iÐ1BÐ%CÖDr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   ¦   s   ø€ ÷ 'ñ '°ñ 'r   c                óº  aa€ R.o ! R R\         4      p ! V3R lR\         4      p\        \        V 4      pV P                  4       p\	        V! 4       V! 4       .4      oV3R lVn        VP                  VP                  4       V P                  V4       VP                  \        VP                  \        4      4      ^4       VP                  S^ ,          4       R# )z´
A L{IFileDescriptor.connectionLost} implementation which raises an
exception does not prevent the remaining L{IFileDescriptor}s from
having their C{connectionLost} method called.
Fc                   ó2   a € ] tR t^¯t o V 3R lR ltRtV tR# )ÚZSystemEventTestsBuilder.test_shutdownDisconnectsCleanly.<locals>.ProblematicFileDescriptorc                ó$   <€ V ^8„  d   QhRS[ RR/# ©r   Úreasonr   Nr   )r   r   s   "€r   r   ÚgSystemEventTestsBuilder.test_shutdownDisconnectsCleanly.<locals>.ProblematicFileDescriptor.__annotate__°   s   ø€ ÷ Eñ E©Wð E¸ñ Er   c                ó   € \        R 4      h)zsimulated connectionLost error)r!   )r$   r“   s   &&r   ÚconnectionLostÚiSystemEventTestsBuilder.test_shutdownDisconnectsCleanly.<locals>.ProblematicFileDescriptor.connectionLost°   s   € Ü"Ð#CÓDÐDr   r   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r–   Ú__static_attributes__Ú__classdictcell__©r   s   @r   ÚProblematicFileDescriptorr�   ¯   s   ø‡ € ÷Eö Er   r    c                   ó:   <a € ] tR t^³t o V 3R lV3R lltRtV tR# )ÚQSystemEventTestsBuilder.test_shutdownDisconnectsCleanly.<locals>.OKFileDescriptorc                ó$   <€ V ^8„  d   QhRS[ RR/# r’   r   )r   r   s   "€r   r   Ú^SystemEventTestsBuilder.test_shutdownDisconnectsCleanly.<locals>.OKFileDescriptor.__annotate__´   s   ø€ ÷ !ñ !©Wð !¸ñ !r   c                ó   <€ R S^ &   R# )TNr   )r$   r“   ÚlostOKs   &&€r   r–   Ú`SystemEventTestsBuilder.test_shutdownDisconnectsCleanly.<locals>.OKFileDescriptor.connectionLost´   s   ø€ Ø ��q“	r   r   Nr˜   )r   r¦   s   @€r   ÚOKFileDescriptorr¢   ³   s   ù‡ € ÷!÷ !ñ !r   r¨   c                  ó   <€ S # rg   r   )Úfdss   €r   ry   ÚISystemEventTestsBuilder.test_shutdownDisconnectsCleanly.<locals>.<lambda>À   s   ø€ ¡Cr   N)r	   r   r   r   ÚiterÚ	removeAllr*   r"   r+   r3   ÚlenÚflushLoggedErrorsr!   Ú
assertTrue)r$   r    r¨   rT   r%   rª   r¦   s   &    @@r   Útest_shutdownDisconnectsCleanlyÚ7SystemEventTestsBuilder.test_shutdownDisconnectsCleanly¦   s´   ù€ ð �ˆô	E¬ô 	E÷	!œ~ô 	!ô Ô+¨TÓ2ˆØ×#Ñ#Ó%ˆô Ñ-Ó/Ñ1AÓ1CÐDÓEˆÜ'ˆÔØ×Ñ §¡Ô-Ø�‰˜Ô Ø×ÑœS ×!;Ñ!;¼LÓ!IÓJÈAÔNØ×Ñ˜F 1�IÖ&r   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   Æ   s   ø€ ÷ 1ñ 1 $ñ 1r   c                ó  aaa€ . o\        \        V 4      oR VVV3R llpV P                  4       oSP                  V4       SP                  SP                  4       V P                  S4       SP                  SR.4       R# )zc
C{reactor.run()} raises L{ReactorAlreadyRunning} when called when
the reactor is already running.
c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   Ú>SystemEventTestsBuilder.test_multipleRun.<locals>.__annotate__Ï   s   € ÷ 	$ñ 	$˜dñ 	$r   c                  ój   <€ SP                  \        SP                  4       S P                  R 4       R# ©ÚtestedN)r    r   Úrunr2   ©r5   r%   rT   s   €€€r   ÚreentrantRunÚ>SystemEventTestsBuilder.test_multipleRun.<locals>.reentrantRunÏ   ó$   ø€ Ø×!Ñ!Ô"7¸¿¹ÔEØ�M‰M˜(Ö#r   r¹   N)r   r   r   r*   r"   r+   r3   )r$   r¼   r5   r%   rT   s   & @@@r   Útest_multipleRunÚ(SystemEventTestsBuilder.test_multipleRunÆ   so   ú€ ð
 ˆäÔ+¨TÓ2ˆ÷	$ò 	$ð ×#Ñ#Ó%ˆØ×Ñ Ô-Ø×Ñ §¡Ô-Ø�‰˜Ô Ø×Ñ˜V h ZÖ0r   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   Ù   s   ø€ ÷ Uñ U¸dñ Ur   c                óæ   aaa€ . oR VVV3R llpR VV3R lloV P                  4       oSP                  RRV4       V P                  S4       \        \        V 4      P                  SRR.4       R	# )
z¸
When there is a C{'before'} C{'startup'} trigger which returns an
unfired L{Deferred}, C{reactor.run()} starts the reactor and does not
return until after C{reactor.stop()} is called
c                ó:   € V ^8„  d   QhR\         \        ,          /# )r   r   )r
   Úobject)r   s   "r   r   ÚZSystemEventTestsBuilder.test_runWithAsynchronousBeforeStartupTrigger.<locals>.__annotate__á   s   € ÷ 	ñ 	œ¤&Õ)ñ 	r   c                  óš   <€ SP                  R 4       \        4       p V P                  S4       SP                  ^ V P                  R4       V # )ÚtriggerN)r2   r
   ÚaddCallbackÚ	callLaterÚcallback)ÚdrÊ   r5   r%   s    €€€r   rÇ   ÚUSystemEventTestsBuilder.test_runWithAsynchronousBeforeStartupTrigger.<locals>.triggerá   s=   ø€ Ø�M‰M˜)Ô$Ü"*£*ˆAØ�M‰M˜(Ô#Ø×Ñ˜a §¡¨TÔ2ØˆHr   c                ó(   € V ^8„  d   QhR\         RR/# )r   Úignoredr   N)rÄ   )r   s   "r   r   rÅ   è   s   € ÷ 	ñ 	œfð 	¨ñ 	r   c                 óJ   <€ SP                  R 4       SP                  4        R# )rÊ   N)r2   r"   )rÎ   r5   r%   s   &€€r   rÊ   ÚVSystemEventTestsBuilder.test_runWithAsynchronousBeforeStartupTrigger.<locals>.callbackè   s   ø€ Ø�M‰M˜*Ô%Ø�L‰LŽNr   r?   rR   rÇ   rÊ   N)r   rS   r+   r   r   r3   )r$   rÇ   rÊ   r5   r%   s   & @@@r   Ú,test_runWithAsynchronousBeforeStartupTriggerÚDSystemEventTestsBuilder.test_runWithAsynchronousBeforeStartupTriggerÙ   si   ú€ ð ˆ÷	ò 	÷	ñ 	ð ×#Ñ#Ó%ˆØ×%Ñ% h°	¸7ÔCØ�‰˜Ô ÜÔ  $Ó'×3Ñ3°F¸YÈ
Ð<SÖTr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   ñ   s   ø€ ÷ ñ ˜dñ r   c                óF  € V P                  4       pVP                  ^VP                  4      p\        P                  ! 4       pVP	                  ^ 4       \        P                  ! 4       V,
          p\        \        V 4      P                  V^8  4       VP                  4        R# )z&
C{reactor.iterate()} does not block.
N)	r   rÉ   ÚcrashÚtimeÚiterater   r   r°   Úcancel)r$   r%   ÚtÚstartÚelapseds   &    r   Útest_iterateÚ$SystemEventTestsBuilder.test_iterateñ   sr   € ð ×#Ñ#Ó%ˆØ×Ñ˜a §¡Ó/ˆä—	’	“ˆØ�‰˜ÔÜ—)’)“+ Õ%ˆäÔ  $Ó'×2Ñ2°7¸Q±;Ô?Ø	�‰Ž
r   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   ÿ   s   ø€ ÷ 
ñ 
˜Dñ 
r   c                óD  a€ V P                  4       p. oVP                  RRV3R l4       VP                  VP                  ^ VP                  4       V P                  V4       \        \        V 4      pVP                  VP                  4       VP                  SR4       R# )zK
C{reactor.crash()} stops the reactor and does not fire shutdown
triggers.
r?   rt   c                  ó&   <€ S P                  R4      # rv   rh   rx   s   €r   ry   Ú4SystemEventTestsBuilder.test_crash.<locals>.<lambda>  r{   r   z8Shutdown triggers invoked but they should not have been.N)
r   rS   r*   rÉ   rÕ   r+   r   r   ÚassertFalserA   )r$   r%   rT   r5   s   &  @r   Ú
test_crashÚ"SystemEventTestsBuilder.test_crashÿ   s‹   ø€ ð
 ×#Ñ#Ó%ˆØˆØ×%Ñ%Ø�jÔ"Oô	
ð 	×Ñ × 1Ñ 1°1°g·m±mÔDØ�‰˜Ô ÜÔ+¨TÓ2ˆØ×Ñ˜WŸ_™_Ô-Ø×ÑØÐNö	
r   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r     s   ø€ ÷ Wñ W Dñ Wr   c                ó"  aa€ . oR VV3R llpV P                  4       oSP                  V4       V P                  S4       R VV3R llpSP                  V4       V P                  S4       \        \        V 4      P                  SRR.4       R# )zX
C{reactor.run()} restarts the reactor after it has been stopped by
C{reactor.crash()}.
c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   Ú@SystemEventTestsBuilder.test_runAfterCrash.<locals>.__annotate__  s   € ÷ 	ñ 	�tñ 	r   c                  óJ   <€ S P                  R 4       SP                  4        R# )rÕ   N)r2   rÕ   rˆ   s   €€r   rÕ   Ú9SystemEventTestsBuilder.test_runAfterCrash.<locals>.crash  s   ø€ Ø�M‰M˜'Ô"Ø�M‰MŽOr   c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   rè      s   € ÷ 	ñ 	�dñ 	r   c                  ób   <€ S P                  R SP                  34       SP                  4        R# )r"   N)r2   rA   r"   rˆ   s   €€r   r"   Ú8SystemEventTestsBuilder.test_runAfterCrash.<locals>.stop   s!   ø€ Ø�M‰M˜6 7§?¡?Ð3Ô4Ø�L‰LŽNr   rÕ   N)r"   T)r   r*   r+   r   r   r3   )r$   rÕ   r"   r5   r%   s   &  @@r   Útest_runAfterCrashÚ*SystemEventTestsBuilder.test_runAfterCrash  s�   ù€ ð
 68ˆ÷	ñ 	ð ×#Ñ#Ó%ˆØ×Ñ Ô&Ø�‰˜Ô ÷	ñ 	ð 	×Ñ Ô%Ø�‰˜Ô ÜÔ  $Ó'×3Ñ3°F¸WÀnÐ<UÖVr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   (  s   ø€ ÷ 1ñ 1 4ñ 1r   c                ó
  aaa€ . o\        \        V 4      oR VVV3R llpV P                  4       oSP                  SP                  4       SP                  RRV4       V P                  S4       SP                  SR.4       R# )z{
C{reactor.run()} raises L{ReactorNotRestartable} when called when
the reactor is being run after getting stopped priorly.
c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   Ú?SystemEventTestsBuilder.test_runAfterStop.<locals>.__annotate__1  s   € ÷ 	$ñ 	$˜ñ 	$r   c                  ój   <€ SP                  \        SP                  4       S P                  R 4       R# r¸   )r    r   rº   r2   r»   s   €€€r   ÚrestartÚ:SystemEventTestsBuilder.test_runAfterStop.<locals>.restart1  r¾   r   rO   rt   r¹   N)r   r   r   r*   r"   rS   r+   r3   )r$   rõ   r5   r%   rT   s   & @@@r   Útest_runAfterStopÚ)SystemEventTestsBuilder.test_runAfterStop(  ss   ú€ ð
 ˆäÔ+¨TÓ2ˆ÷	$ò 	$ð ×#Ñ#Ó%ˆØ×Ñ §¡Ô-Ø×%Ñ% g¨z¸7ÔCØ�‰˜Ô Ø×Ñ˜V h ZÖ0r   r   N)r™   rš   r›   rœ   Ú__doc__r&   r,   r6   rU   rp   r€   r‹   r±   r¿   rÑ   rÜ   rã   rî   r÷   r�   rž   rŸ   s   @r   r   r      s¦   ø‡ € ñ÷
Qð Q÷Qð Q÷Qð Q÷Vð V÷8 -ð  -÷D
ð 
÷.Eð E÷,'ð '÷@1ð 1÷&Uð U÷0ð ÷
ð 
÷$Wð W÷.1ö 1r   r   )rù   rl   rÖ   Útypesr   Útypingr   r   r   r   r   r   Útwisted.internet.abstractr	   Útwisted.internet.deferr
   Útwisted.internet.errorr   r   Ú#twisted.internet.test.reactormixinsr   Útwisted.python.failurer   Útwisted.trial.unittestr   r   ÚglobalsÚupdateÚmakeTestCaseClassesr   r   r   Ú<module>r     sX   ðñó
 Û Ý ß ?× ?å 4Ý +ß OÝ >Ý *Ý 6ôc1˜nô c1ñL	 ƒ	× Ñ Ð(×<Ñ<Ó>Ö ?r   