Ë
    ojóA  ã                  ó2  — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZ ddlmZmZ dd	lmZmZmZmZ dd
lmZ ddlmZ  G d„ de«      Z  G d„ de«      Z! G d„ d«      Z" G d„ de«      Z# G d„ de«      Z$ G d„ de«      Z%y)z(
Tests for L{twisted.internet.testing}.
é    )Úannotations)ÚCallable)ÚverifyObject)ÚProtocol)ÚIPv4Address)	ÚIAddressÚ
IConnectorÚ	IConsumerÚIListeningPortÚIPushProducerÚIReactorSSLÚIReactorTCPÚIReactorUNIXÚ
ITransport)ÚClientFactoryÚFactory)ÚMemoryReactorÚNonStreamingProducerÚRaisingMemoryReactorÚStringTransport)ÚnamedAny)ÚTestCasec                  ó¨   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zy)ÚStringTransportTestsz@
    Tests for L{twisted.internet.testing.StringTransport}.
    c                ó"   — t        «       | _        y ©N)r   Ú	transport©Úselfs    úD/usr/lib/python3/dist-packages/twisted/internet/test/test_testing.pyÚsetUpzStringTransportTests.setUp+   s   € Ü(Ó*ˆ�ó    c                óú   — | j                  t        t        | j                  «      «       | j                  t        t        | j                  «      «       | j                  t        t
        | j                  «      «       y)zq
        L{StringTransport} instances provide L{ITransport}, L{IPushProducer},
        and L{IConsumer}.
        N)Ú
assertTruer   r   r   r   r
   r   s    r    Útest_interfacesz$StringTransportTests.test_interfaces.   sI   € ð
 	�‰œ¤Z°·±Ó@ÔAØ�‰œ¤]°D·N±NÓCÔDØ�‰œ¤Y°·±Ó?Õ@r"   c                óü   — t        «       }t        «       }| j                  j                  ||«       | j                  | j                  j                  |«       | j                  | j                  j
                  |«       y)zz
        L{StringTransport.registerProducer} records the arguments supplied to
        it as instance attributes.
        N)Úobjectr   ÚregisterProducerÚassertIsÚproducerÚ	streaming©r   r*   r+   s      r    Útest_registerProducerz*StringTransportTests.test_registerProducer7   sV   € ô
 “8ˆÜ“Hˆ	Ø�‰×'Ñ'¨°)Ô<Ø�‰�d—n‘n×-Ñ-¨xÔ8Ø�‰�d—n‘n×.Ñ.°	Õ:r"   c                óN  — t        «       }| j                  j                  |d«       | j                  t        | j                  j                  t        «       d«       | j                  | j                  j                  |«       | j                  | j                  j                  «       y)zy
        L{StringTransport.registerProducer} raises L{RuntimeError} if a
        producer is already registered.
        TFN)	r'   r   r(   ÚassertRaisesÚRuntimeErrorr)   r*   r$   r+   )r   r*   s     r    Útest_disallowedRegisterProducerz4StringTransportTests.test_disallowedRegisterProducerB   sr   € ô
 “8ˆØ�‰×'Ñ'¨°$Ô7Ø×ÑÜ˜$Ÿ.™.×9Ñ9¼6»8ÀUô	
