+
    DfjA                    4   R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHtHtHtHtHtHtHtHt ^ RIHtHt ^ RIHtHtHtHt ^ R	IHt ^ R
IHt  ! R R]4      t  ! R R]4      t! ! R R4      t" ! R R]4      t# ! R R]4      t$ ! R R]4      t%R# )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                      ] tR t^&tRtR R ltR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR(tR)# )*StringTransportTestsz8
Tests for L{twisted.internet.testing.StringTransport}.
c                   V ^8  d   QhRR/#    returnNone )formats   "D/usr/lib/python3/dist-packages/twisted/internet/test/test_testing.py__annotate__!StringTransportTests.__annotate__+   s     + +t +    c                	$    \        4       V n        R # N)r   	transportselfs   &r!   setUpStringTransportTests.setUp+   s    (*r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#   .   s     A A Ar$   c                    V P                  \        \        V P                  4      4       V P                  \        \        V P                  4      4       V P                  \        \
        V P                  4      4       R# )zY
L{StringTransport} instances provide L{ITransport}, L{IPushProducer},
and L{IConsumer}.
N)
assertTruer   r   r'   r   r	   r(   s   &r!   test_interfaces$StringTransportTests.test_interfaces.   sI    
 	Z@A]DNNCDY?@r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#   7   s     	; 	;t 	;r$   c                    \        4       p\        4       pV P                  P                  W4       V P                  V P                  P                  V4       V P                  V P                  P
                  V4       R# )zb
L{StringTransport.registerProducer} records the arguments supplied to
it as instance attributes.
N)objectr'   registerProducerassertIsproducer	streamingr)   r6   r7   s   &  r!   test_registerProducer*StringTransportTests.test_registerProducer7   sT    
 8H	''<dnn--x8dnn..	:r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#   B   s     2 2 2r$   c                P   \        4       pV P                  P                  VR4       V P                  \        V P                  P                  \        4       R4       V P                  V P                  P                  V4       V P                  V P                  P                  4       R# )za
L{StringTransport.registerProducer} raises L{RuntimeError} if a
producer is already registered.
TFN)	r3   r'   r4   assertRaisesRuntimeErrorr5   r6   r.   r7   )r)   r6   s   & r!   test_disallowedRegisterProducer4StringTransportTests.test_disallowedRegisterProducerB   sr    
 8''$7$..9968U	
 	dnn--x8001r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#   O   s     2 2 2r$   c                   \        4       p\        4       pV P                  P                  VR4       V P                  P                  4        V P	                  V P                  P
                  4       V P                  P                  VR4       V P                  V P                  P
                  V4       V P                  V P                  P                  4       R# )z
L{StringTransport.unregisterProducer} causes the transport to forget
about the registered producer and makes it possible to register a new
one.
FTN)	r3   r'   r4   unregisterProducerassertIsNoner6   r5   r.   r7   )r)   oldProducernewProducers   &  r!   test_unregisterProducer,StringTransportTests.test_unregisterProducerO   s     hh''U;))+$..112''T:dnn--{;001r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#   ^   s     K K Kr$   c                Z    V P                  \        V P                  P                  4       R# )zh
L{StringTransport.unregisterProducer} raises L{RuntimeError} if called
when no producer is registered.
N)r=   r>   r'   rC   r(   s   &r!   test_invalidUnregisterProducer3StringTransportTests.test_invalidUnregisterProducer^   s    
 	,(I(IJr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#   e   s     D D4 Dr$   c                R    V P                  V P                  P                  R4       R# )z?
L{StringTransport.producerState} is initially C{'producing'}.
	producingN)assertEqualr'   producerStater(   s   &r!   test_initialProducerState.StringTransportTests.test_initialProducerStatee   s     	55{Cr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#   k   s     A AT Ar$   c                    V P                   P                  4        V P                  V P                   P                  R4       R# )za
L{StringTransport.pauseProducing} changes the C{producerState} of the
transport to C{'paused'}.
pausedN)r'   pauseProducingrP   rQ   r(   s   &r!   test_pauseProducing(StringTransportTests.test_pauseProducingk   s.    
 	%%'55x@r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#   s   s     D Dd Dr$   c                    V P                   P                  4        V P                   P                  4        V P                  V P                   P                  R4       R# )ze
