§
    ÈtºfF  ã                   ó>  — d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ  G d„ de¦  «        Z G d	„ d
e¦  «        Z e¦   «                              e                     ¦   «         ¦  «          e¦   «                              e                     ¦   «         ¦  «         dS )z/
Tests for implementations of L{IReactorTime}.
é    )ÚIReactorThreadsÚIReactorTime)ÚReactorBuilder)Úmsg)Úplatform)ÚSkipTestc                   ó$   — e Zd ZdZefZd„ Zd„ ZdS )ÚTimeTestsBuilderzA
    Builder for defining tests relating to L{IReactorTime}.
    c                 óŒ   — |                       ¦   «         }|                     d|j        ¦  «         |                     ¦   «          dS )z?
        The reactor can be stopped by a delayed call.
        r   N)ÚbuildReactorÚ	callLaterÚstopÚrun)ÚselfÚreactors     ú^/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/internet/test/test_time.pyÚtest_delayedCallStopsReactorz-TimeTestsBuilder.test_delayedCallStopsReactor   s>   € ð ×#Ò#Ñ%Ô%ˆØ×Ò˜!˜Wœ\Ñ*Ô*Ð*Ø�Š‰Œˆˆˆó    c                 ó®  ‡‡‡— |                       ¦   «         Št          j        ‰¦  «        rd„ Šnt          d¦  «        ‚‰                     ddz  dz   d„ ¦  «        }ˆfd„Š ‰‰ˆˆˆfd„¦  «         ‰                     ¦   «          |                      |                     ¦   «         ¦  «         |                      |‰ 	                    ¦   «         ¦  «         d	S )
z
        Scheduling a delayed call at a point in the extreme future does not
        prevent normal reactor operation.
        c                 óR   — t          d|¬¦  «         |                      |¦  «         d S )Nz.Thread-based event-source scheduling %(event)r)ÚformatÚevent)r   ÚcallFromThread)r   r   s     r   ÚeventSourcez=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                  ó   — d S ©N© r    r   r   ú<lambda>z:TimeTestsBuilder.test_distantDelayedCall.<locals>.<lambda>2   s   € ¸D€ r   c                  óN   •— t          d¦  «         ‰                      ¦   «          d S )NzStopping the reactor)r   r   )r   s   €r   r   z6TimeTestsBuilder.test_distantDelayedCall.<locals>.stop4   s#   ø€ ÝÐ&Ñ'Ô'Ð'Ø�LŠL‰NŒNˆNˆNˆNr   c                  ó   •—  ‰ ‰‰¦  «        S r   r    )r   r   r   s   €€€r   r!   z:TimeTestsBuilder.test_distantDelayedCall.<locals>.<lambda><   s   ø€  [ [°¸$Ñ%?Ô%?€ r   N)
r   r   Ú
providedByr   r   r   Ú
assertTrueÚactiveÚassertInÚgetDelayedCalls)r   ÚdelayedCallr   r   r   s     @@@r   Útest_distantDelayedCallz(TimeTestsBuilder.test_distantDelayedCall   s	  øøø€ ð
 ×#Ò#Ñ%Ô%ˆÝÔ% gÑ.Ô.ð 	ð.ð .ð .ð .õ ØOñô ð ð
 ×'Ò'¨¨3©°©
°L°LÑAÔAˆð	ð 	ð 	ð 	ð 	ð 	ˆ�GÐ?Ð?Ð?Ð?Ð?Ð?Ñ@Ô@Ð@ð 	�Š‰Œˆð 	�Š˜×*Ò*Ñ,Ô,Ñ-Ô-Ð-Ø�Š�k 7×#:Ò#:Ñ#<Ô#<Ñ=Ô=Ð=Ð=Ð=r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚrequiredInterfacesr   r*   r    r   r   r
   r
      sF   € € € € € ðð ð '˜Ððð ð ð*>ð *>ð *>ð *>ð *>r   r
   c                   óF   — e Zd ZdZefZ ej        ¦   «         rdndgZd„ Z	dS )ÚGlibTimeTestsBuilderza
    Builder for defining tests relating to L{IReactorTime} for reactors based
    off glib.
    z,twisted.internet.gireactor.PortableGIReactorz$twisted.internet.gireactor.GIReactorc                 óî   ‡‡‡— ddl m} |                      ¦   «         Šg Šˆˆfd„}ˆˆfd„Š‰                     |j        d|¦  «         |                      ‰d¦  «         |                      ‰dg¦  «         dS )	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                  ó4   •— ‰                      d‰ ¦  «         dS )Nr   )r   )Úcallbackr   s   €€r   Ú	gschedulez8GlibTimeTestsBuilder.test_timeout_add.<locals>.gschedulef   s   ø€ Ø×Ò˜a Ñ*Ô*Ð*Ø�1r   c                  óZ   •— ‰                      d¦  «         ‰                      ¦   «          d S )NT)Úappendr   )r   Úresults   €€r   r5   z7GlibTimeTestsBuilder.test_timeout_add.<locals>.callbackj   s&   ø€ Ø�MŠM˜$ÑÔÐØ�LŠL‰NŒNˆNˆNˆNr   é
   é   TN)Úgi.repositoryr3   r   ÚcallWhenRunningÚtimeout_addÚ
runReactorÚassertEqual)r   r3   r6   r5   r   r9   s      @@@r   Útest_timeout_addz%GlibTimeTestsBuilder.test_timeout_addY   sº   øøø€ ð 	*Ð)Ð)Ð)Ð)Ð)à×#Ò#Ñ%Ô%ˆàˆð	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	ð 	×Ò Ô 3°R¸ÑCÔCÐCØ�Š˜ Ñ#Ô#Ð#Ø×Ò˜ $ Ñ(Ô(Ð(Ð(Ð(r   N)
r+   r,   r-   r.   r   r/   r   Ú	isWindowsÚ	_reactorsrA   r    r   r   r1   r1   K   s\   € € € € € ðð ð
 '˜Ðð ˆ8ÔÑÔð	4Ð6Ð6à3ð€Ið)ð )ð )ð )ð )r   r1   N)r.   Útwisted.internet.interfacesr   r   Ú#twisted.internet.test.reactormixinsr   Útwisted.python.logr   Útwisted.python.runtimer   Útwisted.trial.unittestr   r
   r1   ÚglobalsÚupdateÚmakeTestCaseClassesr    r   r   ú<module>rL      s  ððð ð FÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ >Ð >Ð >Ð >Ð >Ð >Ø "Ð "Ð "Ð "Ð "Ð "Ø +Ð +Ð +Ð +Ð +Ð +Ø +Ð +Ð +Ð +Ð +Ð +ð9>ð 9>ð 9>ð 9>ð 9>�~ñ 9>ô 9>ð 9>ðx%)ð %)ð %)ð %)ð %)˜>ñ %)ô %)ð %)ðP €�	„	× Ò Ð!×5Ò5Ñ7Ô7Ñ 8Ô 8Ð 8Ø €�	„	× Ò Ð%×9Ò9Ñ;Ô;Ñ <Ô <Ð <Ð <Ð <r   