
    daf                         d Z ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	 ddl
Z
ddlmZ 	 ddlZddlZddlmZ d Z G d dej(                        Zed	k(  r ej.                          yy# e$ r dZY Cw xY w)
zTests for streams.py.    N)mock)socket_helper)utilsc                  .    t        j                  d        y N)asyncioset_event_loop_policy     9/root/Python-3.12.4/Lib/test/test_asyncio/test_streams.pytearDownModuler      s    !!$'r   c                   *    e Zd ZdZ fdZ fdZd Zd Zej                  d        Z
d Z ej                  edu d	      d
        Zej                   ej                  edu d	      d               Zd Zd Zej                  d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d  Z%d! Z&d" Z'd# Z(d$ Z)d% Z*d& Z+d' Z,d( Z-d) Z.d* Z/d+ Z0d, Z1d- Z2d. Z3d/ Z4ej                  d0        Z5 ej                  edu d	      d1        Z6 ej                  e7jp                  d2k(  d3      d4        Z9d5 Z:d6 Z;d7 Z<d8 Z=d9 Z>d: Z?d; Z@d< ZAd= ZBd> ZCd? ZDd@ ZEdA ZFdB ZGdC ZHdD ZIdE ZJdF ZKdG ZLdH ZMdI ZNdJ ZOdK ZPdL ZQdM ZRdN ZSdO ZT xZUS )PStreamTestss   line1
line2
line3
c                     t         |           t        j                         | _        | j                  | j                         y r   )supersetUpr   new_event_looploopset_event_loopself	__class__s    r   r   zStreamTests.setUp   s.    **,	DII&r   c                 `    t        j                  | j                         t        |           y r   )
test_utilsrun_brieflyr   r   tearDownr   s    r   r   zStreamTests.tearDown$   s"    tyy) 	r   c                    g | j                   j                  fd       | j                   j                  |      \  }}|j                  d       |j	                         }| j                   j                  |      }| j                  |d       |j                         }| j                   j                  |      }| j                  |j                  d             |j                          | j                  g        y )Nc                 &    j                  |      S r   appendr   ctxmessagess     r   <lambda>z7StreamTests._basetest_open_connection.<locals>.<lambda>-       (//#:N r      GET / HTTP/1.0

   HTTP/1.0 200 OK
   

Test message)
r   set_exception_handlerrun_until_completewritereadlineassertEqualread
assertTrueendswithcloser   open_connection_futreaderwriterfdatar#   s         @r   _basetest_open_connectionz%StreamTests._basetest_open_connection+   s    		''(NO556IJ./OOyy++A.56KKMyy++A.&=>?2&r   c                     t        j                         5 }t        j                  |j                   }| j                  |       d d d        y # 1 sw Y   y xY wr   )r   run_test_serverr   open_connectionaddressr8   r   httpdconn_futs      r   test_open_connectionz StreamTests.test_open_connection9   sG    '') 	5U..>H**84	5 	5 	5   .AAc                     t        j                         5 }t        j                  |j                        }| j                  |       d d d        y # 1 sw Y   y xY wr   )r   run_test_unix_serverr   open_unix_connectionr<   r8   r=   s      r   test_open_unix_connectionz%StreamTests.test_open_unix_connection>   sG    ,,. 	5%33EMMBH**84	5 	5 	5   1AAc                    g | j                   j                  fd       	 | j                   j                  |      \  }}t        j                  d        |j                  d       |j                         }| j                   j                  |      }| j                  |j                  d             |j                          | j                  g        y # t        j                  d        w xY w)Nc                 &    j                  |      S r   r   r!   s     r   r$   zCStreamTests._basetest_open_connection_no_loop_ssl.<locals>.<lambda>F   r%   r   r&   r(   )r   r)   r*   r   r   r+   r.   r/   r0   r1   r-   r2   s         @r   %_basetest_open_connection_no_loop_sslz1StreamTests._basetest_open_connection_no_loop_sslD   s    		''(NO	)!YY99:MNNFF""4(./KKMyy++A.&=>?2& ""4(s   C C,NzNo ssl modulec                     t        j                  d      5 }t        j                  |j                  dt        j
                         i}| j                  |       d d d        y # 1 sw Y   y xY w)NTuse_sslssl)r   r:   r   r;   r<   dummy_ssl_contextrI   r=   s      r    test_open_connection_no_loop_sslz,StreamTests.test_open_connection_no_loop_sslS   sc    ''5 	A..40024H 66x@	A 	A 	As   AA##A,c                     t        j                  d      5 }t        j                  |j                  t        j
                         d      }| j                  |       d d d        y # 1 sw Y   y xY w)NTrK    )rM   server_hostname)r   rC   r   rD   r<   rN   rI   r=   s      r   %test_open_unix_connection_no_loop_sslz1StreamTests.test_open_unix_connection_no_loop_ssl\   sc     ,,T: 	Ae33002 "H 66x@	A 	A 	As   AA&&A/c                    g | j                   j                  fd       | j                   j                  |      \  }}|j                  j	                  t                      |j                         }| j                  t
              5  | j                   j                  |       d d d        |j                          t        j                  | j                          | j                  g        y # 1 sw Y   KxY w)Nc                 &    j                  |      S r   r   r!   s     r   r$   z=StreamTests._basetest_open_connection_error.<locals>.<lambda>j   r%   r   )r   r)   r*   	_protocolconnection_lostZeroDivisionErrorr.   assertRaisesr1   r   r   r-   )r   r3   r4   r5   r6   r#   s        @r   _basetest_open_connection_errorz+StreamTests._basetest_open_connection_errorh   s    		''(NO556IJ(():)<=KKM01 	,II((+	,tyy)2&		, 	,s   C..C7c                     t        j                         5 }t        j                  |j                   }| j                  |       d d d        y # 1 sw Y   y xY wr   )r   r:   r   r;   r<   rZ   r=   s      r   test_open_connection_errorz&StreamTests.test_open_connection_errort   sG    '') 	;U..>H00:	; 	; 	;rA   c                     t        j                         5 }t        j                  |j                        }| j                  |       d d d        y # 1 sw Y   y xY wr   )r   rC   r   rD   r<   rZ   r=   s      r   test_open_unix_connection_errorz+StreamTests.test_open_unix_connection_errory   sG    ,,. 	;%33EMMBH00:	; 	; 	;rF   c                     t        j                  | j                        }|j                  d       | j	                  d|j
                         y Nr   r   )r   StreamReaderr   	feed_datar-   _bufferr   streams     r   test_feed_empty_dataz StreamTests.test_feed_empty_data   s8    %%4995fnn-r   c                     t        j                  | j                        }|j                  | j                         | j                  | j                  |j                         y Nra   )r   rb   r   rc   DATAr-   rd   re   s     r   test_feed_nonempty_dataz#StreamTests.test_feed_nonempty_data   s@    %%4995#FNN3r   c                 >   t        j                  | j                        }|j                  | j                         | j                  j                  |j                  d            }| j                  d|       | j                  | j                  |j                         y )Nra   r   r   )	r   rb   r   rc   rj   r*   r.   r-   rd   r   rf   r7   s      r   test_read_zerozStreamTests.test_read_zero   sl    %%4995#yy++FKKN;d#FNN3r   c                     t        j                   j                         j                  j                  j	                  d            } fd} j                  j                  |        j                  j                  |      } j                   j                  |        j                  dj                         y )Nra      c                  <    j                   j                         y r   rc   rj   re   s   r   cbz!StreamTests.test_read.<locals>.cb   s    TYY'r   r   )
r   rb   r   create_taskr.   	call_soonr*   r-   rj   rd   r   	read_taskrs   r7   rf   s   `   @r   	test_readzStreamTests.test_read   s    %%4995II))&++b/:		(		Byy++I6D)fnn-r   c                 8   t        j                  | j                        }|j                  d       |j                  d       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         y )Nra   s   line1s   line2   r   rb   r   rc   r*   r.   r-   rd   rm   s      r   test_read_line_breaksz!StreamTests.test_read_line_breaks   sr    %%4995""yy++FKKN;4(6>>2r   c                 l   t        j                  | j                        | j                  j                  j	                  d            }fd}| j                  j                  |       | j                  j                  |      }| j                  d|       | j                  dj                         y )Nra   i   c                  &     j                          y r   )feed_eofrf   s   r   rs   z%StreamTests.test_read_eof.<locals>.cb   s    OOr   r   	r   rb   r   rt   r.   ru   r*   r-   rd   rv   s       @r   test_read_eofzStreamTests.test_read_eof   s    %%4995II))&++d*;<				Byy++I6d#fnn-r   c                 l   t        j                  | j                        | j                  j                  j	                  d            }fd}| j                  j                  |       | j                  j                  |      }| j                  d|       | j                  dj                         y )Nra   c                  j     j                  d        j                  d        j                          y )Ns   chunk1
   chunk2rc   r   r   s   r   rs   z+StreamTests.test_read_until_eof.<locals>.cb   s)    [)Y'OOr   s   chunk1
