ó
    Ö›‘hF  ã                   ó  • S r SSKJrJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr   " S S\5      r " S	 S
\5      r\" 5       R                  \R!                  5       5        \" 5       R                  \R!                  5       5        g)z/
Tests for implementations of L{IReactorTime}.
é    )ÚIReactorThreadsÚIReactorTime)ÚReactorBuilder)Úmsg)Úplatform)ÚSkipTestc                   ó*   • \ rS rSrSr\4rS rS rSr	g)ÚTimeTestsBuilderé   z9
Builder for defining tests relating to L{IReactorTime}.
c                 ó|   • U R                  5       nUR                  SUR                  5        UR                  5         g)z/
The reactor can be stopped by a delayed call.
r   N)ÚbuildReactorÚ	callLaterÚstopÚrun)ÚselfÚreactors     ÚcC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/internet/test/test_time.pyÚtest_delayedCallStopsReactorÚ-TimeTestsBuilder.test_delayedCallStopsReactor   s/   € ð ×#Ñ#Ó%ˆØ×Ñ˜!˜WŸ\™\Ô*Ø�‰�ó    c                 óx  ^^^• U R                  5       m[        R                  " T5      (       a  S mO[        S5      eTR	                  SS-  S-   S 5      nU4S jmT" TUUU4S j5        TR                  5         U R                  UR                  5       5        U R                  UTR                  5       5        g	)
zg
Scheduling a delayed call at a point in the extreme future does not
prevent normal reactor operation.
c                 ó:   • [        SUS9  U R                  U5        g )Nz.Thread-based event-source scheduling %(event)r)ÚformatÚevent)r   ÚcallFromThread)r   r   s     r   ÚeventSourceÚ=TimeTestsBuilder.test_distantDelayedCall.<locals>.eventSource&   s    € ÜØKÐSXòð ×&Ñ& uÕ-r   z=Do not know how to synthesize non-time event to stop the testé   é€   é   c                  ó   • g ©N© r#   r   r   Ú<lambda>Ú:TimeTestsBuilder.test_distantDelayedCall.<locals>.<lambda>2   s   € ¸Dr   c                  ó<   >• [        S5        T R                  5         g )NzStopping the reactor)r   r   )r   s   €r   r   Ú6TimeTestsBuilder.test_distantDelayedCall.<locals>.stop4   s   ø€ ÜÐ&Ô'Ø�L‰L�Nr   c                  ó   >• T " TT5      $ r"   r#   )r   r   r   s   €€€r   r$   r%   <   s   ø€ ¡[°¸$Ô%?r   N)
r   r   Ú
providedByr   r   r   Ú
assertTrueÚactiveÚassertInÚgetDelayedCalls)r   ÚdelayedCallr   r   r   s     @@@r   Útest_distantDelayedCallÚ(TimeTestsBuilder.test_distantDelayedCall   s¢   ú€ ð
 ×#Ñ#Ó%ˆÜ×%Ò% g×.Ñ.ó.ô ØOóð ð
 ×'Ñ'¨¨3©°©
±LÓAˆõ	ñ 	�GÖ?Ô@ð 	�‰Œð 	�‰˜×*Ñ*Ó,Ô-Ø�‰�k 7×#:Ñ#:Ó#<Õ=r   r#   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚrequiredInterfacesr   r/   Ú__static_attributes__r#   r   r   r
   r
      s   † ñð '˜Ðòõ*>r   r
   c                   óZ   • \ rS rSrSr\4r\R                  " 5       (       a  SOS/r	S r
Srg)ÚGlibTimeTestsBuilderéK   zU
Builder for defining tests relating to L{IReactorTime} for reactors based
off glib.
z,twisted.internet.gireactor.PortableGIReactorz$twisted.internet.gireactor.GIReactorc                 óÚ   ^^^• SSK Jn  U R                  5       m/ mUU4S jnUU4S jmTR                  UR                  SU5        U R                  TS5        U R                  TS/5        g)	zŽ
A
L{reactor.callLater<twisted.internet.interfaces.IReactorTime.callLater>}
call scheduled from a C{gobject.timeout_add}
call is run on time.
r   )ÚGObjectc                  ó*   >• TR                  ST 5        g)Nr   )r   )Úcallbackr   s   €€r   Ú	gscheduleÚ8GlibTimeTestsBuilder.test_timeout_add.<locals>.gschedulef   s   ø€ Ø×Ñ˜a Ô*Ør   c                  óH   >• TR                  S5        T R                  5         g )NT)Úappendr   )r   Úresults   €€r   r>   Ú7GlibTimeTestsBuilder.test_timeout_add.<locals>.callbackj   s   ø€ Ø�M‰M˜$ÔØ�L‰L�Nr   é
   é   TN)Úgi.repositoryr<   r   ÚcallWhenRunningÚtimeout_addÚ
runReactorÚassertEqual)r   r<   r?   r>   r   rC   s      @@@r   Útest_timeout_addÚ%GlibTimeTestsBuilder.test_timeout_addY   s_   ú€ õ 	*à×#Ñ#Ó%ˆàˆö	ö	ð 	×Ñ × 3Ñ 3°R¸ÔCØ�‰˜ Ô#Ø×Ñ˜ $ Õ(r   r#   N)r1   r2   r3   r4   r5   r   r6   r   Ú	isWindowsÚ	_reactorsrL   r7   r#   r   r   r9   r9   K   s6   † ñð
 '˜Ðð ×Ò×Ññ 	7à3ð€Iõ)r   r9   N)r5   Útwisted.internet.interfacesr   r   Ú#twisted.internet.test.reactormixinsr   Útwisted.python.logr   Útwisted.python.runtimer   Útwisted.trial.unittestr   r
   r9   ÚglobalsÚupdateÚmakeTestCaseClassesr#   r   r   Ú<module>rX      sl   ðñ÷ FÝ >Ý "Ý +Ý +ô9>�~ô 9>ôx%)˜>ô %)ñP ƒ	× Ñ Ð!×5Ñ5Ó7Ô 8Ù ƒ	× Ñ Ð%×9Ñ9Ó;Õ <r   