L{StringTransport.resumeProducing} changes the C{producerState} of the
transport to C{'producing'}.
rO   N)r'   rW   resumeProducingrP   rQ   r(   s   &r!   test_resumeProducing)StringTransportTests.test_resumeProducings   s>    
 	%%'&&(55{Cr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#   |   s     B BD Br$   c                    V P                   P                  4        V P                  V P                   P                  R4       R# )zc
L{StringTransport.stopProducing} changes the C{'producerState'} of the
transport to C{'stopped'}.
stoppedN)r'   stopProducingrP   rQ   r(   s   &r!   test_stopProducing'StringTransportTests.test_stopProducing|   s.    
 	$$&55yAr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#      s     G G$ Gr$   c                    V P                   P                  4        V P                  \        V P                   P                  4       R# )z]
L{StringTransport.pauseProducing} raises L{RuntimeError} if the
transport has been stopped.
N)r'   rb   r=   r>   rW   r(   s   &r!    test_stoppedTransportCannotPause5StringTransportTests.test_stoppedTransportCannotPause   s.    
 	$$&,(E(EFr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#      s     H H4 Hr$   c                    V P                   P                  4        V P                  \        V P                   P                  4       R# )z^
L{StringTransport.resumeProducing} raises L{RuntimeError} if the
transport has been stopped.
N)r'   rb   r=   r>   r\   r(   s   &r!   !test_stoppedTransportCannotResume6StringTransportTests.test_stoppedTransportCannotResume   s.    
 	$$&,(F(FGr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#      s     G G Gr$   c                    V P                   P                  4        V P                  \        V P                   P                  4       R# )zb
L{StringTransport.pauseProducing} raises L{RuntimeError} if the
transport is being disconnected.
N)r'   loseConnectionr=   r>   rW   r(   s   &r!   &test_disconnectingTransportCannotPause;StringTransportTests.test_disconnectingTransportCannotPause   s.    
 	%%',(E(EFr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#      s     H H Hr$   c                    V P                   P                  4        V P                  \        V P                   P                  4       R# )zc
L{StringTransport.resumeProducing} raises L{RuntimeError} if the
transport is being disconnected.
N)r'   ro   r=   r>   r\   r(   s   &r!   'test_disconnectingTransportCannotResume<StringTransportTests.test_disconnectingTransportCannotResume   s.    
 	%%',(F(FGr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#      s     6 6d 6r$   c                    V P                  V P                  P                  4       V P                  P                  4        V P	                  V P                  P                  4       R# )z^
L{StringTransport.loseConnection} toggles the C{disconnecting} instance
variable to C{True}.
N)assertFalser'   disconnectingro   r.   r(   s   &r!   $test_loseConnectionSetsDisconnecting9StringTransportTests.test_loseConnectionSetsDisconnecting   sB    
 	556%%'445r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#      s     C C4 Cr$   c                l    \        4       pV P                  \        V4      P                  4       V4       R# )zu
If a host address is passed to L{StringTransport.__init__}, that
value is returned from L{StringTransport.getHost}.
N)r3   r5   r   getHostr)   addresss   & r!   test_specifiedHostAddress.StringTransportTests.test_specifiedHostAddress   s'    
 (og.668'Br$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#      s     O O4 Or$   c                n    \        4       pV P                  \        VR7      P                  4       V4       R# )zu
If a peer address is passed to L{StringTransport.__init__}, that
value is returned from L{StringTransport.getPeer}.
)peerAddressN)r3   r5   r   getPeerr   s   & r!   test_specifiedPeerAddress.StringTransportTests.test_specifiedPeerAddress   s'    
 (o':BBDgNr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#           4 4 4r$   c                b    \        4       P                  4       pV P                  V\        4       R# )z}
If no host address is passed to L{StringTransport.__init__}, an
L{IPv4Address} is returned from L{StringTransport.getHost}.
N)r   r~   assertIsInstancer   r   s   & r!   test_defaultHostAddress,StringTransportTests.test_defaultHostAddress   %    
 "#++-g{3r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r#      r   r$   c                b    \        4       P                  4       pV P                  V\        4       R# )z}