chunk2r   r   rv   s       @r   test_read_until_eofzStreamTests.test_read_until_eof   s    %%4995II))&++b/:		 			Byy++I6*D1fnn-r   c                    t        j                  | j                        }|j                  d       | j                  j	                  |j                  d            }| j                  d|       |j                  t                      | j                  t        | j                  j                  |j                  d             y Nra      line
      li)
r   rb   r   rc   r*   r.   r-   set_exception
ValueErrorrY   rm   s      r   test_read_exceptionzStreamTests.test_read_exception   s    %%4995#yy++FKKN;%Z\*		44fkk!n	Fr   c                 4   | j                  t        d      5  t        j                  d| j                         d d d        | j                  t        d      5  t        j                  d| j                         d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nimitr   limitr   r   )assertRaisesRegexr   r   rb   r   r   s    r   test_invalid_limitzStreamTests.test_invalid_limit   s{    ##J7 	:  qtyy9	: ##J7 	;  r		:	; 	;	: 	:	; 	;s   "B"BBBc                    t        j                  d| j                        }|j                  d       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         y N   r   s   chunkrz   r   r{   rm   s      r   test_read_limitzStreamTests.test_read_limit   sf    %%ADII>"yy++FKKN;4(fnn-r   c                    t        j                  | j                        j                  d       | j                  j	                  j                               }fd}| j                  j                  |       | j                  j                  |      }| j                  d|       | j                  dj                         y )Nra   s   chunk1 c                  l     j                  d        j                  d        j                  d       y )Ns   chunk2 s   chunk3 s   
 chunk4)rc   r   s   r   rs   z%StreamTests.test_readline.<locals>.cb   s-    Z(Z(\*r   s   chunk1 chunk2 chunk3 
s    chunk4)
r   rb   r   rc   rt   r,   ru   r*   r-   rd   )r   rw   rs   linerf   s       @r   test_readlinezStreamTests.test_readline   s     %%4995$II))&//*;<		+ 			Byy++I63T:V^^4r   c                    t        j                  d| j                        }|j                  d       |j                  d       | j	                  t
        | j                  j                  |j                                | j                  d|j                         t        j                  d| j                        }|j                  d       |j                  d       |j                  d       | j	                  t
        | j                  j                  |j                                | j                  d|j                         y )Nr   r   r   s
   ne1
line2
s   line2
s   ne1r   )
r   rb   r   rc   rY   r   r*   r,   r-   rd   re   s     r   &test_readline_limit_with_existing_dataz2StreamTests.test_readline_limit_with_existing_data   s     %%ADII>)		44foo6G	I 	V^^4%%ADII> 		44foo6G	I 	fnn-r   c                 D   t        j                  | j                        }| j                  |j	                                |j                  d       | j                  |j	                                | j                  j                  |j                                | j                  |j	                                |j                  d       |j                          | j                  j                  |j                                | j                  |j	                                y )Nra   s
   some data
)
r   rb   r   assertFalseat_eofrc   r*   r,   r   r/   re   s     r   test_at_eofzStreamTests.test_at_eof  s    %%4995)()		$$V__%67)(		$$V__%67(r   c                 p   t        j                  d| j                        fd}| j                  j                  |       | j	                  t
        | j                  j                  j                                | j                  dj                         t        j                  d| j                        fd}| j                  j                  |       | j	                  t
        | j                  j                  j                                | j                  dj                         t        j                  d| j                        j                  d       | j                  j                  j                               }| j                  d|       | j                  dj                         j                  d       | j	                  t
              5 }| j                  j                  j                                d d d        | j                  dj                         j                  d	       | j	                  t
              5 }| j                  j                  j                                d d d        | j                  dj                         y # 1 sw Y   xY w# 1 sw Y   2xY w)
N   r   c                       j                  d        j                  d        j                  d        j                          y )N   chunk1r      chunk3
r   r   s   r   rs   z+StreamTests.test_readline_limit.<locals>.cb"  s7    Y'Y'[)OOr   r   c                       j                  d        j                  d        j                  d        j                          y )Nr   s   chunk2
r   r   r   s   r   rs   z+StreamTests.test_readline_limit.<locals>.cb0  s7    Y'[)[)OOr   r   s   1234567
s	   12345678
s   12345678)r   rb   r   ru   rY   r   r*   r,   r-   rd   rc   )r   rs   r   cmrf   s       @r   test_readline_limitzStreamTests.test_readline_limit  s     %%ADII>	
 			B		44foo6G	I 	fnn-%%ADII>	
 			B		44foo6G	Ifnn5 %%ADII>&yy++FOO,=>t,fnn-'z* 	<bII(():;	<fnn-%z* 	<bII(():;	<fnn-	< 	<
	< 	<s   *J *J, J),J5c                 j   t        j                  | j                        }|j                  | j                  d d        |j                  | j                  dd         | j                  j                  |j                               }| j                  d|       | j                  d|j                         y )Nra      s   line1