ð 	�‰�d—n‘n×-Ñ-¨xÔ8Ø�‰˜Ÿ™×0Ñ0Õ1r"   c                ó°  — t        «       }t        «       }| j                  j                  |d«       | j                  j                  «        | j	                  | j                  j
                  «       | j                  j                  |d«       | j                  | j                  j
                  |«       | j                  | j                  j                  «       y)z±
        L{StringTransport.unregisterProducer} causes the transport to forget
        about the registered producer and makes it possible to register a new
        one.
        FTN)	r'   r   r(   ÚunregisterProducerÚassertIsNoner*   r)   r$   r+   )r   ÚoldProducerÚnewProducers      r    Útest_unregisterProducerz,StringTransportTests.test_unregisterProducerO   s�   € ô “hˆÜ“hˆØ�‰×'Ñ'¨°UÔ;Ø�‰×)Ñ)Ô+Ø×Ñ˜$Ÿ.™.×1Ñ1Ô2Ø�‰×'Ñ'¨°TÔ:Ø�‰�d—n‘n×-Ñ-¨{Ô;Ø�‰˜Ÿ™×0Ñ0Õ1r"   c                óX   — | j                  t        | j                  j                  «       y)z€
        L{StringTransport.unregisterProducer} raises L{RuntimeError} if called
        when no producer is registered.
        N)r/   r0   r   r3   r   s    r    Útest_invalidUnregisterProducerz3StringTransportTests.test_invalidUnregisterProducer^   s   € ð
 	×Ñœ,¨¯©×(IÑ(IÕJr"   c                óP   — | j                  | j                  j                  d«       y)zO
        L{StringTransport.producerState} is initially C{'producing'}.
        Ú	producingN)ÚassertEqualr   ÚproducerStater   s    r    Útest_initialProducerStatez.StringTransportTests.test_initialProducerStatee   s   € ð 	×Ñ˜Ÿ™×5Ñ5°{ÕCr"   c                ó„   — | j                   j                  «        | j                  | j                   j                  d«       y)zy
        L{StringTransport.pauseProducing} changes the C{producerState} of the
        transport to C{'paused'}.
        ÚpausedN)r   ÚpauseProducingr<   r=   r   s    r    Útest_pauseProducingz(StringTransportTests.test_pauseProducingk   s.   € ð
 	�‰×%Ñ%Ô'Ø×Ñ˜Ÿ™×5Ñ5°xÕ@r"   c                ó¸   — | j                   j                  «        | j                   j                  «        | j                  | j                   j                  d«       y)z}
        L{StringTransport.resumeProducing} changes the C{producerState} of the
        transport to C{'producing'}.
        r;   N)r   rA   ÚresumeProducingr<   r=   r   s    r    Útest_resumeProducingz)StringTransportTests.test_resumeProducings   s>   € ð
 	�‰×%Ñ%Ô'Ø�‰×&Ñ&Ô(Ø×Ñ˜Ÿ™×5Ñ5°{ÕCr"   c                ó„   — | j                   j                  «        | j                  | j                   j                  d«       y)z{
        L{StringTransport.stopProducing} changes the C{'producerState'} of the
        transport to C{'stopped'}.
        ÚstoppedN)r   ÚstopProducingr<   r=   r   s    r    Útest_stopProducingz'StringTransportTests.test_stopProducing|   s.   € ð
 	�‰×$Ñ$Ô&Ø×Ñ˜Ÿ™×5Ñ5°yÕAr"   c                óŒ   — | j                   j                  «        | j                  t        | j                   j                  «       y)zu
        L{StringTransport.pauseProducing} raises L{RuntimeError} if the
        transport has been stopped.
        N)r   rH   r/   r0   rA   r   s    r    Ú test_stoppedTransportCannotPausez5StringTransportTests.test_stoppedTransportCannotPause„   s.   € ð
 	�‰×$Ñ$Ô&Ø×Ñœ,¨¯©×(EÑ(EÕFr"   c                óŒ   — | j                   j                  «        | j                  t        | j                   j                  «       y)zv
        L{StringTransport.resumeProducing} raises L{RuntimeError} if the
        transport has been stopped.
        N)r   rH   r/   r0   rD   r   s    r    Ú!test_stoppedTransportCannotResumez6StringTransportTests.test_stoppedTransportCannotResumeŒ   s.   € ð
 	�‰×$Ñ$Ô&Ø×Ñœ,¨¯©×(FÑ(FÕGr"   c                óŒ   — | j                   j                  «        | j                  t        | j                   j                  «       y)zz
        L{StringTransport.pauseProducing} raises L{RuntimeError} if the
        transport is being disconnected.
        N)r   ÚloseConnectionr/   r0   rA   r   s    r    Ú&test_disconnectingTransportCannotPausez;StringTransportTests.test_disconnectingTransportCannotPause”   s.   € ð
 	�‰×%Ñ%Ô'Ø×Ñœ,¨¯©×(EÑ(EÕFr"   c                óŒ   — | j                   j                  «        | j                  t        | j                   j                  «       y)z{
        L{StringTransport.resumeProducing} raises L{RuntimeError} if the
        transport is being disconnected.
        N)r   rO   r/   r0   rD   r   s    r    Ú'test_disconnectingTransportCannotResumez<StringTransportTests.test_disconnectingTransportCannotResumeœ   s.   € ð
 	�‰×%Ñ%Ô'Ø×Ñœ,¨¯©×(FÑ(FÕGr"   c                óÌ   — | j                  | j                  j                  «       | j                  j                  «        | j	                  | j                  j                  «       y)zv
        L{StringTransport.loseConnection} toggles the C{disconnecting} instance
        variable to C{True}.
        N)ÚassertFalser   ÚdisconnectingrO   r$   r   s    r    Ú$test_loseConnectionSetsDisconnectingz9StringTransportTests.test_loseConnectionSetsDisconnecting¤   sB   € ð
 	×Ñ˜Ÿ™×5Ñ5Ô6Ø�‰×%Ñ%Ô'Ø�‰˜Ÿ™×4Ñ4Õ5r"   c                ój   — t        «       }| j                  t        |«      j                  «       |«       y)z�
        If a host address is passed to L{StringTransport.__init__}, that
        value is returned from L{StringTransport.getHost}.
        N)r'   r)   r   ÚgetHost©r   Úaddresss     r    Útest_specifiedHostAddressz.StringTransportTests.test_specifiedHostAddress­   s'   € ô
 “(ˆØ�‰”o gÓ.×6Ñ6Ó8¸'ÕBr"   c                ól   — t        «       }| j                  t        |¬«      j                  «       |«       y)z�
        If a peer address is passed to L{StringTransport.__init__}, that
        value is returned from L{StringTransport.getPeer}.
        )ÚpeerAddressN)r'   r)   r   ÚgetPeerrY   s     r    Útest_specifiedPeerAddressz.StringTransportTests.test_specifiedPeerAddressµ   s'   € ô
 “(ˆØ�‰”o°'Ô:×BÑBÓDÀgÕNr"   c                ó`   — t        «       j                  «       }| j                  |t        «       y)z•
        If no host address is passed to L{StringTransport.__init__}, an
        L{IPv4Address} is returned from L{StringTransport.getHost}.
        N)r   rX   ÚassertIsInstancer   rY   s     r    Útest_defaultHostAddressz,StringTransportTests.test_defaultHostAddress½   ó%   € ô
 "Ó#×+Ñ+Ó-ˆØ×Ñ˜g¤{Õ3r"   c                ó`   — t        «       j                  «       }| j                  |t        «       y)z•
        If no peer address is passed to L{StringTransport.__init__}, an
        L{IPv4Address} is returned from L{StringTransport.getPeer}.
        N)r   r^   ra   r   rY   s     r    Útest_defaultPeerAddressz,StringTransportTests.test_defaultPeerAddressÅ   rc   r"   N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r%   r-   r1   r7   r9   r>   rB   rE   rI   rK   rM   rP   rR   rV   r[   r_   rb   re   © r"   r    r   r   &   sr   „ ñó+óAó	;ó2ó2óKóDóAóDóBóGóHóGóHó6óCóOó4ô4r"   r   c                  ó@   — e Zd ZdZd	d„Zd	d„Zd	d„Zd	d„Zd	d„Zd	d„Z	y)
ÚReactorTestszA
    Tests for L{MemoryReactor} and L{RaisingMemoryReactor}.
    c                óx   — t        «       }t        t        |«       t        t        |«       t        t        |«       y)zt
        L{MemoryReactor} provides all of the attributes described by the
        interfaces it advertises.
        N)r   r   r   r   r   )r   ÚmemoryReactors     r    Útest_memoryReactorProvidesz'ReactorTests.test_memoryReactorProvidesÓ   s)   € ô
 &›ˆÜ”[ -Ô0Ü”[ -Ô0Ü”\ =Õ1r"   c                óx   — t        «       }t        t        |«       t        t        |«       t        t        |«       y)z{
        L{RaisingMemoryReactor} provides all of the attributes described by the
        interfaces it advertises.
        N)r   r   r   r   r   )r   ÚraisingReactors     r    Útest_raisingReactorProvidesz(ReactorTests.test_raisingReactorProvidesÝ   s*   € ô
 .Ó/ˆÜ”[ .Ô1Ü”[ .Ô1Ü”\ >Õ2r"   c                ó,  — t        «       }|j                  ddt        «       «      |j                  ddt        «       d«      fD ]j  }t	        t
        |«       |j                  «       }t	        t        |«       | j                  |j                  d«       | j                  |j                  d«       Œl |j                  dt        «       «      }t	        t
        |«       |j                  «       }t	        t        |«       | j                  |j                  d«       y)a  
        L{MemoryReactor.connectTCP}, L{MemoryReactor.connectSSL}, and
        L{MemoryReactor.connectUNIX} will return an L{IConnector} whose
        C{getDestination} method returns an L{IAddress} with attributes which
        reflect the values passed.
        ztest.example.comi�   Ns
   /fake/path)r   Ú
connectTCPr   Ú
connectSSLr   r	   ÚgetDestinationr   r<   ÚhostÚportÚconnectUNIXÚname)r   rq   Ú	connectorrZ   s       r    Útest_connectDestinationz$ReactorTests.test_connectDestinationç   sâ   € ô &›ˆà×$Ñ$Ð%7¸¼}»ÓOØ×$Ñ$Ð%7¸¼}»ÐPTÓUð
ò 	1ˆIô œ YÔ/Ø×.Ñ.Ó0ˆGÜœ 7Ô+Ø×Ñ˜WŸ\™\Ð+=Ô>Ø×Ñ˜WŸ\™\¨4Õ0ð	1ð "×-Ñ-¨m¼]»_ÓMˆ	Ü”Z Ô+Ø×*Ñ*Ó,ˆÜ”X˜wÔ'Ø×Ñ˜Ÿ™ }Õ5r"   c                ó(  — t        «       }|j                  dt        «       «      |j                  dt        «       d«      fD ]j  }t	        t
        |«       |j                  «       }t	        t        |«       | j                  |j                  d«       | j                  |j                  d«       Œl |j                  dt        «       «      }t	        t
        |«       |j                  «       }t	        t        |«       | j                  |j                  d«       y)a–  
        L{MemoryReactor.listenTCP}, L{MemoryReactor.listenSSL} and
        L{MemoryReactor.listenUNIX} will return an L{IListeningPort} whose
        C{getHost} method returns an L{IAddress}; C{listenTCP} and C{listenSSL}
        will have a default host of C{'0.0.0.0'}, and a port that reflects the
        value passed, and C{listenUNIX} will have a name that reflects the path
        passed.
        i2   Nz0.0.0.0s   /path/to/socket)r   Ú	listenTCPr   Ú	listenSSLr   r   rX   r   r<   rz   r{   Ú
listenUNIXr}   )r   rq   r{   rZ   s       r    Útest_listenDefaultHostz#ReactorTests.test_listenDefaultHostþ   sÖ   € ô &›ˆà×#Ñ# D¬'«)Ó4Ø×#Ñ# D¬'«)°TÓ:ð
ò 	1ˆDô œ¨Ô.Ø—l‘l“nˆGÜœ 7Ô+Ø×Ñ˜WŸ\™\¨9Ô5Ø×Ñ˜WŸ\™\¨4Õ0ð	1ð ×'Ñ'Ð(:¼G»IÓFˆÜ”^ TÔ*Ø—,‘,“.ˆÜ”X˜wÔ'Ø×Ñ˜Ÿ™Ð'9Õ:r"   c                ó  — t        «       }t        «       }|j                  |«       |j                  |«       | j                  |j	                  «       |g«       |j                  |«       | j                  |j	                  «       g «       y)z>
        Adding, removing, and listing readers works.
        N)r'   r   Ú	addReaderr<   Ú
getReadersÚremoveReader)r   ÚreaderÚreactors      r    Útest_readerszReactorTests.test_readers  óp   € ô “ˆÜ“/ˆà×Ñ˜&Ô!Ø×Ñ˜&Ô!à×Ñ˜×+Ñ+Ó-°¨xÔ8à×Ñ˜VÔ$à×Ñ˜×+Ñ+Ó-¨rÕ2r"   c                ó  — t        «       }t        «       }|j                  |«       |j                  |«       | j                  |j	                  «       |g«       |j                  |«       | j                  |j	                  «       g «       y)z>
        Adding, removing, and listing writers works.
        N)r'   r   Ú	addWriterr<   Ú
getWritersÚremoveWriter)r   ÚwriterrŠ   s      r    Útest_writerszReactorTests.test_writers'  rŒ   r"   Nrf   )
ri   rj   rk   rl   rr   ru   r   r„   r‹   r’   rm   r"   r    ro   ro   Î   s%   „ ñó2ó3ó6ó.;ó23ô 3r"   ro   c                  ó0   — e Zd ZdZdd„Zdd„Zdd„Zd	d„Zy)
ÚTestConsumerzP
    A very basic test consumer for use with the NonStreamingProducerTests.
    c                ó.   — g | _         d | _        d | _        y r   )Úwritesr*   ÚproducerStreamingr   s    r    Ú__init__zTestConsumer.__init__=  s   € Ø#%ˆŒØ $ˆŒØ.2ˆÕr"   c                ó    — || _         || _        y)z×
        Registers a single producer with this consumer. Just keeps track of it.

        @param producer: The producer to register.
        @param streaming: Whether the producer is a streaming one or not.
        N©r*   r—   r,   s      r    r(   zTestConsumer.registerProducerB  s   € ð !ˆŒØ!*ˆÕr"   c                ó    — d| _         d| _        y)zC
        Forget the producer we had previously registered.
        Nrš   r   s    r    r3   zTestConsumer.unregisterProducerL  s   € ð ˆŒØ!%ˆÕr"   c                ó:   — | j                   j                  |«       y)zz
        Some data was written to the consumer: stores it for later use.

        @param data: The data to write.
        N)r–   Úappend)r   Údatas     r    ÚwritezTestConsumer.writeS  s   € ð 	�‰×Ñ˜4Õ r"   Nrf   )r*   r'   r+   Úboolrg   rh   )rž   Úbytesrg   rh   )ri   rj   rk   rl   r˜   r(   r3   rŸ   rm   r"   r    r”   r”   8  s   „ ñó3ó
+ó&ô!r"   r”   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚNonStreamingProducerTestszF
    Tests for the L{NonStreamingProducer} to validate behaviour.
    c                óZ  — t        «       }t        |«      }|j                  |d«       | j                  |j                  |«       | j                  |j
                  |«       | j                  |j                  «       t        d«      D ]  }|j                  «        Œ g d¢}| j                  |j                  «       | j                  |j                  «       | j                  |j
                  «       | j                  |j                  |«       | j                  t        |j                  «       y)z�
        When the L{NonStreamingProducer} has resumeProducing called 10 times,
        it writes the counter each time and then fails.
        Fé
   )
ó   0ó   1ó   2ó   3ó   4ó   5ó   6ó   7ó   8ó   9N)r”   r   r(   r)   r*   ÚconsumerrT   r—   ÚrangerD   r4   r<   r–   r/   r0   )r   r°   r*   Ú_ÚexpectedWritess        r    Útest_producesOnly10Timesz2NonStreamingProducerTests.test_producesOnly10Timesa  sð   € ô
  “>ˆÜ'¨Ó1ˆØ×!Ñ! (¨EÔ2à�‰�h×'Ñ'¨Ô2Ø�‰�h×'Ñ'¨Ô2Ø×Ñ˜×3Ñ3Ô4ä�r“ò 	'ˆAØ×$Ñ$Õ&ð	'ò VˆØ×Ñ˜(×+Ñ+Ô,Ø×Ñ˜(×4Ñ4Ô5Ø×Ñ˜(×+Ñ+Ô,Ø×Ñ˜Ÿ™¨.Ô9ð 	×Ñœ,¨×(@Ñ(@ÕAr"   c                ó²   — t        «       }t        |«      }|j                  |d«       |j                  «        | j	                  t
        |j                  «       y)zb
        When the L{NonStreamingProducer} is paused, it raises a
        L{RuntimeError}.
        FN)r”   r   r(   rD   r/   r0   rA   )r   r°   r*   s      r    Útest_cannotPauseProductionz4NonStreamingProducerTests.test_cannotPauseProduction{  sI   € ô
  “>ˆÜ'¨Ó1ˆØ×!Ñ! (¨EÔ2ð 	× Ñ Ô"à×Ñœ,¨×(?Ñ(?Õ@r"   Nrf   )ri   rj   rk   rl   r´   r¶   rm   r"   r    r£   r£   \  s   „ ñóBô4Ar"   r£   c                  ó   — e Zd Zedd„«       Z y)Ú_SupportsNamec                 ó   — y r   rm   r   s    r    ri   z_SupportsName.__name__‹  s   € àr"   N)rg   Ústr)ri   rj   rk   Úpropertyrm   r"   r    r¸   r¸   Š  s   „ Øòó ñr"   r¸   c                  óˆ   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zy)ÚDeprecationTestsz8
    Deprecations in L{twisted.test.proto_helpers}.
    c                ó  — d|j                   › �}| j                  |g«      }| j                  t        |d   d   «       | j                  dt	        |«      «       | j                  ||d   d   «       | j                  |t        |«      «       y )Nztwisted.internet.testing.r   Úcategoryé   Úmessage)ri   ÚflushWarningsr<   ÚDeprecationWarningÚlenÚassertInr)   r   )r   ÚtestÚobjÚnew_pathÚwarningss        r    ÚhelperzDeprecationTests.helper•  s|   € Ø.¨s¯|©|¨nÐ=ˆØ×%Ñ% t fÓ-ˆØ×ÑÔ+¨X°a©[¸Ñ-DÔEØ×Ñ˜œC ›MÔ*Ø�‰�h ¨¡¨IÑ 6Ô7Ø�‰�cœ8 HÓ-Õ.r"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )ÚAccumulatingProtocol)Útwisted.test.proto_helpersrÌ   rÊ   Útest_accumulatingProtocol)r   rÌ   s     r    rÎ   z*DeprecationTests.test_accumulatingProtocol�  ó   € ÝCà�‰�D×2Ñ2Ð4HÕIr"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )ÚLineSendingProtocol)rÍ   rÑ   rÊ   Útest_lineSendingProtocol)r   rÑ   s     r    rÒ   z)DeprecationTests.test_lineSendingProtocol¢  s   € ÝBà�‰�D×1Ñ1Ð3FÕGr"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )ÚFakeDatagramTransport)rÍ   rÔ   rÊ   Útest_fakeDatagramTransport)r   rÔ   s     r    rÕ   z+DeprecationTests.test_fakeDatagramTransport§  s   € ÝDà�‰�D×3Ñ3Ð5JÕKr"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )r   )rÍ   r   rÊ   Útest_stringTransport)r   r   s     r    r×   z%DeprecationTests.test_stringTransport¬  s   € Ý>à�‰�D×-Ñ-¨Õ?r"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )Ú StringTransportWithDisconnection)rÍ   rÙ   rÊ   Ú%test_stringTransportWithDisconnection)r   rÙ   s     r    rÚ   z6DeprecationTests.test_stringTransportWithDisconnection±  s   € ÝOà�‰Ø×6Ñ6Ð8Xõ	
r"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )ÚStringIOWithoutClosing)rÍ   rÜ   rÊ   Útest_stringIOWithoutClosing)r   rÜ   s     r    rÝ   z,DeprecationTests.test_stringIOWithoutClosing¸  s   € ÝEà�‰�D×4Ñ4Ð6LÕMr"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )Ú_FakeConnector)rÍ   rß   rÊ   Útest__fakeConnector)r   rß   s     r    rà   z$DeprecationTests.test__fakeConnector½  s   € Ý=à�‰�D×,Ñ,¨nÕ=r"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )Ú	_FakePort)rÍ   râ   rÊ   Útest__fakePort)r   râ   s     r    rã   zDeprecationTests.test__fakePortÂ  s   € Ý8à�‰�D×'Ñ'¨Õ3r"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )r   )rÍ   r   rÊ   Útest_memoryReactor)r   r   s     r    rå   z#DeprecationTests.test_memoryReactorÇ  s   € Ý<à�‰�D×+Ñ+¨]Õ;r"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )ÚMemoryReactorClock)rÍ   rç   rÊ   Útest_memoryReactorClock)r   rç   s     r    rè   z(DeprecationTests.test_memoryReactorClockÌ  s   € ÝAà�‰�D×0Ñ0Ð2DÕEr"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )r   )rÍ   r   rÊ   Útest_raisingMemoryReactor)r   r   s     r    rê   z*DeprecationTests.test_raisingMemoryReactorÑ  rÏ   r"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )r   )rÍ   r   rÊ   Útest_nonStreamingProducer)r   r   s     r    rì   z*DeprecationTests.test_nonStreamingProducerÖ  rÏ   r"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )ÚwaitUntilAllDisconnected)rÍ   rî   rÊ   Útest_waitUntilAllDisconnected)r   rî   s     r    rï   z.DeprecationTests.test_waitUntilAllDisconnectedÛ  s   € ÝGà�‰�D×6Ñ6Ð8PÕQr"   c                óH   — ddl m} | j                  | j                  |«       y )Nr   )ÚEventLoggingObserver)rÍ   rñ   rÊ   Útest_eventLoggingObserver)r   rñ   s     r    rò   z*DeprecationTests.test_eventLoggingObserverà  rÏ   r"   N)rÆ   zCallable[..., object]rÇ   r¸   rg   rh   rf   )ri   rj   rk   rl   rÊ   rÎ   rÒ   rÕ   r×   rÚ   rÝ   rà   rã   rå   rè   rê   rì   rï   rò   rm   r"   r    r½   r½   �  s\   „ ñó/óJó
Hó
Ló
@ó

óNó
>ó
4ó
<ó
Fó
Jó
Jó
Rô
Jr"   r½   N)&rl   Ú
__future__r   Útypingr   Úzope.interface.verifyr   r   Útwisted.internet.addressr   Útwisted.internet.interfacesr   r	   r
   r   r   r   r   r   r   Útwisted.internet.protocolr   r   Útwisted.internet.testingr   r   r   r   Útwisted.python.reflectr   Útwisted.trial.unittestr   r   ro   r”   r£   r¸   r½   rm   r"   r    ú<module>rü      s•   ðñõ #å å .å å 0÷
÷ 
õ 
÷ =÷ó õ ,Ý +ôe4˜8ô e4ôPg3�8ô g3÷T!!ñ !!ôH+A ô +Aô\�Hô ôSJ�xõ SJr"   