If no peer address is passed to L{StringTransport.__init__}, an
L{IPv4Address} is returned from L{StringTransport.getPeer}.
N)r   r   r   r   r   s   & r!   test_defaultPeerAddress,StringTransportTests.test_defaultPeerAddress   r   r$   )r'   N)__name__
__module____qualname____firstlineno____doc__r*   r/   r9   r?   rG   rK   rR   rX   r]   rc   rg   rk   rp   rt   rz   r   r   r   r   __static_attributes__r   r$   r!   r   r   &   sw    +A	;22KDADBGHGH6CO44 4r$   r   c                  b    ] tR t^tRtR R ltR R ltR R ltR R	 ltR
 R lt	R R lt
RtR# )ReactorTestsz9
Tests for L{MemoryReactor} and L{RaisingMemoryReactor}.
c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   ReactorTests.__annotate__   s     2 2D 2r$   c                z    \        4       p\        \        V4       \        \        V4       \        \        V4       R# )z\
L{MemoryReactor} provides all of the attributes described by the
interfaces it advertises.
N)r   r   r   r   r   )r)   memoryReactors   & r!   test_memoryReactorProvides'ReactorTests.test_memoryReactorProvides   s)    
 &[-0[-0\=1r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r      s     3 3T 3r$   c                z    \        4       p\        \        V4       \        \        V4       \        \        V4       R# )zc
L{RaisingMemoryReactor} provides all of the attributes described by the
interfaces it advertises.
N)r   r   r   r   r   )r)   raisingReactors   & r!   test_raisingReactorProvides(ReactorTests.test_raisingReactorProvides   s*    
 ./[.1[.1\>2r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r      s     6 6 6r$   c                2   \        4       pVP                  RR\        4       4      VP                  RR\        4       R4      3 Fk  p\	        \
        V4       VP                  4       p\	        \        V4       V P                  VP                  R4       V P                  VP                  R4       Km  	  VP                  R\        4       4      p\	        \
        V4       VP                  4       p\	        \        V4       V P                  VP                  R4       R# )z
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   rP   hostportconnectUNIXname)r)   r   	connectorr   s   &   r!   test_connectDestination$ReactorTests.test_connectDestination   s     &$$%7}O$$%7}PTU
I Y/..0G7+W\\+=>W\\40
 "--m]_M	Z+**,Xw'}5r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r      s     ; ; ;r$   c                .   \        4       pVP                  R\        4       4      VP                  R\        4       R4      3 Fk  p\	        \
        V4       VP                  4       p\	        \        V4       V P                  VP                  R4       V P                  VP                  R4       Km  	  VP                  R\        4       4      p\	        \
        V4       VP                  4       p\	        \        V4       V P                  VP                  R4       R# )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
   r~   r   rP   r   r   
listenUNIXr   )r)   r   r   r   s   &   r!   test_listenDefaultHost#ReactorTests.test_listenDefaultHost   s     &##D')4##D')T:
D .llnG7+W\\95W\\40
 ''(:GIF^T*,,.Xw''9:r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r          3 3d 3r$   c                   \        4       p\        4       pVP                  V4       VP                  V4       V P                  VP	                  4       V.4       VP                  V4       V P                  VP	                  4       . 4       R# )z.
Adding, removing, and listing readers works.
N)r3   r   	addReaderrP   
getReadersremoveReader)r)   readerreactors   &  r!   test_readersReactorTests.test_readers  p     /&!&!++-x8V$++-r2r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r   '  r   r$   c                   \        4       p\        4       pVP                  V4       VP                  V4       V P                  VP	                  4       V.4       VP                  V4       V P                  VP	                  4       . 4       R# )z.
Adding, removing, and listing writers works.
N)r3   r   	addWriterrP   
getWritersremoveWriter)r)   writerr   s   &  r!   test_writersReactorTests.test_writers'  r   r$   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r$   r!   r   r      s*    236.;23 3 3r$   r   c                  J    ] tR tRtRtR R ltR R ltR R ltR	 R
 ltRt	R# )TestConsumeri8  zH