s   line2
line3
)	r   rb   r   rc   rj   r*   r,   r-   rd   r   rf   r   s      r   test_readline_nolimit_nowaitz(StreamTests.test_readline_nolimit_nowaitL  s     %%49952A'12'yy++FOO,=>T**FNN;r   c                     t        j                  | j                        }|j                  d       |j	                          | j                  j                  |j                               }| j                  d|       y )Nra   s	   some data)r   rb   r   rc   r   r*   r,   r-   r   s      r   test_readline_eofzStreamTests.test_readline_eofX  sY    %%4995&yy++FOO,=>t,r   c                     t        j                  | j                        }|j                          | j                  j	                  |j                               }| j                  d|       y r`   )r   rb   r   r   r*   r,   r-   r   s      r   test_readline_empty_eofz#StreamTests.test_readline_empty_eof`  sK    %%4995yy++FOO,=>d#r   c                 |   t        j                  | j                        }|j                  | j                         | j                  j                  |j                                | j                  j                  |j                  d            }| j                  d|       | j                  d|j                         y )Nra   r   s   line2
ls   ine3
)
r   rb   r   rc   rj   r*   r,   r.   r-   rd   rm   s      r   test_readline_read_byte_countz)StreamTests.test_readline_read_byte_countg  s    %%4995#		$$V__%67yy++FKKN;d+FNN3r   c                    t        j                  | j                        }|j                  d       | j                  j	                  |j                               }| j                  d|       |j                  t                      | j                  t        | j                  j                  |j                                | j                  d|j                         y )Nra   r   r   )r   rb   r   rc   r*   r,   r-   r   r   rY   rd   rm   s      r   test_readline_exceptionz#StreamTests.test_readline_exceptionr  s    %%4995#yy++FOO,=>D)Z\*		44foo6G	Ifnn-r   c                     t        j                  | j                        }| j                  t        d      5  | j                  j                  |j                  d             d d d        y # 1 sw Y   y xY w)Nra   zSeparator should ber   	separator)r   rb   r   r   r   r*   	readuntilre   s     r   test_readuntil_separatorz$StreamTests.test_readuntil_separator~  s`    %%4995##J0EF 	JII(()9)9C)9)HI	J 	J 	Js   ,A,,A5c                    t        j                  | j                        }|j                  d       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         |j                  d       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         |j                  d       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         y )Nra   s   lineAAA   AAAr   r   s
   lineAAAxxxs   xxxr   rb   r   rc   r*   r   r-   rd   rm   s      r   test_readuntil_multi_chunksz'StreamTests.test_readuntil_multi_chunks  s   %%4995$yy++F,<,<v,<,NOT*fnn-$yy++F,<,<V,DET*fnn-'yy++F,<,<V,DET*0r   c                 L   t        j                  | j                        }|j                  d       |j                  d       |j                  d       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         |j                  d       |j                  d       |j                  d	       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         |j                  d       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         |j                  d
       | j                  j	                  |j                  d            }| j                  d
|       | j                  d|j                         |j                  d       |j                  d       |j                  d       |j                  d       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         y )Nra   s   QWEaas   XYaa   as   aaas
   QWEaaXYaaar   s   XYas   aas   Xaaas   XXXs   XXXaaar   rm   s      r   test_readuntil_multi_chunks_1z)StreamTests.test_readuntil_multi_chunks_1  s   %%4995"!yy++F,<,<V,DE-fnn-" yy++F,<,<V,DE-fnn- yy++F,<,<V,DE&fnn-!yy++F,<,<V,DE$'fnn- yy++F,<,<V,DED)fnn-r   c                    t        j                  | j                        }d}|j                  |       |j	                          | j                  t         j                  d      5 }| j                  j                  |j                  d             d d d        | j                  j                  j                  |       | j                  |j                  j                         | j                  d|j                         y # 1 sw Y   qxY w)Nra      some dataAAzundefined expected bytesr   r   )r   rb   r   rc   r   r   IncompleteReadErrorr*   r   r-   	exceptionpartialassertIsNoneexpectedrd   )r   rf   r7   r   s       r   test_readuntil_eofzStreamTests.test_readuntil_eof  s    %%4995##G$?$?$>@ 	CCEII(()9)9&)AB	C 	--t4",,//0fnn-	C 	Cs   $+C??Dc                 v   t        j                  | j                  d      }|j                  d       | j	                  t         j
                  d      5 }| j                  j                  |j                  d             d d d        | j                  d|j                         |j                  d       | j	                  t         j
                  d      5 }| j                  j                  |j                  d             d d d        | j                  d|j                         y # 1 sw Y   xY w# 1 sw Y   2xY w)	Nr   r   r   r   z	not foundr      Azis founds   some dataAAA)
