
    2hh                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SK	r	 S SK
r
S SKrS SKJr  S SKJrJr  S r " S S\R(                  5      r\S:X  a  \R.                  " 5         gg! \ a    Sr
 NMf = f)	    N)mock)utils)requires_subprocesssocket_helperc                  0    [         R                  " S 5        g N)asyncioset_event_loop_policy     G/opt/python-3.13.8/usr/lib/python3.13/test/test_asyncio/test_streams.pytearDownModuler      s    !!$'r   c                   n  ^  \ rS rSrSrU 4S jrU 4S jrS rS r\	R                  S 5       rS r\R                  " \S	L S
5      S 5       r\	R                  \R                  " \S	L S
5      S 5       5       rS rS r\	R                  S 5       rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S  r%S! r&S" r'S# r(S$ r)S% r*S& r+S' r,S( r-S) r.S* r/S+ r0S, r1S- r2S. r3S/ r4S0 r5S1 r6S2 r7S3 r8S4 r9\	R                  S5 5       r:\R                  " \S	L S
5      S6 5       r;\R                  " \<Rz                  S7:H  S85      \>" 5       S9 5       5       r?S: r@S; rAS< rBS= rCS> rDS? rES@ rFSA rGSB rHSC rISD rJSE rKSF rLSG rMSH rNSI rOSJ rPSK rQSL rRSM rSSN rTSO rUSP rVSQ rWSR rXSS rYST rZSU r[SV r\SWr]U =r^$ )XStreamTests   s   line1
line2
line3
c                    > [         TU ]  5         [        R                  " 5       U l        U R                  U R                  5        g r   )supersetUpr	   new_event_looploopset_event_loopself	__class__s    r   r   StreamTests.setUp   s.    **,	DII&r   c                 b   > [         R                  " U R                  5        [        TU ]  5         g r   )
test_utilsrun_brieflyr   r   tearDownr   s    r   r   StreamTests.tearDown$   s"    tyy) 	r   c                   ^ / mU R                   R                  U4S j5        U R                   R                  U5      u  p#UR                  S5        UR	                  5       nU R                   R                  U5      nU R                  US5        UR                  5       nU R                   R                  U5      nU R                  UR                  S5      5        UR                  5         U R                  T/ 5        g )Nc                 &   > TR                  U5      $ r   appendr   ctxmessagess     r   <lambda>7StreamTests._basetest_open_connection.<locals>.<lambda>-       (//#:Nr      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_connection%StreamTests._basetest_open_connection+   s    		''(NO556IJ./OOyy++A.56KKMyy++A.&=>?2&r   c                     [         R                  " 5        n[        R                  " UR                  6 nU R                  U5        S S S 5        g ! , (       d  f       g = fr   )r   run_test_serverr	   open_connectionaddressr=   r   httpdconn_futs      r   test_open_connection StreamTests.test_open_connection9   s>    '')U..>H**84 *))   /A
Ac                     [         R                  " 5        n[        R                  " UR                  5      nU R                  U5        S S S 5        g ! , (       d  f       g = fr   )r   run_test_unix_serverr	   open_unix_connectionrB   r=   rC   s      r   test_open_unix_connection%StreamTests.test_open_unix_connection>   s>    ,,.%33EMMBH**84 /..   2A
Ac                   ^ / mU R                   R                  U4S j5         U R                   R                  U5      u  p#[        R                  " S 5        UR                  S5        UR                  5       nU R                   R                  U5      nU R                  UR                  S5      5        UR                  5         U R                  T/ 5        g ! [        R                  " S 5        f = f)Nc                 &   > TR                  U5      $ r   r#   r%   s     r   r(   CStreamTests._basetest_open_connection_no_loop_ssl.<locals>.<lambda>F   r*   r   r+   r-   )r   r.   r/   r	   r   r0   r3   r4   r5   r6   r2   r7   s         @r   %_basetest_open_connection_no_loop_ssl1StreamTests._basetest_open_connection_no_loop_sslD   s    		''(NO	)!YY99:MNNF""4(./KKMyy++A.&=>?2& ""4(s   C C.NzNo ssl modulec                     [         R                  " SS9 n[        R                  " UR                  S[         R
                  " 5       06nU R                  U5        S S S 5        g ! , (       d  f       g = f)NTuse_sslssl)r   r@   r	   rA   rB   dummy_ssl_contextrR   rC   s      r    test_open_connection_no_loop_ssl,StreamTests.test_open_connection_no_loop_sslS   sV    ''5..40024H 66x@ 655   AA##
A1c                     [         R                  " SS9 n[        R                  " UR                  [         R
                  " 5       SS9nU R                  U5        S S S 5        g ! , (       d  f       g = f)NTrU    )rW   server_hostname)r   rJ   r	   rK   rB   rX   rR   rC   s      r   %test_open_unix_connection_no_loop_ssl1StreamTests.test_open_unix_connection_no_loop_ssl\   sV     ,,T:e33002 "H 66x@ ;::r[   c                    ^ / mU R                   R                  U4S j5        U R                   R                  U5      u  p#UR                  R	                  [        5       5        UR                  5       nU R                  [
        5         U R                   R                  U5        S S S 5        UR                  5         [        R                  " U R                   5        U R                  T/ 5        g ! , (       d  f       NQ= f)Nc                 &   > TR                  U5      $ r   r#   r%   s     r   r(   =StreamTests._basetest_open_connection_error.<locals>.<lambda>j   r*   r   )r   r.   r/   	_protocolconnection_lostZeroDivisionErrorr3   assertRaisesr6   r   r   r2   )r   r8   r9   r:   r;   r'   s        @r   _basetest_open_connection_error+StreamTests._basetest_open_connection_errorh   s    		''(NO556IJ(():)<=KKM01II((+ 2tyy)2&	 21s   C//
C=c                     [         R                  " 5        n[        R                  " UR                  6 nU R                  U5        S S S 5        g ! , (       d  f       g = fr   )r   r@   r	   rA   rB   rh   rC   s      r   test_open_connection_error&StreamTests.test_open_connection_errort   s>    '')U..>H00: *))rH   c                     [         R                  " 5        n[        R                  " UR                  5      nU R                  U5        S S S 5        g ! , (       d  f       g = fr   )r   rJ   r	   rK   rB   rh   rC   s      r   test_open_unix_connection_error+StreamTests.test_open_unix_connection_errory   s>    ,,.%33EMMBH00: /..rN   c                     [         R                  " U R                  S9nUR                  S5        U R	                  SUR
                  5        g Nr   r   )r	   StreamReaderr   	feed_datar2   _bufferr   streams     r   test_feed_empty_data StreamTests.test_feed_empty_data   s8    %%4995fnn-r   c                     [         R                  " U R                  S9nUR                  U R                  5        U R                  U R                  UR                  5        g Nrr   )r	   rs   r   rt   DATAr2   ru   rv   s     r   test_feed_nonempty_data#StreamTests.test_feed_nonempty_data   s@    %%4995#FNN3r   c                 :   [         R                  " U R                  S9nUR                  U R                  5        U R                  R                  UR                  S5      5      nU R                  SU5        U R                  U R                  UR                  5        g )Nrr   r   r   )	r	   rs   r   rt   r|   r/   r3   r2   ru   r   rw   r<   s      r   test_read_zeroStreamTests.test_read_zero   sl    %%4995#yy++FKKN;d#FNN3r   c                   ^ ^ [         R                  " T R                  S9mT R                  R                  TR	                  S5      5      nU U4S jnT R                  R                  U5        T R                  R                  U5      nT R                  T R                  U5        T R                  STR                  5        g )Nrr      c                  <   > TR                  T R                  5        g r   rt   r|   rv   s   r   cb!StreamTests.test_read.<locals>.cb   s    TYY'r   r   )
r	   rs   r   create_taskr3   	call_soonr/   r2   r|   ru   r   	read_taskr   r<   rw   s   `   @r   	test_readStreamTests.test_read   s    %%4995II))&++b/:		(		Byy++I6D)fnn-r   c                 4   [         R                  " U R                  S9nUR                  S5        UR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        g )Nrr   s   line1s   line2   r	   rs   r   rt   r/   r3   r2   ru   r   s      r   test_read_line_breaks!StreamTests.test_read_line_breaks   sr    %%4995""yy++FKKN;4(6>>2r   c                 j  ^ [         R                  " U R                  S9mU R                  R                  TR	                  S5      5      nU4S jnU R                  R                  U5        U R                  R                  U5      nU R                  SU5        U R                  STR                  5        g )Nrr   i   c                  &   > T R                  5         g r   )feed_eofrw   s   r   r   %StreamTests.test_read_eof.<locals>.cb   s    OOr   r   	r	   rs   r   r   r3   r   r/   r2   ru   r   s       @r   test_read_eofStreamTests.test_read_eof   s    %%4995II))&++d*;<				Byy++I6d#fnn-r   c                 j  ^ [         R                  " U R                  S9mU R                  R                  TR	                  S5      5      nU4S jnU R                  R                  U5        U R                  R                  U5      nU R                  SU5        U R                  STR                  5        g )Nrr   c                  j   > T R                  S5        T R                  S5        T R                  5         g )Ns   chunk1
   chunk2rt   r   r   s   r   r   +StreamTests.test_read_until_eof.<locals>.cb   s)    [)Y'OOr   s   chunk1
chunk2r   r   r   s       @r   test_read_until_eofStreamTests.test_read_until_eof   s    %%4995II))&++b/:		 			Byy++I6*D1fnn-r   c                    [         R                  " U R                  S9nUR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        UR                  [        5       5        U R                  [        U R                  R                  UR                  S5      5        g Nrr      line
      li)
r	   rs   r   rt   r/   r3   r2   set_exception
ValueErrorrg   r   s      r   test_read_exceptionStreamTests.test_read_exception   s    %%4995#yy++FKKN;%Z\*		44fkk!n	Fr   c                 @   U R                  [        S5         [        R                  " SU R                  S9  S S S 5        U R                  [        S5         [        R                  " SU R                  S9  S S S 5        g ! , (       d  f       NM= f! , (       d  f       g = f)Nimitr   limitr   r   )assertRaisesRegexr   r	   rs   r   r   s    r   test_invalid_limitStreamTests.test_invalid_limit   sk    ##J7  qtyy9 8 ##J7  r		: 87 87 87s    A> B>
B
Bc                    [         R                  " SU R                  S9nUR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        g N   r   s   chunkr   r   r   r   s      r   test_read_limitStreamTests.test_read_limit   sf    %%ADII>"yy++FKKN;4(fnn-r   c                   ^ [         R                  " U R                  S9mTR                  S5        U R                  R	                  TR                  5       5      nU4S jnU R                  R                  U5        U R                  R                  U5      nU R                  SU5        U R                  STR                  5        g )Nrr   s   chunk1 c                  l   > T R                  S5        T R                  S5        T R                  S5        g )Ns   chunk2 s   chunk3 s   
 chunk4)rt   r   s   r   r   %StreamTests.test_readline.<locals>.cb   s-    Z(Z(\*r   s   chunk1 chunk2 chunk3 
s    chunk4)
r	   rs   r   rt   r   r1   r   r/   r2   ru   )r   r   r   linerw   s       @r   test_readlineStreamTests.test_readline   s     %%4995$II))&//*;<		+ 			Byy++I63T:V^^4r   c                 ~   [         R                  " SU R                  S9nUR                  S5        UR                  S5        U R	                  [
        U R                  R                  UR                  5       5        U R                  SUR                  5        [         R                  " SU R                  S9nUR                  S5        UR                  S5        UR                  S5        U R	                  [
        U R                  R                  UR                  5       5        U R                  SUR                  5        g )Nr   r   r   s
   ne1
line2
s   line2
s   ne1r   )
r	   rs   r   rt   rg   r   r/   r1   r2   ru   rv   s     r   &test_readline_limit_with_existing_data2StreamTests.test_readline_limit_with_existing_data   s     %%ADII>)		44foo6G	I 	V^^4%%ADII> 		44foo6G	I 	fnn-r   c                 @   [         R                  " U R                  S9nU R                  UR	                  5       5        UR                  S5        U R                  UR	                  5       5        U R                  R                  UR                  5       5        U R                  UR	                  5       5        UR                  S5        UR                  5         U R                  R                  UR                  5       5        U R                  UR	                  5       5        g )Nrr   s
   some data
)
r	   rs   r   assertFalseat_eofrt   r/   r1   r   r4   rv   s     r   test_at_eofStreamTests.test_at_eof  s    %%4995)()		$$V__%67)(		$$V__%67(r   c                 |  ^ [         R                  " SU R                  S9mU4S jnU R                  R                  U5        U R	                  [
        U R                  R                  TR                  5       5        U R                  STR                  5        [         R                  " SU R                  S9mU4S jnU R                  R                  U5        U R	                  [
        U R                  R                  TR                  5       5        U R                  STR                  5        [         R                  " SU R                  S9mTR                  S5        U R                  R                  TR                  5       5      nU R                  SU5        U R                  STR                  5        TR                  S5        U R	                  [
        5       nU R                  R                  TR                  5       5        S S S 5        U R                  STR                  5        TR                  S	5        U R	                  [
        5       nU R                  R                  TR                  5       5        S S S 5        U R                  STR                  5        g ! , (       d  f       N= f! , (       d  f       N<= f)
N   r   c                     > T R                  S5        T R                  S5        T R                  S5        T R                  5         g )N   chunk1r      chunk3
r   r   s   r   r   +StreamTests.test_readline_limit.<locals>.cb"  s7    Y'Y'[)OOr   r   c                     > T R                  S5        T R                  S5        T R                  S5        T R                  5         g )Nr   s   chunk2
r   r   r   s   r   r   r   0  s7    Y'[)[)OOr   r   s   1234567
s	   12345678
s   12345678)r	   rs   r   r   rg   r   r/   r1   r2   ru   rt   )r   r   r   cmrw   s       @r   test_readline_limit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*-
J;c                 f   [         R                  " U R                  S9nUR                  U R                  S S 5        UR                  U R                  SS  5        U R                  R                  UR                  5       5      nU R                  SU5        U R                  SUR                  5        g )Nrr      s   line1
s   line2
line3
)	r	   rs   r   rt   r|   r/   r1   r2   ru   r   rw   r   s      r   test_readline_nolimit_nowait(StreamTests.test_readline_nolimit_nowaitL  s     %%49952A'12'yy++FOO,=>T**FNN;r   c                     [         R                  " U R                  S9nUR                  S5        UR	                  5         U R                  R                  UR                  5       5      nU R                  SU5        g )Nrr   s	   some data)r	   rs   r   rt   r   r/   r1   r2   r   s      r   test_readline_eofStreamTests.test_readline_eofX  sY    %%4995&yy++FOO,=>t,r   c                     [         R                  " U R                  S9nUR                  5         U R                  R	                  UR                  5       5      nU R                  SU5        g rq   )r	   rs   r   r   r/   r1   r2   r   s      r   test_readline_empty_eof#StreamTests.test_readline_empty_eof`  sK    %%4995yy++FOO,=>d#r   c                 x   [         R                  " U R                  S9nUR                  U R                  5        U R                  R                  UR                  5       5        U R                  R                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        g )Nrr   r   s   line2
ls   ine3
)
r	   rs   r   rt   r|   r/   r1   r3   r2   ru   r   s      r   test_readline_read_byte_count)StreamTests.test_readline_read_byte_countg  s    %%4995#		$$V__%67yy++FKKN;d+FNN3r   c                    [         R                  " U R                  S9nUR                  S5        U R                  R	                  UR                  5       5      nU R                  SU5        UR                  [        5       5        U R                  [        U R                  R                  UR                  5       5        U R                  SUR                  5        g )Nrr   r   r   )r	   rs   r   rt   r/   r1   r2   r   r   rg   ru   r   s      r   test_readline_exception#StreamTests.test_readline_exceptionr  s    %%4995#yy++FOO,=>D)Z\*		44foo6G	Ifnn-r   c                 P   [         R                  " U R                  S9nU R                  [        S5         U R                  R                  UR                  SS95        S S S 5        U R                  [        S5         U R                  R                  UR                  SS95        S S S 5        U R                  [        S5         U R                  R                  UR                  SS95        S S S 5        g ! , (       d  f       N= f! , (       d  f       Ng= f! , (       d  f       g = f)Nrr   zSeparator should ber   	separator)r   zSeparator should containr   )r	   rs   r   r   r   r/   	readuntilrv   s     r   test_readuntil_separator$StreamTests.test_readuntil_separator~  s    %%4995##J0EFII(()9)9C)9)HI G##J0EFII(()9)9F)9)KL G##J0JKII(()9)9B)9)GH LK	 GFFFKKs#   )C5<)D)D5
D
D
D%c                    [         R                  " U R                  S9nUR                  S5        U R                  R	                  UR                  SS95      nU R                  SU5        U R                  SUR                  5        UR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        UR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        g )Nrr   s   lineAAA   AAAr   r   s
   lineAAAxxxs   xxxr	   rs   r   rt   r/   r   r2   ru   r   s      r   test_readuntil_multi_chunks'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                 H   [         R                  " U R                  S9nUR                  S5        UR                  S5        UR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        UR                  S5        UR                  S5        UR                  S	5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        UR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        UR                  S
5        U R                  R	                  UR                  S5      5      nU R                  S
U5        U R                  SUR                  5        UR                  S5        UR                  S5        UR                  S5        UR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        g )Nrr   s   QWEaas   XYaa   a   aaas
   QWEaaXYaaar   s   XYas   aas   Xaaas   XXXs   XXXaaar   r   s      r   test_readuntil_multi_chunks_1)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                    [         R                  " U R                  S9nSnUR                  U5        UR	                  5         U R                  [         R                  S5       nU R                  R                  UR                  S5      5        S S S 5        U R                  WR                  R                  U5        U R                  UR                  R                  5        U R                  SUR                  5        g ! , (       d  f       Nv= f)Nrr      some dataAAzundefined expected bytesr   r   )r	   rs   r   rt   r   r   IncompleteReadErrorr/   r   r2   	exceptionpartialassertIsNoneexpectedru   )r   rw   r<   r   s       r   test_readuntil_eofStreamTests.test_readuntil_eof  s    %%4995##G$?$?$>@CEII(()9)9&)AB@ 	--t4",,//0fnn-@ @s   "+C==
Dc                    [         R                  " U R                  SS9nUR                  S5        U R	                  [         R
                  S5       nU R                  R                  UR                  S5      5        S S S 5        U R                  SUR                  5        UR                  S5        U R	                  [         R
                  S5       nU R                  R                  UR                  S5      5        S S S 5        U R                  SUR                  5        g ! , (       d  f       N= f! , (       d  f       N<= f)	Nr   r   r   r   z	not foundr      Ais founds   some dataAAA
r	   rs   r   rt   r   LimitOverrunErrorr/   r   r2   ru   r   rw   r   s      r   test_readuntil_limit_found_sep*StreamTests.test_readuntil_limit_found_sep  s    %%499A>(##G$=$=$/146II(()9)9&)AB1 	8##G$=$=$.035II(()9)9&)AB0 	&..91 10 0s   +D!+D2!
D/2
E c                 \   [         R                  " U R                  S9nUR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        UR                  S5        U R                  R	                  UR                  S5      5      nU R                  S	U5        U R                  S
UR                  5        g )Nrr   s   line 1
line 2)      
s   line 1
s   line 2r   s   ABCDEFG)s   DEFs   BCDEs   ABCDEs   FGr   r   s      r   test_readuntil_multi_separator*StreamTests.test_readuntil_multi_separator  s    %%4995 	,-yy++F,<,<^,LMd+yy++F,<,<^,LMd+fnn- 	$yy++F,<,<=N,OP4(/r   c                 d   [         R                  " U R                  SS9nUR                  S5        U R	                  [         R
                  S5       nU R                  R                  UR                  S5      5        S S S 5        U R                  SUR                  5        g ! , (       d  f       N+= f)Nr   r   s
   some dataAr   )r   s	   ome dataAr   r  s      r   $test_readuntil_multi_separator_limit0StreamTests.test_readuntil_multi_separator_limit  s    %%499A>'##G$=$=$.035II(()9)9:N)OP0 	7	0 0s   +B!!
B/c                    [         R                  " U R                  S9nUR                  S5        U R                  R	                  UR                  S5      5      nU R                  R                  UR                  S5        U R                  R                  UR                  S5        U R                  R                  U5      nU R                  SU5        U R                  SUR                  5        g )Nrr      data)r   s   long sep   Zs   Aaaas   dataZAr   )
r	   rs   r   rt   r   r   r   r/   r2   ru   )r   rw   readuntil_taskr<   s       r   .test_readuntil_multi_separator_negative_offset:StreamTests.test_readuntil_multi_separator_negative_offset  s     %%4995!..v/?/?@S/TU		F,,d3		F,,g6yy++N;D)0r   c                 $   [         R                  " U R                  S9nUR                  S5        U R                  R	                  UR                  [        S5      5      5      nU R                  SU5        U R                  SUR                  5        g )Nrr   s   some data
s   
r   )	r	   rs   r   rt   r/   r   	bytearrayr2   ru   r   s      r   test_readuntil_bytearray$StreamTests.test_readuntil_bytearray  sn    %%4995)*yy++F,<,<Yw=O,PQ)40fnn-r   c                 :   [         R                  " U R                  S9nUR                  U R                  5        U R                  R                  UR                  S5      5      nU R                  SU5        U R                  U R                  UR                  5        U R                  [        S5         U R                  R                  UR                  S5      5        S S S 5        U R                  U R                  UR                  5        g ! , (       d  f       N5= f)Nrr   r   r   zless than zeror   )r	   rs   r   rt   r|   r/   readexactlyr2   ru   r   r   r   s      r   test_readexactly_zero_or_less)StreamTests.test_readexactly_zero_or_less
  s    %%4995#yy++F,>,>q,ABd#FNN3##J0@AII((););B)?@ BFNN3 BAs   2+D
Dc                   ^ ^ [         R                  " T R                  S9mS[        T R                  5      -  nT R                  R                  TR                  U5      5      nU U4S jnT R                  R                  U5        T R                  R                  U5      nT R                  T R                  T R                  -   U5        T R                  T R                  TR                  5        g )Nrr   r   c                     > TR                  T R                  5        TR                  T R                  5        TR                  T R                  5        g r   r   rv   s   r   r   (StreamTests.test_readexactly.<locals>.cb  s9    TYY'TYY'TYY'r   )r	   rs   r   lenr|   r   r  r   r/   r2   ru   )r   nr   r   r<   rw   s   `    @r   test_readexactlyStreamTests.test_readexactly  s    %%4995DIIII))&*<*<Q*?@		( 			Byy++I6TYY.5FNN3r   c                    [         R                  " SU R                  S9nUR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        U R                  SUR                  5        g r   )r	   rs   r   rt   r/   r  r2   ru   r   s      r   test_readexactly_limit"StreamTests.test_readexactly_limit(  si    %%ADII>"yy++F,>,>q,AB4(fnn-r   c                   ^ ^ [         R                  " T R                  S9mS[        T R                  5      -  nT R                  R                  TR                  U5      5      nU U4S jnT R                  R                  U5        T R                  [         R                  5       nT R                  R                  U5        S S S 5        T R                  WR                  R                  T R                  5        T R                  UR                  R                  U5        T R                  [        UR                  5      S5        T R                  STR                   5        g ! , (       d  f       N= f)Nrr   r   c                  \   > TR                  T R                  5        TR                  5         g r   )rt   r|   r   rv   s   r   r   ,StreamTests.test_readexactly_eof.<locals>.cb5  s    TYY'OOr   z-18 bytes read on a total of 36 expected bytesr   )r	   rs   r   r  r|   r   r  r   rg   r   r/   r2   r   r   r   strru   )r   r  r   r   r   rw   s   `    @r   test_readexactly_eof StreamTests.test_readexactly_eof/  s    %%4995DIIII))&*<*<Q*?@		 			Bw::;rII((3 <--tyy9..2R\\*H	Jfnn- <;s   $E  
E.c                    [         R                  " U R                  S9nUR                  S5        U R                  R	                  UR                  S5      5      nU R                  SU5        UR                  [        5       5        U R                  [        U R                  R                  UR                  S5      5        g r   )
r	   rs   r   rt   r/   r  r2   r   r   rg   r   s      r   test_readexactly_exception&StreamTests.test_readexactly_exceptionB  s    %%4995#yy++F,>,>q,AB%Z\*		44f6H6H6K	Mr   c                     [         R                  " U R                  S9nU R                  UR	                  5       5        [        5       nUR                  U5        U R                  UR	                  5       U5        g r{   )r	   rs   r   r   r   r   r   assertIsr   rw   excs      r   test_exceptionStreamTests.test_exceptionM  sY    %%4995&**,-lS!f&&(#.r   c                   ^ [         R                  " U R                  S9mU4S jnU R                  R                  TR	                  5       5      nU R                  R                  U" 5       5      nU R                  R                  [         R                  " X#/5      5        U R                  [        UR                  5        g )Nrr   c                  @   >#    T R                  [        5       5        g 7fr   )r   r   r   s   r   set_err2StreamTests.test_exception_waiter.<locals>.set_errX  s       .s   )
r	   rs   r   r   r1   r/   waitrg   r   result)r   r6  t1t2rw   s       @r   test_exception_waiter!StreamTests.test_exception_waiterU  s    %%4995	/ YY""6??#45YY""79-		$$W\\2(%;<*bii0r   c                    [         R                  " U R                  S9nU R                  R                  UR	                  5       5      n[
        R                  " U R                  5        UR                  5         [
        R                  " U R                  5        UR                  [        S5      5        [
        R                  " U R                  5        U R                  UR                  S 5        g )Nrr   message)r	   rs   r   r   r1   r   r   cancelr   RuntimeErrorr/  _waiter)r   rw   ts      r   test_exception_cancel!StreamTests.test_exception_cancelb  s    %%4995II!!&//"34tyy)	
tyy)\)45tyy)fnnd+r   c                 ~  ^  " S S5      nS n/ mU R                   R                  U4S j5        U" U R                   5      nUR                  5       nU R                   R                  U R                   R	                  U" U5      5      5      nUR                  5         U R                  US5        U" U R                   5      nUR                  5       nU R                   R                  U R                   R	                  U" U5      5      5      nUR                  5         U R                  US5        U R                  T/ 5        g )Nc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
/StreamTests.test_start_server.<locals>.MyServerip  c                     S U l         Xl        g r   serverr   r   r   s     r   __init__8StreamTests.test_start_server.<locals>.MyServer.__init__r      " 	r   c                    #    UR                  5       I S h  vN nUR                  U5        UR                  5       I S h  vN   UR                  5         UR	                  5       I S h  vN   g  NV N/ N	7fr   r1   r0   drainr6   wait_closedr   client_readerclient_writerr<   s       r   handle_client=StreamTests.test_start_server.<locals>.MyServer.handle_clientv  _     *3355##D)#))+++##%#//111	 6+12   A3A-(A3A/ 'A3'A1(A3/A31A3c                     [         R                  " S5      nU R                  R                  [        R
                  " U R                  US95      U l        UR                  5       $ Nz	127.0.0.1r   )sock	socketcreate_serverr   r/   r	   start_serverrW  rK  getsocknamer   r^  s     r   start5StreamTests.test_start_server.<locals>.MyServer.start}  S    ++,<="ii::((););.245 ''))r   c                 Z    U R                   R                  U R                  UU5      5        g r   r   r   rW  r   rU  rV  s      r   handle_client_callbackFStreamTests.test_start_server.<locals>.MyServer.handle_client_callback  (    		%%d&8&89F'H Ir   c                     [         R                  " S5      nUR                  5       nUR                  5         U R                  R                  [        R                  " U R                  US   US   S95      U l	        U$ )Nr]  r      )hostport)
r`  ra  rc  r6   r   r/   r	   rb  rk  rK  )r   r^  addrs      r   start_callback>StreamTests.test_start_server.<locals>.MyServer.start_callback  sl    ++,<='')

"ii::(()D)D.21gDGEF r   c                     U R                   bU  U R                   R                  5         U R                  R                  U R                   R	                  5       5        S U l         g g r   rK  r6   r   r/   rS  r   s    r   stop4StreamTests.test_start_server.<locals>.MyServer.stop  G    ;;*KK%%'II001H1H1JK"&DK +r   r   rK  N__name__
__module____qualname____firstlineno__rM  rW  re  rk  rs  rw  __static_attributes__r   r   r   MyServerrH  p  s!    !2*I'r   r  c                    #    [         R                  " U 6 I S h  vN u  pUR                  S5        UR                  5       I S h  vN nUR	                  5         UR                  5       I S h  vN   U$  NY N0 N
7fN   hello world!
)r	   rA   r0   r1   r6   rS  )rr  r9   r:   msgbacks       r   client-StreamTests.test_start_server.<locals>.client  sd     #*#:#:D#AANFLL*+"OO--GLLN$$&&&N B .&s3   A9A3*A9A5'A9,A7-A95A97A9c                 &   > TR                  U5      $ r   r#   r%   s     r   r(   /StreamTests.test_start_server.<locals>.<lambda>  r*   r   r  )r   r.   re  r/   r   rw  r2   rs  )r   r  r  rK  rr  msgr'   s         @r   test_start_serverStreamTests.test_start_servern  s    %	' %	'N	 		''(NO $))$||~ii**499+@+@+NO/0 $))$$$&ii**499+@+@+NO/02&r   c                 >  ^  " S S5      nS n/ mU R                   R                  U4S j5        [        R                  " 5        nU" U R                   U5      nUR	                  5         U R                   R                  U R                   R                  U" U5      5      5      nUR                  5         U R                  US5        S S S 5        [        R                  " 5        nU" U R                   U5      nUR                  5         U R                   R                  U R                   R                  U" U5      5      5      nUR                  5         U R                  US5        S S S 5        U R                  T/ 5        g ! , (       d  f       N= f! , (       d  f       N2= f)Nc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
4StreamTests.test_start_unix_server.<locals>.MyServeri  c                 *    S U l         Xl        X l        g r   )rK  r   path)r   r   r  s      r   rM  =StreamTests.test_start_unix_server.<locals>.MyServer.__init__  s    " 	 	r   c                    #    UR                  5       I S h  vN nUR                  U5        UR                  5       I S h  vN   UR                  5         UR	                  5       I S h  vN   g  NV N/ N	7fr   rQ  rT  s       r   rW  BStreamTests.test_start_unix_server.<locals>.MyServer.handle_client  rY  rZ  c                     U R                   R                  [        R                  " U R                  U R
                  S95      U l        g N)r  )r   r/   r	   start_unix_serverrW  r  rK  r   s    r   re  :StreamTests.test_start_unix_server.<locals>.MyServer.start  s5    "ii::--d.@.@3799>?r   c                 Z    U R                   R                  U R                  UU5      5        g r   ri  rj  s      r   rk  KStreamTests.test_start_unix_server.<locals>.MyServer.handle_client_callback  rm  r   c                     [         R                  " U R                  U R                  S9nU R                  R                  U5      U l        g r  )r	   r  rk  r  r   r/   rK  )r   re  s     r   rs  CStreamTests.test_start_unix_server.<locals>.MyServer.start_callback  s8    11$2M2M7;yyB"ii::5Ar   c                     U R                   bU  U R                   R                  5         U R                  R                  U R                   R	                  5       5        S U l         g g r   rv  r   s    r   rw  9StreamTests.test_start_unix_server.<locals>.MyServer.stop  ry  r   )r   r  rK  Nr{  r   r   r   r  r    s"    !
2?
IB
'r   r  c                    #    [         R                  " U 5      I S h  vN u  pUR                  S5        UR                  5       I S h  vN nUR	                  5         UR                  5       I S h  vN   U$  NY N0 N
7fr  )r	   rK   r0   r1   r6   rS  )r  r9   r:   r  s       r   r  2StreamTests.test_start_unix_server.<locals>.client  sd     #*#?#?#EENFLL*+"OO--GLLN$$&&&N F .&s3   A<A6*A<A8'A</A:0A<8A<:A<c                 &   > TR                  U5      $ r   r#   r%   s     r   r(   4StreamTests.test_start_unix_server.<locals>.<lambda>  r*   r   r  )
r   r.   r   unix_socket_pathre  r/   r   rw  r2   rs  )r   r  r  r  rK  r  r'   s         @r   test_start_unix_server"StreamTests.test_start_unix_server  s8    	'  	'D	 		''(NO ((*ddii.FLLN))..		%%fTl35CKKMS"34 + ((*ddii.F!!#))..		%%fTl35CKKMS"34 + 	2&# +* +*s   B E="B F=
F
Fc                 x  ^  " S S5      nS n/ mU R                   R                  U4S j5        U" U R                   5      nUR                  5       nU R                   R                  U" U5      5      u  pVUR	                  5         U R                  T/ 5        U R                  US5        U R                  US5        g )Nc                   ,    \ rS rSrS rS rS rS rSrg),StreamTests.test_start_tls.<locals>.MyServeri  c                     S U l         Xl        g r   rJ  rL  s     r   rM  5StreamTests.test_start_tls.<locals>.MyServer.__init__  rO  r   c                   #    UR                  5       I S h  vN nUR                  U5        UR                  5       I S h  vN   UR                  [        R
                  " 5       5      I S h  vN   UR                  5       I S h  vN nUR                  U5        UR                  5       I S h  vN   UR                  5         UR                  5       I S h  vN   g  N N Nr N\ N5 N7fr   )r1   r0   rR  	start_tlsr   simple_server_sslcontextr6   rS  )r   rU  rV  data1data2s        r   rW  :StreamTests.test_start_tls.<locals>.MyServer.handle_client  s     +4466##E*#))+++#--779; ; ; ,4466##E*#))+++##%#//111 7+; 7+1sh   C&C(C&C +C&+C,C&C (C&,C"-'C&C$C&C&C& C&"C&$C&c                     [         R                  " S5      nU R                  R                  [        R
                  " U R                  US95      U l        UR                  5       $ r\  r_  rd  s     r   re  2StreamTests.test_start_tls.<locals>.MyServer.start  rg  r   c                     U R                   bU  U R                   R                  5         U R                  R                  U R                   R	                  5       5        S U l         g g r   rv  r   s    r   rw  1StreamTests.test_start_tls.<locals>.MyServer.stop  ry  r   rz  N)	r|  r}  r~  r  rM  rW  re  rw  r  r   r   r   r  r    s    !2*'r   r  c                   #    [         R                  " U 6 I S h  vN u  pUR                  S5        UR                  5       I S h  vN   UR	                  5       I S h  vN nUR                  [        R                  " 5       5      I S h  vN   UR                  S5        UR                  5       I S h  vN   UR	                  5       I S h  vN nUR                  5         UR                  5       I S h  vN   X44$  N N N Nv NO N9 N7f)N   hello world 1!
   hello world 2!
)
r	   rA   r0   rR  r1   r  r   simple_client_sslcontextr6   rS  )rr  r9   r:   msgback1msgback2s        r   r  *StreamTests.test_start_tls.<locals>.client  s     #*#:#:D#AANFLL,-,,.  #__..H"":#F#F#HIIILL,-,,.  #__..HLLN$$&&&%% B .I !.&s{   DC9*DC;DC=+DC?	(D1D2D	D
'D1D2D;D=D?DDDDc                 &   > TR                  U5      $ r   r#   r%   s     r   r(   ,StreamTests.test_start_tls.<locals>.<lambda>.  r*   r   r  r  )r   r.   re  r/   rw  r2   )r   r  r  rK  rr  msg1msg2r'   s          @r   test_start_tlsStreamTests.test_start_tls  s    	' 	'B	& 		''(NO$))$||~YY11&,?
2&2323r   win32zDon't have pipesc                   ^ Sn[         R                  " 5       u  p#[        R                  SU[	        U5      /n[        USS5      n[        R                  " U R                  SS9n[        R                  " X`R                  S9mU R                  R                  U R                  R                  U4S jU5      5      u  px[        R                  " 5          [        R                  " S	[        5        [        R                   " 5       n	S S S 5        W	R#                  U R                  5         [        R                  " 5          [        R                  " S	[        5        [        R$                  " U	5        S S S 5        [        R&                  " US
U106n
U R                  R                  U
5      nU R                  R                  UR)                  5       5        [        R                  " 5          [        R                  " S	[        5        [        R$                  " S 5        S S S 5        [         R*                  " U5        U R                  R                  UR-                  S5      5      nU R/                  US5        g ! , (       d  f       GNw= f! , (       d  f       GN= f! , (       d  f       N= f! [        R                  " 5          [        R                  " S	[        5        [        R$                  " S 5        S S S 5        f ! , (       d  f       f = f= f)NzHimport os, sys
fd = int(sys.argv[1])
os.write(fd, b'data')
os.close(fd)
z-crbr   ro  r   rr   c                     > T $ r   r   protocols   r   r(   <StreamTests.test_read_all_from_pipe_reader.<locals>.<lambda>O  s    r   ignorepass_fdsr   r  )ospipesys
executabler(  openr	   rs   r   StreamReaderProtocolr/   connect_read_pipewarningscatch_warningssimplefilterDeprecationWarningSafeChildWatcherattach_loopset_child_watchercreate_subprocess_execr8  r6   r3   r2   )r   coderfdwfdargsr  r9   	transport_watchercreateprocr<   r  s                @r   test_read_all_from_pipe_reader*StreamTests.test_read_all_from_pipe_reader9  s    779dCH5Cq!%%499A>//YYGyy33II''(8$?A	$$&!!(,>?..0G ' 	DII&	0((*%%h0BC))'2 + 33F 99//7DII((5((*%%h0BC))$/ + 	yy++FKKO<w'+ '&
 +* +*((*%%h0BC))$/ +**sU   1I3'J( <2J.A#J( &2J3
J
JJ( 
J%(L
>2K90	L
9
LL
c                     U R                  [        S5         [        R                  " 5         S S S 5        g ! , (       d  f       g = fNzno current event loop)r   rA  r	   rs   r   s    r   *test_streamreader_constructor_without_loop6StreamTests.test_streamreader_constructor_without_loopg  s,    ##L2IJ  " KJJs	   6
Ac                     S nU R                   R                  U" 5       5      nU R                  UR                  U R                   5        g )Nc                  4   #    [         R                  " 5       $ 7fr   )r	   rs   r   r   r   testHStreamTests.test_streamreader_constructor_use_running_loop.<locals>.testn  s     ''))s   )r   r/   r/  _loop)r   r  r9   s      r   .test_streamreader_constructor_use_running_loop:StreamTests.test_streamreader_constructor_use_running_loopk  s5    	* --df5fllDII.r   c                     U R                  [        R                  S 5        [        R                  " U R                  5        [        R                  " 5       nU R                  UR                  U R                  5        g r   )
addCleanupr	   r   r   rs   r/  r  r   r9   s     r   -test_streamreader_constructor_use_global_loop9StreamTests.test_streamreader_constructor_use_global_loopt  sN     	..5tyy)%%'fllDII.r   c                     [         R                  " 5       nU R                  [        S5         [        R
                  " U5        S S S 5        g ! , (       d  f       g = fr  )r   Mockr   rA  r	   r  r  s     r   2test_streamreaderprotocol_constructor_without_loop>StreamTests.test_streamreaderprotocol_constructor_without_loop~  s9    ##L2IJ((0 KJJs   A
Ac                    ^ [         R                  " 5       mU4S jnU R                  R                  U" 5       5      nU R	                  UR
                  U R                  5        g )Nc                  8   >#    [         R                  " T 5      $ 7fr   )r	   r  )r9   s   r   r  PStreamTests.test_streamreaderprotocol_constructor_use_running_loop.<locals>.test  s     //77s   )r   r  r   r/   r/  r  )r   r  r  r9   s      @r   6test_streamreaderprotocol_constructor_use_running_loopBStreamTests.test_streamreaderprotocol_constructor_use_running_loop  sA     	899//7hnndii0r   c                 &   U R                  [        R                  S 5        [        R                  " U R                  5        [        R
                  " 5       n[        R                  " U5      nU R                  UR                  U R                  5        g r   )	r  r	   r   r   r   r  r  r/  r  )r   r9   r  s      r   5test_streamreaderprotocol_constructor_use_global_loopAStreamTests.test_streamreaderprotocol_constructor_use_global_loop  s[     	..5tyy)//7hnndii0r   c                 j   ^ ^^ SmU4S jmUUU 4S jnT R                   R                  U" 5       5        g )Nr   c                 L   >#    U R                  5       I S h  vN   TS-  mg  N
7f)Nro  )_drain_helper)rw   draineds    r   drainer0StreamTests.test_multiple_drain.<locals>.drainer  s&     &&(((qLG )s   $"$c                  v  >#    [         R                  " 5       n [         R                  R                  U 5      nUR	                  5         U R                  SUR                  5        [         R                  " [        S5       Vs/ s H  nT" U5      PM     sn6 I S h  vN   TR                  TS5        g s  snf  N7f)Ng?
   )
r	   get_running_loopstreamsFlowControlMixinpause_writing
call_laterresume_writinggatherranger2   )r   rw   r  r  r  r   s      r   main-StreamTests.test_multiple_drain.<locals>.main  s     ++-D__55d;F  "OOC!6!67..E"I"FIq76?I"FGGGWb) #GGs   A>B9B2B9B7B9)r   r/   )r   r  r  r  s   ` @@r   test_multiple_drainStreamTests.test_multiple_drain  s(    	
	* 			$$TV,r   c                   ^^ / mU R                   R                  U4S j5        [        R                  " 5       mU4S jnS n[        R
                  " US9nSUl        UR                  5         TR                  5       nU R                  [        [        [        45         U R                   R                  U" U6 5        S S S 5        UR                  5         U R                  / T5        g ! , (       d  f       N1= f)Nc                 &   > TR                  U5      $ r   r#   r%   s     r   r(   /StreamTests.test_drain_raises.<locals>.<lambda>  r*   r   c                     > [         R                  " S5       n U R                  5       nTR                  U5        U R	                  5       u  p#UR                  5         S S S 5        g ! , (       d  f       g = f)N)	localhostr   )r`  ra  rc  putacceptr6   )r^  rr  cltr  qs       r   rK  -StreamTests.test_drain_raises.<locals>.server  sO    %%&674'')d			 877s   AA%%
A3c                    #    [         R                  " X5      I S h  vN u  p# UR                  S5        UR                  5       I S h  vN   M+   N2 N7f)Ns   foo
)r	   rA   r0   rR  )rp  rq  r9   r:   s       r   r  -StreamTests.test_drain_raises.<locals>.client  sH     #*#:#:4#FFNFX&lln$$  G %s!   AA+AA	AA)targetT)r   r.   queueQueue	threadingThreaddaemonre  getrg   ConnectionResetErrorConnectionAbortedErrorBrokenPipeErrorr/   joinr2   )r   rK  r  threadrr  r'   r  s        @@r   test_drain_raisesStreamTests.test_drain_raises  s     		''(NOKKM		% !!0uuw  46L / 1 2II((72 	X&2 2s   C''
C5c                 v    [         R                  " U R                  S9nU R                  S[	        U5      5        g )Nrr   <StreamReader>r	   rs   r   r2   reprrv   s     r   test___repr__StreamTests.test___repr__  s+    %%4995)4<8r   c                 x    [         R                  " U R                  SS9nU R                  S[	        U5      5        g )N{   r   z<StreamReader limit=123>r1  rv   s     r   test___repr__nondefault_limit)StreamTests.test___repr__nondefault_limit  s-    %%499C@3T&\Br   c                     [         R                  " U R                  S9nUR                  5         U R	                  S[        U5      5        g )Nrr   z<StreamReader eof>)r	   rs   r   r   r2   r2  rv   s     r   test___repr__eofStreamTests.test___repr__eof  s5    %%4995-tF|<r   c                     [         R                  " U R                  S9nUR                  S5        U R	                  S[        U5      5        g )Nrr   r  z<StreamReader 4 bytes>)r	   rs   r   rt   r2   r2  rv   s     r   test___repr__dataStreamTests.test___repr__data  s9    %%4995!14<@r   c                     [         R                  " U R                  S9n[        5       nUR	                  U5        U R                  S[        U5      5        g )Nrr   z'<StreamReader exception=RuntimeError()>)r	   rs   r   rA  r   r2   r2  r0  s      r   test___repr__exception"StreamTests.test___repr__exception  sC    %%4995nS!Bf	'r   c                    [         R                  " U R                  S9n[         R                  " U R                  S9Ul        U R                  [        U5      S5        UR                  R                  S 5        U R                  R                  UR                  5        S Ul        U R                  S[        U5      5        g )Nrr   z,<StreamReader waiter=<Future pending[\S ]*>>r0  )
r	   rs   r   FuturerB  assertRegexr2  
set_resultr/   r2   rv   s     r   test___repr__waiterStreamTests.test___repr__waiter  s    %%4995 TYY7L;	= 	!!$'		$$V^^4)4<8r   c                 (   [         R                  " U R                  S9n[        R                  " 5       Ul        [        R                  " 5       UR
                  l        SUR
                  R                  l        U R                  S[        U5      5        g )Nrr   z<Transport>z$<StreamReader transport=<Transport>>)
r	   rs   r   r   r  
_transport__repr__return_valuer2   r2  rv   s     r   test___repr__transport"StreamTests.test___repr__transport  sa    %%4995 IIK%)YY["2?""/?fNr   c           	         [         R                  " SS5      n[        [        R                  S-   5       H  nU R                  US9   [        R                  " [        R                  " XS95      nU R                  [        U5      [        U5      5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        S S S 5        M     g ! , (       d  f       M  = f)Ns   abcr  ro  pickle_protocolr  )r	   r   r  pickleHIGHEST_PROTOCOLsubTestloadsdumpsr2   r(  r   r   r   eprotoe2s       r   #test_IncompleteReadError_pickleable/StreamTests.test_IncompleteReadError_pickleable  s    ''3622Q67Ee4\\&,,q"AB  QR1  BJJ7  R[[9	 54 844s   BC,,
C;	c           	         [         R                  " SS5      n[        [        R                  S-   5       H  nU R                  US9   [        R                  " [        R                  " XS95      nU R                  [        U5      [        U5      5        U R                  UR                  UR                  5        S S S 5        M     g ! , (       d  f       M  = f)Nr?  r  ro  rO  r  )r	   r  r  rQ  rR  rS  rT  rU  r2   r(  consumedrV  s       r   !test_LimitOverrunError_pickleable-StreamTests.test_LimitOverrunError_pickleable  s    %%i4622Q67Ee4\\&,,q"AB  QR1  R[[9 54 844s   A3C
C	c                    [         R                  " 5        nU R                  R                  [        R
                  " UR                  6 5      u  p#UR                  S5        UR                  5       nU R                  R                  U5      nU R                  US5        UR                  5       nU R                  R                  U5      nU R                  UR                  S5      5        U R                  UR                  5       5        UR                  5         U R                  UR                  5       5        U R                  R                  UR!                  5       5        S S S 5        g ! , (       d  f       g = fNr+   r,   r-   )r   r@   r   r/   r	   rA   rB   r0   r1   r2   r3   r4   r5   r   
is_closingr6   rS  r   rD   rdwrr;   r<   s         r   test_wait_closed_on_close%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((
E6c                    [         R                  " 5        nU R                  R                  [        R
                  " UR                  6 5      u  p#UR                  S5        UR                  5       nU R                  R                  U5      nU R                  US5        UR                  5         U R                  R                  UR                  5       5        S S S 5        g ! , (       d  f       g = f)Nr+   r,   )r   r@   r   r/   r	   rA   rB   r0   r1   r2   r6   rS  rc  s         r   *test_wait_closed_on_close_with_unread_data6StreamTests.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                   ^ ^ U 4S jn/ mT R                   R                  U4S j5        [        R                  " 5        nT R                   R	                  U" U5      5        S S S 5        T R                  T/ 5        g ! , (       d  f       N!= f)Nc                   >#    [         R                  " U R                  6 I S h  vN u  pUR                  S5        UR	                  5       I S h  vN nTR                  US5        UR                  5       I S h  vN nTR                  UR                  S5      5        UR                  5         UR                  5       I S h  vN   g  N Ny NQ N7fra  )r	   rA   rB   r0   r1   r2   r3   r4   r5   r6   rS  rD   rd  re  r<   r   s       r   inner0StreamTests.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                 &   > TR                  U5      $ r   r#   r%   s     r   r(   3StreamTests.test_async_writer_api.<locals>.<lambda>:  r*   r   r   r.   r   r@   r/   r2   r   rn  rD   r'   s   `  @r   test_async_writer_api!StreamTests.test_async_writer_api-  sf    		# 		''(NO'')UII((u6 * 	2& *)   "A<<
B
c                   ^ ^ U 4S jn/ mT R                   R                  U4S j5        [        R                  " 5        nT R                   R	                  U" U5      5        S S S 5        T R                  T/ 5        g ! , (       d  f       N!= f)Nc                 "  >#    [         R                  " U R                  6 I S h  vN u  pUR                  S5        UR	                  5       I S h  vN nTR                  US5        UR                  5       I S h  vN nTR                  UR                  S5      5        UR                  5         TR                  [        5         UR                  S5        UR                  5       I S h  vN   S S S 5        g  N N N N! , (       d  f       g = f7f)Nr+   r,   r-   r  )r	   rA   rB   r0   r1   r2   r3   r4   r5   r6   rg   r(  rR  rm  s       r   rn  FStreamTests.test_async_writer_api_exception_after_close.<locals>.innerB  s     "22EMMBBFBHH./&DT#9:?DOODMM*ABCHHJ""#78!hhj   98 C '"
 ! 98s^   !DC6*DC8)D9C::A	D%C>(C<)C>-
D8D:D<C>>
DDc                 &   > TR                  U5      $ r   r#   r%   s     r   r(   IStreamTests.test_async_writer_api_exception_after_close.<locals>.<lambda>P  r*   r   rr  rs  s   `  @r   +test_async_writer_api_exception_after_close7StreamTests.test_async_writer_api_exception_after_closeA  sf    	! 		''(NO'')UII((u6 * 	2& *)rv  c                 h  ^ / mU R                   R                  U4S j5        [        R                  " 5        nU R                   R	                  [
        R                  " UR                  6 5      u  p#UR                  5         UR                  5       nU R                   R	                  U5        U R                  UR                  5       5        UR                  5       nU R                   R	                  U5      nU R                  US5        S S S 5        U R                  T/ 5        g ! , (       d  f       N!= f)Nc                 &   > TR                  U5      $ r   r#   r%   s     r   r(   ?StreamTests.test_eof_feed_when_closing_writer.<locals>.<lambda>Z  r*   r   r   )r   r.   r   r@   r/   r	   rA   rB   r6   rS  r4   r   r3   r2   )r   rD   rd  re  r;   r<   r'   s         @r   !test_eof_feed_when_closing_writer-StreamTests.test_eof_feed_when_closing_writerW  s    		''(NO'')UYY11++U]];=FB HHJ AII((+OOBIIK(	A99//2DT3' * 	2& *)s   CD##
D1c                   ^ ^ U 4S jn/ mT R                   R                  U4S j5        [        R                  " 5        nT R                   R	                  U" U5      5        S S S 5        T R                  T/ 5        g ! , (       d  f       N!= f)Nc                   >#    [         R                  " U R                  6 I S h  vN u  pUR                  S5        UR	                  5       I S h  vN nTR                  US5        UR                  5       I S h  vN nTR                  UR                  S5      5        TR                  [        5       nA[        R                  " 5         TR                  [        UR                  5      S5        TR                  [        UR                  S   R                   5      R#                  S5      5        S S S 5        g  GN N N! , (       d  f       g = f7f)Nr+   r,   r-   ro  r   unclosed <StreamWriter)r	   rA   rB   r0   r1   r2   r3   r4   r5   assertWarnsResourceWarninggccollectr  r  r(  r?  
startswithrD   rd  re  r<   r   r   s        r   rn  :StreamTests.test_unclosed_resource_warnings.<locals>.innerk  s     "22EMMBBFBHH./&DT#9:?DOODMM*ABC!!/2b

  R[[!115BKKN$:$: ; F FG_ `a	 32 C '"22sL   !ED8*ED;)E9D=:9E3A<D?/
E;E=E?
E	Ec                 &   > TR                  U5      $ r   r#   r%   s     r   r(   =StreamTests.test_unclosed_resource_warnings.<locals>.<lambda>z  r*   r   rr  rs  s   `  @r   test_unclosed_resource_warnings+StreamTests.test_unclosed_resource_warningsj  sg    	b 		''(NO'')UII((u6 * 	2& *)rv  c                   ^ ^ U 4S jn/ mT R                   R                  U4S j5        [        R                  " 5        nT R	                  [
        5         T R                   R                  U" U5      5        S S S 5        [        R                  " 5         S S S 5        T R                  T/ 5        g ! , (       d  f       N>= f! , (       d  f       N2= f)Nc                   >#    [         R                  " U R                  6 I S h  vN u  pUR                  S5        UR	                  5       I S h  vN nTR                  US5        UR                  5       I S h  vN nTR                  UR                  S5      5        TR                  R                  5         UR                  5         TR                  R                  5       (       d?  [         R                  " S5      I S h  vN   TR                  R                  5       (       d  M?  TR                  [        5       nA[         R"                  " 5         TR                  [%        UR&                  5      S5        TR                  S[)        UR&                  S   R*                  5      5        S S S 5        g  GN GNf GN? N! , (       d  f       g = f7f)Nr+   r,   r-   g        ro  zloop is closedr   )r	   rA   rB   r0   r1   r2   r3   r4   r5   r   rw  r6   	is_closedsleepr  r  r  r  r  r  r(  r?  r  s        r   rn  @StreamTests.test_loop_is_closed_resource_warnings.<locals>.inner  s=    "22EMMBBFBHH./&DT#9:?DOODMM*ABC IINNHHJii))++mmC((( ii))++ !!/2b

  R[[!115  !13r{{1~7M7M3NO	 32 C '" )22se   !GF2*GF5)G9F8:BG F;#G&G;A.F=)
G5G8G;G=
GGc                 &   > TR                  U5      $ r   r#   r%   s     r   r(   CStreamTests.test_loop_is_closed_resource_warnings.<locals>.<lambda>  r*   r   )
r   r.   r   r@   rg   rA  r/   r  r  r2   rs  s   `  @r   %test_loop_is_closed_resource_warnings1StreamTests.test_loop_is_closed_resource_warnings  s    	P* 		''(NO'')U""<0		,,U5\: 1 JJL	 * 	2& 10 *)s#   C "B/7C /
B=	9C  
Cc                   ^ ^^^ UU 4S jmUU4S jn/ mT R                   R                  U4S j5        T R                   R                  5       mT R                   R                  U" 5       5        T R	                  T/ 5        g )Nc                   >#    TR                  S5        TR                  [        5       nA[        R                  " 5         TR                  [        UR                  5      S5        TR                  [        UR                  S   R                  5      R                  S5      5        S S S 5        g ! , (       d  f       g = f7f)NTro  r   r  )rE  r  r  r  r  r2   r  r  r4   r(  r?  r  )rd  re  r   futr   s      r   rn  AStreamTests.test_unclosed_server_resource_warnings.<locals>.inner  s}     NN4 !!/2b

  R[[!115BKKN$:$: ; F FG_ `a	 322s   'C A<B/&	C /
B=9C c                    >#    [         R                  " T[        R                  S5      I S h  vN n U  IS h  vN   U R                  S   R                  5       n[        R                  " U5         TI S h  vN   S S S 5        S S S 5      IS h  vN   g  Nf N] N!! , (       d  f       N%= f N! , IS h  vN  (       d  f       g = f7f)Nr   )r	   rb  r   HOSTv4socketsrc  r`  create_connection)srvrr  r  rn  s     r   outerAStreamTests.test_unclosed_server_resource_warnings.<locals>.outer  s     ,,UM4H4H!LLCs{{1~113--d3II 4 ss M  43 ssss~   *CB
CBC4B-0B6B7B;B-CB+CCB
B(	$B-+C-C3B64C Cc                 &   > TR                  U5      $ r   r#   r%   s     r   r(   DStreamTests.test_unclosed_server_resource_warnings.<locals>.<lambda>  r*   r   )r   r.   create_futurer/   r2   )r   r  r  rn  r'   s   ` @@@r   &test_unclosed_server_resource_warnings2StreamTests.test_unclosed_server_resource_warnings  s^    	b	 		''(NOii%%'		$$UW-2&r   c                    ^^^^ [         R                  " 5       m/ mU R                  R                  U4S j5        U4S jmUUU4S jnU R                  R	                  U" 5       5        T$ )Nc                 &   > TR                  U5      $ r   r#   r%   s     r   r(   <StreamTests._basetest_unhandled_exceptions.<locals>.<lambda>  r*   r   c                     >#    [         R                  " ST5      I S h  vN u  pUR                  S5        UR                  5       I S h  vN   UR	                  5         UR                  5       I S h  vN   g  NX N/ N	7f)Nr  s   test msg)r	   rA   r0   rR  r6   rS  )rd  re  rq  s     r   r  :StreamTests._basetest_unhandled_exceptions.<locals>.client  s]     "22;EEFBHH[!((*HHJ.."""	 F"s3   A=A7*A=	A9
'A=1A;2A=9A=;A=c                     >#    [         R                  " TST5      I S h  vN n U R                  5       I S h  vN   T" 5       I S h  vN   U R                  5         U R	                  5       I S h  vN   g  NT N> N1 N7f)Nr  )r	   rb  start_servingr6   rS  )rK  r  handle_echorq  s    r   r  8StreamTests._basetest_unhandled_exceptions.<locals>.main  sf     "//[$0 0F&&((((NNLLN$$&&&0(&sC   A<A4A<A6A<A8'A<.A:/A<6A<8A<:A<)r   find_unused_portr   r.   r/   )r   r  r  r  r'   rq  s    ` @@@r   _basetest_unhandled_exceptions*StreamTests._basetest_unhandled_exceptions  sN    --/		''(NO	#	' 			$$TV,r   c                 \    S nU R                  U5      nU R                  US   S   S5        g )Nc                     #    [        S5      e7f)Nr  )	Exceptionr9   r:   s     r   r  9StreamTests.test_unhandled_exception.<locals>.handle_echo  s     F##s   r   r?  z*Unhandled exception in client_connected_cbr  r2   r   r  r'   s      r   test_unhandled_exception$StreamTests.test_unhandled_exception  s4    	$66{C!Y/@	Br   c                 P    S nU R                  U5      nU R                  U/ 5        g )Nc                 r   #    UR                  5         [        R                  " 5       R                  5         g 7fr   )r6   r	   current_taskr@  r  s     r   r  6StreamTests.test_unhandled_cancel.<locals>.handle_echo  s#     LLN  "))+s   57r  r  s      r   test_unhandled_cancel!StreamTests.test_unhandled_cancel  s)    	, 66{C2&r   c                 v   ^ ^ [         R                  " 5       mUU 4S jn[        R                  " U" 5       5        g )Nc                  0  >#    S n  [         R                  " STSS9I S h  vN   TR	                  U 5        TR                  [        R                  " U 5      / 5        g  N<! / =[         =b  nUR                  S   n S nAPO	S nAP  PO  P8=c     Nks f = f7f)Nr  g      ?)rp  rq  happy_eyeballs_delayr   )r	   rA   OSError
exceptionsassertIsNotNoneassertListEqualr  get_referrers)r1  excsrq  r   s     r   r  FStreamTests.test_open_connection_happy_eyeball_refcycles.<locals>.main  s     C)--$)-     %  !1!1#!6;
)G )ooa()s7   BA AA 8BA B,B 	;BB)r   r  r	   run)r   r  rq  s   ` @r   ,test_open_connection_happy_eyeball_refcycles8StreamTests.test_open_connection_happy_eyeball_refcycles  s&    --/	< 	DFr   rr   )_r|  r}  r~  r  r|   r   r   r=   rF   r   skip_unless_bind_unix_socketrL   rR   unittestskipIfrW   rY   r_   rh   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  r   r#  r)  r,  r2  r<  rD  r  r  r  r  platformr   r  r  r  r  r  r  r  r  r-  r3  r7  r:  r=  r@  rF  rL  rZ  r^  rf  ri  rt  r|  r  r  r  r  r  r  r  r  r  __classcell__)r   s   @r   r   r      s   #D'
'5
 //5 05
' __SD[/2A 3A //__SD[/2A 3 0A
';
 //; 0;
.44.	3.. 	F;.5".6)-.^
<-$	4
.I1$!.F.: 0"81.44"..&	M/1
,D'L //C' 0C'J __SD[/2<4 3<4| __S\\W,.@A*(  B*(X#//1
11-&)'V9C=
A
'	9O::;"
;'(','&'.'B'20B' r   r   __main__)r  r  r"  rQ  r`  r  r$  r  r   r  rW   ImportErrorr	   test.test_asyncior   r   test.supportr   r   r   TestCaser   r|  r  r   r   r   <module>r     s    
 	    
      1 ;(V*%% Vr& zMMO K'  
Cs   A3 3A>=A>