A very basic test consumer for use with the NonStreamingProducerTests.
c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   TestConsumer.__annotate__=  s     3 3$ 3r$   c                	0    . V n         R V n        R V n        R # r&   )writesr6   producerStreamingr(   s   &r!   __init__TestConsumer.__init__=  s    #% $.2r$   c               $    V ^8  d   QhRRRRRR/# )r   r6   r3   r7   boolr   r   r   )r    s   "r!   r"   r   B  s!     + + +D +T +r$   c                    Wn         W n        R# )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r6   r   r8   s   &&&r!   r4   TestConsumer.registerProducerB  s     !!*r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r   L  s     & &D &r$   c                "    RV n         RV n        R# )z3
Forget the producer we had previously registered.
Nr   r(   s   &r!   rC   TestConsumer.unregisterProducerL  s     !%r$   c                    V ^8  d   QhRRRR/# )r   databytesr   r   r   )r    s   "r!   r"   r   S  s     ! !% !D !r$   c                <    V P                   P                  V4       R# )zb
Some data was written to the consumer: stores it for later use.

@param data: The data to write.
N)r   append)r)   r   s   &&r!   writeTestConsumer.writeS  s     	4 r$   )r6   r   r   N)
r   r   r   r   r   r   r4   rC   r   r   r   r$   r!   r   r   8  s     3
+&! !r$   r   c                  2    ] tR tRtRtR R ltR R ltRtR# )	NonStreamingProducerTestsi\  z>
Tests for the L{NonStreamingProducer} to validate behaviour.
c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   &NonStreamingProducerTests.__annotate__a  s     B B$ Br$   c                `   \        4       p\        V4      pVP                  VR4       V P                  VP                  V4       V P                  VP
                  V4       V P                  VP                  4       \        ^
4       F  pVP                  4        K  	  . ROpV P                  VP                  4       V P                  VP                  4       V P                  VP
                  4       V P                  VP                  V4       V P                  \        VP                  4       R# )zw
When the L{NonStreamingProducer} has resumeProducing called 10 times,
it writes the counter each time and then fails.
FN)
   0   1   2   3   4   5   6   7   8   9)r   r   r4   r5   r6   consumerrx   r   ranger\   rD   rP   r   r=   r>   )r)   r   r6   _expectedWritess   &    r!   test_producesOnly10Times2NonStreamingProducerTests.test_producesOnly10Timesa  s    
  >'1!!(E2h''2h''2334rA$$&  V(++,(445(++,.9 	,(@(@Ar$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r   {  s     A AD Ar$   c                    \        4       p\        V4      pVP                  VR4       VP                  4        V P	                  \
        VP                  4       R# )zJ
When the L{NonStreamingProducer} is paused, it raises a
L{RuntimeError}.
FN)r   r   r4   r\   r=   r>   rW   )r)   r   r6   s   &  r!   test_cannotPauseProduction4NonStreamingProducerTests.test_cannotPauseProduction{  sI    
  >'1!!(E2 	  ",(?(?@r$   r   N)r   r   r   r   r   r   r   r   r   r$   r!   r   r   \  s    B4A Ar$   r   c                  ,    ] tR tRt]R R l4       t RtR# )_SupportsNamei  c                   V ^8  d   QhRR/# )r   r   strr   )r    s   "r!   r"   _SupportsName.__annotate__  s      # r$   c                	    R # r&   r   r(   s   &r!   r   _SupportsName.__name__  s    r$   r   N)r   r   r   r   propertyr   r   r$   r!   r   r     s     r$   r   c                      ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR!tR"# )#DeprecationTestsi  z0
Deprecations in L{twisted.test.proto_helpers}.
c               $    V ^8  d   QhRRRRRR/# )r   testzCallable[..., object]objr   r   r   r   )r    s   "r!   r"   DeprecationTests.__annotate__  s"     / /0 /} / /r$   c                	:   R VP                    2pV P                  V.4      pV P                  \        V^ ,          R,          4       V P                  ^\	        V4      4       V P                  W4^ ,          R,          4       V P                  V\        V4      4       R# )ztwisted.internet.testing.categorymessageN)r   flushWarningsrP   DeprecationWarninglenassertInr5   r   )r)   r	  r
  new_pathwarningss   &&&  r!   helperDeprecationTests.helper  sz    .s||n=%%tf-+Xa[-DECM*hI 67c8H-.r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r         J J4 Jr$   c                	J    ^ RI Hp V P                  V P                  V4       R# )    )AccumulatingProtocolN)twisted.test.proto_helpersr  r  test_accumulatingProtocol)r)   r  s   & r!   r  *DeprecationTests.test_accumulatingProtocol      CD224HIr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     H H$ Hr$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )LineSendingProtocolN)r  r"  r  test_lineSendingProtocol)r)   r"  s   & r!   r#  )DeprecationTests.test_lineSendingProtocol  s    BD113FGr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     L LD Lr$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )FakeDatagramTransportN)r  r'  r  test_fakeDatagramTransport)r)   r'  s   & r!   r(  +DeprecationTests.test_fakeDatagramTransport  s    DD335JKr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     @ @d @r$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )r   N)r  r   r  test_stringTransport)r)   r   s   & r!   r,  %DeprecationTests.test_stringTransport  s    >D--?r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     
 
t 
r$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  ) StringTransportWithDisconnectionN)r  r0  r  %test_stringTransportWithDisconnection)r)   r0  s   & r!   r1  6DeprecationTests.test_stringTransportWithDisconnection  s    O668X	
r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     N NT Nr$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )StringIOWithoutClosingN)r  r5  r  test_stringIOWithoutClosing)r)   r5  s   & r!   r6  ,DeprecationTests.test_stringIOWithoutClosing  s    ED446LMr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     > >T >r$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )_FakeConnectorN)r  r:  r  test__fakeConnector)r)   r:  s   & r!   r;  $DeprecationTests.test__fakeConnector  s    =D,,n=r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     4 4 4r$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )	_FakePortN)r  r?  r  test__fakePort)r)   r?  s   & r!   r@  DeprecationTests.test__fakePort  s    8D''3r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     < <D <r$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )r   N)r  r   r  test_memoryReactor)r)   r   s   & r!   rD  #DeprecationTests.test_memoryReactor  s    <D++];r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     F F Fr$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )MemoryReactorClockN)r  rH  r  test_memoryReactorClock)r)   rH  s   & r!   rI  (DeprecationTests.test_memoryReactorClock  s    AD002DEr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    r  r$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )r   N)r  r   r  test_raisingMemoryReactor)r)   r   s   & r!   rM  *DeprecationTests.test_raisingMemoryReactor  r  r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    r  r$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )r   N)r  r   r  test_nonStreamingProducer)r)   r   s   & r!   rQ  *DeprecationTests.test_nonStreamingProducer  r  r$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    s     R Rt Rr$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )waitUntilAllDisconnectedN)r  rU  r  test_waitUntilAllDisconnected)r)   rU  s   & r!   rV  .DeprecationTests.test_waitUntilAllDisconnected  s    GD668PQr$   c                   V ^8  d   QhRR/# r   r   )r    s   "r!   r"   r    r  r$   c                	J    ^ RI Hp V P                  V P                  V4       R# )r  )EventLoggingObserverN)r  rZ  r  test_eventLoggingObserver)r)   rZ  s   & r!   r[  *DeprecationTests.test_eventLoggingObserver  r  r$   r   N)r   r   r   r   r   r  r  r#  r(  r,  r1  r6  r;  r@  rD  rI  rM  rQ  rV  r[  r   r   r$   r!   r  r    sb    /J
H
L
@

N
>
4
<
F
J
J
R
J Jr$   r  N)&r   
__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   r   r   r   r   r  r   r$   r!   <module>rf     s    #  .  0
 
 
 =  , +e48 e4Pg38 g3T!! !!H+A +A\H SJx SJr$   