r   rb   r   rc   r   LimitOverrunErrorr*   r   r-   rd   )r   rf   r   s      r   test_readuntil_limit_found_sepz*StreamTests.test_readuntil_limit_found_sep  s   %%499A>(##G$=$=$/1 	C46II(()9)9&)AB	C 	8##G$=$=$.0 	C35II(()9)9&)AB	C 	&..9	C 	C	C 	Cs   +D#+D/#D,/D8c                 4   t        j                  | j                        }|j                  | j                         | j                  j                  |j                  d            }| j                  d|       | j                  | j                  |j                         | j                  t        d      5  | j                  j                  |j                  d             d d d        | j                  | j                  |j                         y # 1 sw Y   0xY w)Nra   r   r   zless than zeror   )r   rb   r   rc   rj   r*   readexactlyr-   rd   r   r   rm   s      r   test_readexactly_zero_or_lessz)StreamTests.test_readexactly_zero_or_less  s    %%4995#yy++F,>,>q,ABd#FNN3##J0@A 	AII((););B)?@	AFNN3	A 	As   4+DDc                     t        j                   j                        dt         j                        z  } j                  j                  j                  |            } fd} j                  j                  |        j                  j                  |      } j                   j                   j                  z   |        j                   j                  j                         y )Nra   r   c                      j                   j                         j                   j                         j                   j                         y r   rr   re   s   r   rs   z(StreamTests.test_readexactly.<locals>.cb  s9    TYY'TYY'TYY'r   )r   rb   r   lenrj   rt   r   ru   r*   r-   rd   )r   nrw   rs   r7   rf   s   `    @r   test_readexactlyzStreamTests.test_readexactly  s    %%4995DIIII))&*<*<Q*?@		( 			Byy++I6TYY.5FNN3r   c                    t        j                  d| j                        }|j                  d       | j                  j	                  |j                  d            }| j                  d|       | j                  d|j                         y r   )r   rb   r   rc   r*   r   r-   rd   rm   s      r   test_readexactly_limitz"StreamTests.test_readexactly_limit  si    %%ADII>"yy++F,>,>q,AB4(fnn-r   c                     t        j                   j                        dt         j                        z  } j                  j                  j                  |            } fd} j                  j                  |        j                  t         j                        5 } j                  j                  |       d d d         j                  j                  j                   j                          j                  |j                  j                  |        j                  t        |j                        d        j                  dj                          y # 1 sw Y   xY w)Nra   r   c                  \    j                   j                         j                          y r   )rc   rj   r   re   s   r   rs   z,StreamTests.test_readexactly_eof.<locals>.cb   s    TYY'OOr   z-18 bytes read on a total of 36 expected bytesr   )r   rb   r   r   rj   rt   r   ru   rY   r   r*   r-   r   r   r   strrd   )r   r   rw   rs   r   rf   s   `    @r   test_readexactly_eofz StreamTests.test_readexactly_eof  s   %%4995DIIII))&*<*<Q*?@		 			Bw::; 	4rII((3	4--tyy9..2R\\*H	Jfnn-	4 	4s   %E!!E*c                    t        j                  | j                        }|j                  d       | j                  j	                  |j                  d            }| j                  d|       |j                  t                      | j                  t        | j                  j                  |j                  d             y r   )
r   rb   r   rc   r*   r   r-   r   r   rY   rm   s      r   test_readexactly_exceptionz&StreamTests.test_readexactly_exception  s    %%4995#yy++F,>,>q,AB%Z\*		44f6H6H6K	Mr   c                     t        j                  | j                        }| j                  |j	                                t               }|j                  |       | j                  |j	                         |       y ri   )r   rb   r   r   r   r   r   assertIsr   rf   excs      r   test_exceptionzStreamTests.test_exception  sY    %%4995&**,-lS!f&&(#.r   c                    t        j                  | j                        fd}| j                  j                  j	                               }| j                  j                   |             }| j                  j                  t        j                  ||g             | j                  t        |j                         y )Nra   c                  @   K    j                  t                      y wr   )r   r   r   s   r   set_errz2StreamTests.test_exception_waiter.<locals>.set_err#  s       .s   )
r   rb   r   rt   r,   r*   waitrY   r   result)r   r   t1t2rf   s       @r   test_exception_waiterz!StreamTests.test_exception_waiter   s    %%4995	/ YY""6??#45YY""79-		$$W\\2r(%;<*bii0r   c                    t        j                  | j                        }| j                  j                  |j	                               }t        j                  | j                         |j                          t        j                  | j                         |j                  t        d             t        j                  | j                         | j                  |j                  d        y )Nra   message)r   rb   r   rt   r,   r   r   cancelr   RuntimeErrorr   _waiter)r   rf   ts      r   test_exception_cancelz!StreamTests.test_exception_cancel-  s    %%4995II!!&//"34tyy)	
tyy)\)45tyy)fnnd+r   c                 |    G d d      }d }g | j                   j                  fd        || j                         }|j                         }| j                   j                  | j                   j	                   ||                  }|j                          | j                  |d        || j                         }|j                         }| j                   j                  | j                   j	                   ||                  }|j                          | j                  |d       | j                  g        y )Nc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)/StreamTests.test_start_server.<locals>.MyServerc                      d | _         || _        y r   serverr   r   r   s     r   __init__z8StreamTests.test_start_server.<locals>.MyServer.__init__=      " 	r   c                    K   |j                          d {   }|j                  |       |j                          d {    |j                          |j	                          d {    y 7 V7 /7 	wr   r,   r+   drainr1   wait_closedr   client_readerclient_writerr7   s       r   handle_clientz=StreamTests.test_start_server.<locals>.MyServer.handle_clientA  b     *3355##D)#))+++##%#//111	 6+12   A3A-(A3A/ 'A3'A1(A3/A31A3c                     t        j                  d      }| j                  j                  t	        j
                  | j                  |            | _        |j                         S Nz	127.0.0.1r   )sock	socketcreate_serverr   r*   r   start_serverr  r   getsocknamer   r  s     r   startz5StreamTests.test_start_server.<locals>.MyServer.startH  S    ++,<="ii::((););.245 ''))r   c                 Z    | j                   j                  | j                  ||             y r   r   rt   r  r   r  r  s      r   handle_client_callbackzFStreamTests.test_start_server.<locals>.MyServer.handle_client_callbackO  (    		%%d&8&89F'H Ir   c                     t        j                  d      }|j                         }|j                          | j                  j                  t        j                  | j                  |d   |d               | _	        |S )Nr  r      )hostport)
r  r  r  r1   r   r*   r   r  r  r   )r   r  addrs      r   start_callbackz>StreamTests.test_start_server.<locals>.MyServer.start_callbackS  sl    ++,<='')

"ii::(()D)D.21gDGEF r   c                     | j                   U| j                   j                          | j                  j                  | j                   j	                                d | _         y y r   r   r1   r   r*   r  r   s    r   stopz4StreamTests.test_start_server.<locals>.MyServer.stop\  G    ;;*KK%%'II001H1H1JK"&DK +r   N	__name__
__module____qualname__r   r  r  r  r   r#  r
   r   r   MyServerr   ;  s!    !2*I'r   r)  c                    K   t        j                  |   d {   \  }}|j                  d       |j                          d {   }|j	                          |j                          d {    |S 7 Z7 07 
wN   hello world!
)r   r;   r+   r,   r1   r  )r  r4   r5   msgbacks       r   clientz-StreamTests.test_start_server.<locals>.clientb  si     #*#:#:D#AANFFLL*+"OO--GLLN$$&&&N B .&s3   A9A3+A9A5'A9,A7-A95A97A9c                 &    j                  |      S r   r   r!   s     r   r$   z/StreamTests.test_start_server.<locals>.<lambda>m  r%   r   r,  )r   r)   r  r*   rt   r#  r-   r   )r   r)  r.  r   r  msgr#   s         @r   test_start_serverzStreamTests.test_start_server9  s    %	' %	'N	 		''(NO $))$||~ii**499+@+@+NO/0 $))$$$&ii**499+@+@+NO/02&r   c                 $    G d d      }d }g | j                   j                  fd       t        j                         5 } || j                   |      }|j	                          | j                   j                  | j                   j                   ||                  }|j                          | j                  |d       d d d        t        j                         5 } || j                   |      }|j                          | j                   j                  | j                   j                   ||                  }|j                          | j                  |d       d d d        | j                  g        y # 1 sw Y   xY w# 1 sw Y   (xY w)Nc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)4StreamTests.test_start_unix_server.<locals>.MyServerc                 .    d | _         || _        || _        y r   )r   r   path)r   r   r6  s      r   r   z=StreamTests.test_start_unix_server.<locals>.MyServer.__init__  s    " 	 	r   c                    K   |j                          d {   }|j                  |       |j                          d {    |j                          |j	                          d {    y 7 V7 /7 	wr   r  r  s       r   r  zBStreamTests.test_start_unix_server.<locals>.MyServer.handle_client  r  r	  c                     | j                   j                  t        j                  | j                  | j
                              | _        y N)r6  )r   r*   r   start_unix_serverr  r6  r   r   s    r   r  z:StreamTests.test_start_unix_server.<locals>.MyServer.start  s5    "ii::--d.@.@3799>?r   c                 Z    | j                   j                  | j                  ||             y r   r  r  s      r   r  zKStreamTests.test_start_unix_server.<locals>.MyServer.handle_client_callback  r  r   c                     t        j                  | j                  | j                        }| j                  j                  |      | _        y r9  )r   r:  r  r6  r   r*   r   )r   r  s     r   r   zCStreamTests.test_start_unix_server.<locals>.MyServer.start_callback  s8    11$2M2M7;yyB"ii::5Ar   c                     | j                   U| j                   j                          | j                  j                  | j                   j	                                d | _         y y r   r"  r   s    r   r#  z9StreamTests.test_start_unix_server.<locals>.MyServer.stop  r$  r   Nr%  r
   r   r   r)  r4    s"    !
2?
IB
'r   r)  c                    K   t        j                  |        d {   \  }}|j                  d       |j                          d {   }|j	                          |j                          d {    |S 7 Z7 07 
wr+  )r   rD   r+   r,   r1   r  )r6  r4   r5   r-  s       r   r.  z2StreamTests.test_start_unix_server.<locals>.client  si     #*#?#?#EENFFLL*+"OO--GLLN$$&&&N F .&s3   A<A6+A<A8'A</A:0A<8A<:A<c                 &    j                  |      S r   r   r!   s     r   r$   z4StreamTests.test_start_unix_server.<locals>.<lambda>  r%   r   r,  )
r   r)   r   unix_socket_pathr  r*   rt   r#  r-   r   )r   r)  r.  r6  r   r0  r#   s         @r   test_start_unix_serverz"StreamTests.test_start_unix_server  sF    	'  	'D	 		''(NO ((* 	5ddii.FLLN))..		%%fTl35CKKMS"34	5 ((* 	5ddii.F!!#))..		%%fTl35CKKMS"34	5 	2&#	5 	5	5 	5s   B E:B F:FFc                 x    G d d      }d }g | j                   j                  fd        || j                         }|j                         }| j                   j                   ||            \  }}|j	                          | j                  g        | j                  |d       | j                  |d       y )Nc                   $    e Zd Zd Zd Zd Zd Zy),StreamTests.test_start_tls.<locals>.MyServerc                      d | _         || _        y r   r   r   s     r   r   z5StreamTests.test_start_tls.<locals>.MyServer.__init__  r   r   c                   K   |j                          d {   }|j                  |       |j                          d {    |j                  d      J |j	                  t        j                                d {    |j                  d      J |j                          d {   }|j                  |       |j                          d {    |j                          |j                          d {    y 7 7 7 7 \7 57 w)N
sslcontext)	r,   r+   r  get_extra_info	start_tlsr   simple_server_sslcontextr1   r  )r   r  r  data1data2s        r   r  z:StreamTests.test_start_tls.<locals>.MyServer.handle_client  s     +4466##E*#))+++$33LAIII#--779; ; ;$33LAMMM+4466##E*#))+++##%#//111 7+; 7+1sh   DC?(DD =D=D>*D(D)(DD'D9D	:DDDDD	Dc                     t        j                  d      }| j                  j                  t	        j
                  | j                  |            | _        |j                         S r  r  r  s     r   r  z2StreamTests.test_start_tls.<locals>.MyServer.start  r  r   c                     | j                   U| j                   j                          | j                  j                  | j                   j	                                d | _         y y r   r"  r   s    r   r#  z1StreamTests.test_start_tls.<locals>.MyServer.stop  r$  r   N)r&  r'  r(  r   r  r  r#  r
   r   r   r)  rD    s    !2*'r   r)  c                 `  K   t        j                  |   d {   \  }}|j                  d       |j                          d {    |j	                          d {   }|j                  d      J |j                  t        j                                d {    |j                  d      J |j                  d       |j                          d {    |j	                          d {   }|j                          |j                          d {    ||fS 7 7 7 7 7 Q7 ;7 w)N   hello world 1!
rG     hello world 2!
)r   r;   r+   r  r,   rH  rI  r   simple_client_sslcontextr1   r  )r  r4   r5   msgback1msgback2s        r   r.  z*StreamTests.test_start_tls.<locals>.client  s    #*#:#:D#AANFFLL,-,,.  #__..H((6>>>"":#F#F#HIII((6BBBLL,-,,.  #__..HLLN$$&&&X%% B .I !.&s{   D.D+D.D"D.D$=D.D&;D.D(D..D*/'D.D,	D."D.$D.&D.(D.*D.,D.c                 &    j                  |      S r   r   r!   s     r   r$   z,StreamTests.test_start_tls.<locals>.<lambda>  r%   r   rP  rQ  )r   r)   r  r*   r#  r-   )r   r)  r.  r   r  msg1msg2r#   s          @r   test_start_tlszStreamTests.test_start_tls  s    	' 	'B	& 		''(NO$))$||~YY11&,?
d2&2323r   win32zDon't have pipesc                    d}t        j                         \  }}t        j                  d|t	        |      g}t        |dd      }t        j                  | j                  d      }t        j                  || j                        | j                  j                  | j                  j                  fd|            \  }}t        j                         5  t        j                  d	t               t        j                          }	d d d        	j#                  | j                         	 t        j                         5  t        j                  d	t               t        j$                  |	       d d d        t        j&                  |d
|hi}
| j                  j                  |
      }| j                  j                  |j)                                t        j                         5  t        j                  d	t               t        j$                  d        d d d        t        j*                  |       | j                  j                  |j-                  d            }| j/                  |d       y # 1 sw Y   jxY w# 1 sw Y   xY w# 1 sw Y   uxY w# t        j                         5  t        j                  d	t               t        j$                  d        d d d        w # 1 sw Y   w xY wxY w)NzHimport os, sys
fd = int(sys.argv[1])
os.write(fd, b'data')
os.close(fd)
z-crbr   r  r   ra   c                       S r   r
   protocols   r   r$   z<StreamTests.test_read_all_from_pipe_reader.<locals>.<lambda>  s     r   ignorepass_fdsr      data)ospipesys
executabler   openr   rb   r   StreamReaderProtocolr*   connect_read_pipewarningscatch_warningssimplefilterDeprecationWarningSafeChildWatcherattach_loopset_child_watchercreate_subprocess_execr   r1   r.   r-   )r   coderfdwfdargsrc  r4   	transport_watchercreateprocr7   r^  s                @r   test_read_all_from_pipe_readerz*StreamTests.test_read_all_from_pipe_reader  s7    779SdCH5Cq!%%499A>//TYYGyy33II''(8$?A	1$$& 	1!!(,>?..0G	1 	DII&	0((* 3%%h0BC))'23 33F 99//7DII((5((* 0%%h0BC))$/0 	yy++FKKO<w'+	1 	1
3 30 0((* 0%%h0BC))$/0 0 0sU   /I-)J =0I:-A"J #0J-I7:J?J JK-(0K!	K-!K*&K-c                     | j                  t        d      5  t        j                          d d d        y # 1 sw Y   y xY wNzno current event loop)r   r   r   rb   r   s    r   *test_streamreader_constructor_without_loopz6StreamTests.test_streamreader_constructor_without_loop1  s4    ##L2IJ 	#  "	# 	# 	#s   5>c                     d }| j                   j                   |             }| j                  |j                  | j                          y )Nc                  2   K   t        j                         S wr   )r   rb   r
   r   r   testzHStreamTests.test_streamreader_constructor_use_running_loop.<locals>.test8  s     ''))s   )r   r*   r   _loop)r   r  r4   s      r   .test_streamreader_constructor_use_running_loopz:StreamTests.test_streamreader_constructor_use_running_loop5  s5    	* --df5fllDII.r   c                     | j                  t        j                  d        t        j                  | j                         t        j                         }| j                  |j                  | j                         y r   )
addCleanupr   r   r   rb   r   r  r   r4   s     r   -test_streamreader_constructor_use_global_loopz9StreamTests.test_streamreader_constructor_use_global_loop>  sN     	..5tyy)%%'fllDII.r   c                     t        j                         }| j                  t        d      5  t	        j
                  |       d d d        y # 1 sw Y   y xY wr|  )r   Mockr   r   r   rg  r  s     r   2test_streamreaderprotocol_constructor_without_loopz>StreamTests.test_streamreaderprotocol_constructor_without_loopH  sA    ##L2IJ 	1((0	1 	1 	1s   A

Ac                     t        j                         fd}| j                  j                   |             }| j	                  |j
                  | j                         y )Nc                  6   K   t        j                         S wr   )r   rg  )r4   s   r   r  zPStreamTests.test_streamreaderprotocol_constructor_use_running_loop.<locals>.testQ  s     //77s   )r   r  r   r*   r   r  )r   r  r^  r4   s      @r   6test_streamreaderprotocol_constructor_use_running_loopzBStreamTests.test_streamreaderprotocol_constructor_use_running_loopM  sA     	899//7hnndii0r   c                     | j                  t        j                  d        t        j                  | j                         t	        j
                         }t        j                  |      }| j                  |j                  | j                         y r   )	r  r   r   r   r   r  rg  r   r  )r   r4   r^  s      r   5test_streamreaderprotocol_constructor_use_global_loopzAStreamTests.test_streamreaderprotocol_constructor_use_global_loopV  s[     	..5tyy)//7hnndii0r   c                 f     dfd fd} j                   j                   |              y )Nr   c                 L   K   | j                          d {    dz  y 7 
w)Nr  )_drain_helper)rf   draineds    r   drainerz0StreamTests.test_multiple_drain.<locals>.drainerd  s'     &&(((qLG )s   $"$c                  l  K   t        j                         } t         j                  j                  |       }|j	                          | j                  d|j                         t        j                  t        d      D cg c]
  } |       c}  d {    j                  d       y c c}w 7 w)Ng?
   )
r   get_running_loopstreamsFlowControlMixinpause_writing
call_laterresume_writinggatherranger-   )r   rf   rv  r  r  r   s      r   mainz-StreamTests.test_multiple_drain.<locals>.maini  s     ++-D__55d;F  "OOC!6!67..E"I"Fq76?"FGGGWb) #GGs   A<B4?B-B4B2B4)r   r*   )r   r  r  r  s   ` @@r   test_multiple_drainzStreamTests.test_multiple_drain`  s(    	
	* 			$$TV,r   c                    g | j                   j                  fd       t        j                         fd}d }t	        j
                  |      }d|_        |j                          j                         }| j                  t        t        t        f      5  | j                   j                   ||        d d d        |j                          | j                  g        y # 1 sw Y   ,xY w)Nc                 &    j                  |      S r   r   r!   s     r   r$   z/StreamTests.test_drain_raises.<locals>.<lambda>|  r%   r   c                      t        j                  d      5 } | j                         }j                  |       | j	                         \  }}|j                          d d d        y # 1 sw Y   y xY w)N)	localhostr   )r  r  r  putacceptr1   )r  r  cltrv  qs       r   r   z-StreamTests.test_drain_raises.<locals>.server  sZ    %%&67 4'')dQ			  s   AA%%A.c                    K   t        j                  | |       d {   \  }}	 |j                  d       |j                          d {    *7 27 w)Ns   foo
)r   r;   r+   r  )r  r  r4   r5   s       r   r.  z-StreamTests.test_drain_raises.<locals>.client  sN     #*#:#:4#FFNFFX&lln$$  G %s!   AA,A	A
AA)targetT)r   r)   queueQueue	threadingThreaddaemonr  getrY   ConnectionResetErrorConnectionAbortedErrorBrokenPipeErrorr*   joinr-   )r   r   r.  threadr  r#   r  s        @@r   test_drain_raiseszStreamTests.test_drain_raisess  s     		''(NOKKM		% !!0uuw  46L / 1 2 	8II((7	8 	X&	8 	8s   C&&C/c                 z    t        j                  | j                        }| j                  dt	        |             y )Nra   <StreamReader>r   rb   r   r-   reprre   s     r   test___repr__zStreamTests.test___repr__  s+    %%4995)4<8r   c                 |    t        j                  | j                  d      }| j                  dt	        |             y )N{   r   z<StreamReader limit=123>r  re   s     r   test___repr__nondefault_limitz)StreamTests.test___repr__nondefault_limit  s-    %%499C@3T&\Br   c                     t        j                  | j                        }|j                          | j	                  dt        |             y )Nra   z<StreamReader eof>)r   rb   r   r   r-   r  re   s     r   test___repr__eofzStreamTests.test___repr__eof  s5    %%4995-tF|<r   c                     t        j                  | j                        }|j                  d       | j	                  dt        |             y )Nra   ra  z<StreamReader 4 bytes>)r   rb   r   rc   r-   r  re   s     r   test___repr__datazStreamTests.test___repr__data  s9    %%4995!14<@r   c                     t        j                  | j                        }t               }|j	                  |       | j                  dt        |             y )Nra   z'<StreamReader exception=RuntimeError()>)r   rb   r   r   r   r-   r  r   s      r   test___repr__exceptionz"StreamTests.test___repr__exception  sC    %%4995nS!Bf	'r   c                    t        j                  | j                        }t        j                  | j                        |_        | j                  t        |      d       |j                  j                  d        | j                  j                  |j                         d |_        | j                  dt        |             y )Nra   z,<StreamReader waiter=<Future pending[\S ]*>>r  )
r   rb   r   Futurer   assertRegexr  
set_resultr*   r-   re   s     r   test___repr__waiterzStreamTests.test___repr__waiter  s    %%4995 TYY7L;	= 	!!$'		$$V^^4)4<8r   c                 (   t        j                  | j                        }t        j                         |_        t        j                         |j
                  _        d|j
                  j                  _        | j                  dt        |             y )Nra   z<Transport>z$<StreamReader transport=<Transport>>)
r   rb   r   r   r  
_transport__repr__return_valuer-   r  re   s     r   test___repr__transportz"StreamTests.test___repr__transport  sa    %%4995 IIK%)YY["2?""/?fNr   c                    t        j                  dd      }t        t        j                  dz         D ]  }| j                  |      5  t        j                  t        j                  ||            }| j                  t        |      t        |             | j                  |j                  |j                         | j                  |j                  |j                         d d d         y # 1 sw Y   xY w)Ns   abcr  r  pickle_protocolr]  )r   r   r  pickleHIGHEST_PROTOCOLsubTestloadsdumpsr-   r   r   r   r   eprotoe2s       r   #test_IncompleteReadError_pickleablez/StreamTests.test_IncompleteReadError_pickleable  s    ''3622Q67 	:Ee4 :\\&,,q5"AB  QR1  BJJ7  R[[9	: :	:: :s   BC..C7	c                    t        j                  dd      }t        t        j                  dz         D ]  }| j                  |      5  t        j                  t        j                  ||            }| j                  t        |      t        |             | j                  |j                  |j                         d d d         y # 1 sw Y   xY w)Nr   r  r  r  r]  )r   r   r  r  r  r  r  r  r-   r   consumedr  s       r   !test_LimitOverrunError_pickleablez-StreamTests.test_LimitOverrunError_pickleable  s    %%i4622Q67 	:Ee4 :\\&,,q5"AB  QR1  R[[9: :	:: :s   A5CC	c                    t        j                         5 }| j                  j                  t	        j
                  |j                         \  }}|j                  d       |j                         }| j                  j                  |      }| j                  |d       |j                         }| j                  j                  |      }| j                  |j                  d             | j                  |j                                |j                          | j                  |j                                | j                  j                  |j!                                d d d        y # 1 sw Y   y xY wNr&   r'   r(   )r   r:   r   r*   r   r;   r<   r+   r,   r-   r.   r/   r0   r   
is_closingr1   r  r   r>   rdwrr6   r7   s         r   test_wait_closed_on_closez%StreamTests.test_wait_closed_on_close  s   '') 	;UYY11''79FB HH./A99//2DT#9:	A99//2DOODMM*ABCR]]_-HHJOOBMMO,II(()9:	; 	; 	;s   E	E''E0c                    t        j                         5 }| j                  j                  t	        j
                  |j                         \  }}|j                  d       |j                         }| j                  j                  |      }| j                  |d       |j                          | j                  j                  |j                                d d d        y # 1 sw Y   y xY w)Nr&   r'   )r   r:   r   r*   r   r;   r<   r+   r,   r-   r1   r  r  s         r   *test_wait_closed_on_close_with_unread_dataz6StreamTests.test_wait_closed_on_close_with_unread_data  s    '') 		;UYY11''79FB HH./A99//2DT#9:HHJII(()9:		; 		; 		;s   C CC'c                 
     fd}g  j                   j                  fd       t        j                         5 } j                   j	                   ||             d d d         j                  g        y # 1 sw Y   xY w)Nc                   K   t        j                  | j                    d {   \  }}|j                  d       |j	                          d {   }j                  |d       |j                          d {   }j                  |j                  d             |j                          |j                          d {    y 7 7 y7 Q7 wr  )r   r;   r<   r+   r,   r-   r.   r/   r0   r1   r  r>   r  r  r7   r   s       r   innerz0StreamTests.test_async_writer_api.<locals>.inner  s     "22EMMBBFBHH./&DT#9:?DOODMM*ABCHHJ..""" C '" #sF    CC+CC	)C9C:ACCC	CCCc                 &    j                  |      S r   r   r!   s     r   r$   z3StreamTests.test_async_writer_api.<locals>.<lambda>  r%   r   r   r)   r   r:   r*   r-   r   r  r>   r#   s   `  @r   test_async_writer_apiz!StreamTests.test_async_writer_api  sm    		# 		''(NO'') 	7UII((u6	7 	2&	7 	7   "A99Bc                 
     fd}g  j                   j                  fd       t        j                         5 } j                   j	                   ||             d d d         j                  g        y # 1 sw Y   xY w)Nc                   K   t        j                  | j                    d {   \  }}|j                  d       |j	                          d {   }j                  |d       |j                          d {   }j                  |j                  d             |j                          j                  t              5  |j                  d       |j                          d {    d d d        y 7 7 7 7 # 1 sw Y   y xY ww)Nr&   r'   r(   ra  )r   r;   r<   r+   r,   r-   r.   r/   r0   r1   rY   r  r  r  s       r   r  zFStreamTests.test_async_writer_api_exception_after_close.<locals>.inner  s     "22EMMBBFBHH./&DT#9:?DOODMM*ABCHHJ""#78 !!hhj  ! ! C '"
 !! !s^    D
C6+D
C8)D
9C::A	D
%C>(C<)C>-
D
8D
:D
<C>>DD
c                 &    j                  |      S r   r   r!   s     r   r$   zIStreamTests.test_async_writer_api_exception_after_close.<locals>.<lambda>  r%   r   r  r  s   `  @r   +test_async_writer_api_exception_after_closez7StreamTests.test_async_writer_api_exception_after_close  sm    	! 		''(NO'') 	7UII((u6	7 	2&	7 	7r  c                 Z   g | j                   j                  fd       t        j                         5 }| j                   j	                  t        j                  |j                         \  }}|j                          |j                         }| j                   j	                  |       | j                  |j                                |j                         }| j                   j	                  |      }| j                  |d       d d d        | j                  g        y # 1 sw Y   xY w)Nc                 &    j                  |      S r   r   r!   s     r   r$   z?StreamTests.test_eof_feed_when_closing_writer.<locals>.<lambda>$  r%   r   r   )r   r)   r   r:   r*   r   r;   r<   r1   r  r/   r   r.   r-   )r   r>   r  r  r6   r7   r#   s         @r   !test_eof_feed_when_closing_writerz-StreamTests.test_eof_feed_when_closing_writer!  s    		''(NO'') 
	(UYY11++U]];=FB HHJ AII((+OOBIIK(	A99//2DT3'
	( 	2&
	( 
	(s   CD!!D*c                 
     fd}g  j                   j                  fd       t        j                         5 } j                   j	                   ||             d d d         j                  g        y # 1 sw Y   xY w)Nc                   K   t        j                  | j                    d {   \  }}|j                  d       |j	                          d {   }j                  |d       |j                          d {   }j                  |j                  d             j                  t              5 }~t        j                          j                  t        |j                        d       j                  t        |j                  d   j                         j#                  d             d d d        y 7 7 7 # 1 sw Y   y xY ww)Nr&   r'   r(   r  r   zunclosed <StreamWriter)r   r;   r<   r+   r,   r-   r.   r/   r0   assertWarnsResourceWarninggccollectr   ri  r   r   
startswithr>   r  r  r7   r   r   s        r   r  z:StreamTests.test_unclosed_resource_warnings.<locals>.inner5  s     "22EMMBBFBHH./&DT#9:?DOODMM*ABC!!/2 bb

  R[[!115BKKN$:$: ; F FG_ `a	b b C '"b bsL    E
D7+E
D:)E
9D<:9E
3A;D>.
E
:E
<E
>EE
c                 &    j                  |      S r   r   r!   s     r   r$   z=StreamTests.test_unclosed_resource_warnings.<locals>.<lambda>D  r%   r   r  r  s   `  @r   test_unclosed_resource_warningsz+StreamTests.test_unclosed_resource_warnings4  sn    	b 		''(NO'') 	7UII((u6	7 	2&	7 	7r  c                      fd}g  j                   j                  fd       t        j                         5 } j	                  t
              5   j                   j                   ||             d d d        t        j                          d d d         j                  g        y # 1 sw Y   8xY w# 1 sw Y   (xY w)Nc                 |  K   t        j                  | j                    d {   \  }}|j                  d       |j	                          d {   }j                  |d       |j                          d {   }j                  |j                  d             j                  j                          |j                          j                  j                         s8t        j                  d       d {    j                  j                         s8j                  t              5 }~t!        j"                          j                  t%        |j&                        d       j                  dt)        |j&                  d   j*                               d d d        y 7 7 Y7 27 # 1 sw Y   y xY ww)Nr&   r'   r(   g        r  zloop is closedr   )r   r;   r<   r+   r,   r-   r.   r/   r0   r   r#  r1   	is_closedsleepr  r  r  r  r   ri  r   r   r  s        r   r  z@StreamTests.test_loop_is_closed_resource_warnings.<locals>.innerL  sN    "22EMMBBFBHH./&DT#9:?DOODMM*ABC IINNHHJii))+mmC((( ii))+ !!/2 Pb

  R[[!115  !13r{{1~7M7M3NO	P P C '" )P Pse    F<F%+F<F()F<9F+:B F<:F.;F<F</A-F0
F<(F<+F<.F<0F95F<c                 &    j                  |      S r   r   r!   s     r   r$   zCStreamTests.test_loop_is_closed_resource_warnings.<locals>.<lambda>b  r%   r   )
r   r)   r   r:   rY   r   r*   r  r  r-   r  s   `  @r   %test_loop_is_closed_resource_warningsz1StreamTests.test_loop_is_closed_resource_warningsK  s    	P* 		''(NO'') 	U""<0 ;		,,U5\:; JJL		 	2&; ;	 	s#   B7"B+4B7+B4	0B77C c                     t        j                         g | j                  j                  fd       fdfd}| j                  j	                   |              S )Nc                 &    j                  |      S r   r   r!   s     r   r$   z<StreamTests._basetest_unhandled_exceptions.<locals>.<lambda>p  r%   r   c                     K   t        j                  d       d {   \  } }|j                  d       |j                          d {    |j	                          |j                          d {    y 7 Y7 /7 	w)Nr  s   test msg)r   r;   r+   r  r1   r  )r  r  r  s     r   r.  z:StreamTests._basetest_unhandled_exceptions.<locals>.clientr  sb     "22;EEFBHH[!((*HHJ.."""	 F"s3   A=A7+A=	A9
'A=1A;2A=9A=;A=c                     K   t        j                  d       d {   } | j                          d {             d {    | j                          | j	                          d {    y 7 T7 >7 17 w)Nr  )r   r  start_servingr1   r  )r   r.  handle_echor  s    r   r  z8StreamTests._basetest_unhandled_exceptions.<locals>.mainy  sj     "//[$0 0F&&((((NNLLN$$&&&0(&sC   A;A3A;A5A;A7'A;-A9.A;5A;7A;9A;)r   find_unused_portr   r)   r*   )r   r  r  r.  r#   r  s    ` @@@r   _basetest_unhandled_exceptionsz*StreamTests._basetest_unhandled_exceptionsl  sN    --/		''(NO	#	' 			$$TV,r   c                 \    d }| j                  |      }| j                  |d   d   d       y )Nc                     K   t        d      w)Nr  )	Exceptionr4   r5   s     r   r  z9StreamTests.test_unhandled_exception.<locals>.handle_echo  s     F##s   r   r   z*Unhandled exception in client_connected_cbr  r-   r   r  r#   s      r   test_unhandled_exceptionz$StreamTests.test_unhandled_exception  s4    	$66{C!Y/@	Br   c                 P    d }| j                  |      }| j                  |g        y )Nc                 P   K   t        j                         j                          y wr   )r   current_taskr   r  s     r   r  z6StreamTests.test_unhandled_cancel.<locals>.handle_echo  s       "))+s   $&r  r  s      r   test_unhandled_cancelz!StreamTests.test_unhandled_cancel  s'    	,66{C2&r   )Vr&  r'  r(  rj   r   r   r8   r@   r   skip_unless_bind_unix_socketrE   rI   unittestskipIfrM   rO   rS   rZ   r\   r^   rg   rk   rn   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1  rA  rX  rd  platformrz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  __classcell__)r   s   @r   r   r      sd   #D'
'5
 //5 05
' X__SD[/2A 3A //X__SD[/2A 3 0A
';
 //; 0;
.44.	3.. 	F;.5".6)-.^
<-$	4
.J
1$!.F.: 44"..&	M/1
,D'L //C' 0C'J X__SD[/2<4 3<4| X__S\\W,.@A*( B*(X#//1
11-&)'V9C=
A
'	9O::;"
;'(','&'.'B0B'r   r   __main__)__doc__r  rb  r  r  r  rd  r  r  r   ri  test.supportr   rM   ImportErrorr   test.test_asyncior   r   r   TestCaser   r&  r  r
   r   r   <module>r%     s     	 	    
     &  1(t'*%% t'n# zHMMO E$  
Cs   A2 2A<;A<