
    0hh                    6
   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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Jr  S SKJrJr  S SKJr  S SKJrJrJr  S SKJrJrJrJrJ r   S SK!J"r"  S SK#r#S SK$r$S SK%r& S SK'r'S r( " S	 S
\'RR                  5      r*S r,\RZ                  " \." \S5      S5      r/ " S S5      r0 " S S5      r1 " S S\1\$Rd                  5      r3 " S S\1\&Rd                  5      r4 " S S\15      r5 " S S\5\$Rd                  5      r6 " S S\5\&Rd                  5      r7 " S S\55      r8 " S S \8\$Rd                  5      r9 " S! S"\8\&Rd                  5      r: " S# S$\55      r; " S% S&\;\$Rd                  5      r< " S' S(\;\&Rd                  5      r= " S) S*\55      r> " S+ S,\>\$Rd                  5      r? " S- S.\>\&Rd                  5      r@ " S/ S05      rA " S1 S2\A\$R                  5      rC " S3 S4\A\&R                  5      rD " S5 S65      rE " S7 S8\E\$R                  5      rF " S9 S:\E\&R                  5      rG " S; S<\A5      rH " S= S>\H\$R                  5      rI " S? S@\H\&R                  5      rJ " SA SB5      rK " SC SD\K\$Rd                  5      rL " SE SF\K\&Rd                  5      rM " SG SH\R                  5      rO " SI SJ\O5      rP\R                   " SK SL\R                  5      5       rR " SM SN\O5      rS\R                   " SO SP\R                  5      5       rT " SQ SR5      rU " SS ST5      rV " SU SV\R                  \U5      rW " SW SX\W\V5      rX " SY SZ\W5      rY " S[ S\\R                  \U5      rZ " S] S^\Z\V5      r[ " S_ S`\Z5      r\ " Sa Sb\R                  5      r] " Sc Sd\]5      r^ " Se Sf\]5      r_ " Sg Sh\W\Z5      r` " Si Sj\`\V5      ra " Sk Sl\`5      rb " Sm Sn\#R                  5      rdSo re " Sp Sq\R                  5      rf " Sr Ss\R                  5      rg " St Su\$R                  5      rhSv ri " Sw Sx\g5      rj " Sy Sz\g5      rk " S{ S|\R                  5      rl " S} S~\l5      rm " S S\l5      rn " S S\R                  5      ro " S S\o5      rp " S S\o5      rq\R                  " \R                  S:H  S5       " S S\R                  5      5       rt " S S\t5      ru " S S\t5      rvS rw\xS:X  a  \R                  " 5         gg! \+ a    S r( GN}f = f)    N)dequeUserList)cyclecount)support)assert_python_okassert_python_failurerun_python_until_end)import_helperis_apple	os_helperthreading_helperwarnings_helper)FakePathc                      [        U 0 UD6n[        5       n[        R                  " U[	        U5      5        U[        U5      R                  S5      S S & U$ )NB)bytesEmptyStructctypesresizelen
memoryviewcast)poskwdataobjs       5/opt/python-3.13.8/usr/lib/python3.13/test/test_io.py	bytesliker   9   sH    c R mc3t9%'+
3S!!$
    c                       \ rS rSrSrg)r   @    N__name__
__module____qualname____firstlineno____static_attributes__r#   r    r   r   r   @   s    r    r   c                  B    [         R                   " S[        U 0 UD65      $ )Nb)arrayr   )r   r   s     r   r   r   6   s    {{3s 1b 122r    c                  n    [        [        SSS9 n U R                  sS S S 5        $ ! , (       d  f       g = f)Nrlatin-1encoding)open__file___CHUNK_SIZE)fs    r   _default_chunk_sizer6   D   s#    	hi	0A}} 
1	0	0s   &
4alarmztest requires signal.alarm()c                       \ rS rSrS rSrg)BadIndexN   c                     SS-    g N   r   r#   selfs    r   	__index__BadIndex.__index__O   	    	!r    r#   N)r%   r&   r'   r(   r@   r)   r#   r    r   r9   r9   N   s    r    r9   c                   X    \ rS rSrSS jrS rS rS rS rS r	S r
S	 rS
 rSS jrSrg)MockRawIOWithoutReadR   c                 N    [        U5      U l        / U l        SU l        SU l        g Nr   )list_read_stack_write_stack_reads_extraneous_reads)r?   
read_stacks     r   __init__MockRawIOWithoutRead.__init__V   s&    
+!"r    c                 `    U R                   R                  [        U5      5        [        U5      $ N)rJ   appendr   r   r?   r+   s     r   writeMockRawIOWithoutRead.write\   s#      q*1vr    c                     gNTr#   r>   s    r   writableMockRawIOWithoutRead.writable`       r    c                     gN*   r#   r>   s    r   filenoMockRawIOWithoutRead.filenoc   s    r    c                     grW   r#   r>   s    r   readableMockRawIOWithoutRead.readablef   rZ   r    c                     grW   r#   r>   s    r   seekableMockRawIOWithoutRead.seekablei   rZ   r    c                     grG   r#   r?   r   whences      r   seekMockRawIOWithoutRead.seekl       r    c                     grG   r#   r>   s    r   tellMockRawIOWithoutRead.tello   rk   r    c                 ^   U =R                   S-  sl         [        U5      n U R                  S   nUc  U R                  S	 g [        U5      n[        U5      U::  a  U R                  S	 X1S U& U$ US U US S & X2S  U R                  S'   U$ ! [         a    U =R                  S-  sl         gf = fr<   )rK   r   rI   
IndexErrorrL   )r?   bufmax_lenr   ns        r   readintoMockRawIOWithoutRead.readintor   s    qc(	##A&D <  #It9  #GH(7^CF"&x.DQN  	""a'"	s   B
 
B,+B,Nc                     U$ rQ   r#   )r?   r   s     r   truncateMockRawIOWithoutRead.truncate   s    
r    )rL   rI   rK   rJ   )r#   rQ   )r%   r&   r'   r(   rN   rT   rX   r^   ra   rd   ri   rm   rt   rw   r)   r#   r    r   rD   rD   R   s4    #*r    rD   c                       \ rS rSrSrg)CMockRawIOWithoutRead   r#   Nr$   r#   r    r   rz   rz          r    rz   c                       \ rS rSrSrg)PyMockRawIOWithoutRead   r#   Nr$   r#   r    r   r~   r~      r|   r    r~   c                       \ rS rSrSS jrSrg)	MockRawIO   Nc                     U =R                   S-  sl          U R                  R                  S5      $ !   U =R                  S-  sl         g= f)Nr=   r   r    )rK   rI   poprL   r?   rs   s     r   readMockRawIO.read   sG    q	##''**	""a'"s	   2 Ar#   rQ   r%   r&   r'   r(   r   r)   r#   r    r   r   r      s    r    r   c                       \ rS rSrSrg)
CMockRawIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                       \ rS rSrSrg)PyMockRawIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                   P   ^  \ rS rSrU 4S jrSU 4S jjrS rS rU 4S jrSr	U =r
$ )	MisbehavedRawIO   c                 (   > [         TU ]  U5      S-  $ N   )superrT   )r?   r+   	__class__s     r   rT   MisbehavedRawIO.write   s    w}Q!##r    c                 (   > [         TU ]  U5      S-  $ r   )r   r   )r?   rs   r   s     r   r   MisbehavedRawIO.read   s    w|A""r    c                     g)Nir#   rg   s      r   ri   MisbehavedRawIO.seek   rZ   r    c                     g)Ni8r#   r>   s    r   rm   MisbehavedRawIO.tell   rZ   r    c                 >   > [         TU ]  U5        [        U5      S-  $ N   )r   rt   r   )r?   rq   r   s     r   rt   MisbehavedRawIO.readinto   s    3x!|r    r#   rQ   )r%   r&   r'   r(   rT   r   ri   rm   rt   r)   __classcell__r   s   @r   r   r      s!    $# r    r   c                       \ rS rSrSrg)CMisbehavedRawIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                       \ rS rSrSrg)PyMisbehavedRawIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )SlowFlushRawIO   c                 V   > [         TU ]  5         [        R                  " 5       U l        g rQ   )r   rN   	threadingEventin_flush)r?   r   s    r   rN   SlowFlushRawIO.__init__   s    !)r    c                 d    U R                   R                  5         [        R                  " S5        g )Ng      ?)r   settimesleepr>   s    r   flushSlowFlushRawIO.flush   s    

4r    )r   )r%   r&   r'   r(   rN   r   r)   r   r   s   @r   r   r      s    * r    r   c                       \ rS rSrSrg)CSlowFlushRawIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                       \ rS rSrSrg)PySlowFlushRawIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                       \ rS rSrSrS rSrg)CloseFailureIO   r   c                 @    U R                   (       d  SU l         [        eg Nr=   closedOSErrorr>   s    r   closeCloseFailureIO.close   s    {{DKM r    )r   N)r%   r&   r'   r(   r   r   r)   r#   r    r   r   r      s    Fr    r   c                       \ rS rSrSrg)CCloseFailureIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                       \ rS rSrSrg)PyCloseFailureIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                   D   ^  \ rS rSrU 4S jrSU 4S jjrU 4S jrSrU =r$ )
MockFileIO   c                 2   > / U l         [        TU ]	  U5        g rQ   )read_historyr   rN   r?   r   r   s     r   rN   MockFileIO.__init__   s    r    c                    > [         TU ]  U5      nU R                  R                  Uc  S 5        U$ [	        U5      5        U$ rQ   )r   r   r   rR   r   )r?   rs   resr   s      r   r   MockFileIO.read   s>    gl1o  C
 ;>c(C
r    c                 \   > [         TU ]  U5      nU R                  R                  U5        U$ rQ   )r   rt   r   rR   )r?   r+   r   r   s      r   rt   MockFileIO.readinto   s+    gq!  %
r    )r   rQ   )	r%   r&   r'   r(   rN   r   rt   r)   r   r   s   @r   r   r      s    
 r    r   c                       \ rS rSrSrg)CMockFileIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                       \ rS rSrSrg)PyMockFileIO   r#   Nr$   r#   r    r   r   r      r|   r    r   c                   ,    \ rS rSrS rS rS rS rSrg)MockUnseekableIO   c                     gNFr#   r>   s    r   rd   MockUnseekableIO.seekable   s    r    c                 $    U R                  S5      eNznot seekableUnsupportedOperationr?   argss     r   ri   MockUnseekableIO.seek       ''77r    c                 $    U R                  S5      er   r   r   s     r   rm   MockUnseekableIO.tell   r   r    c                 $    U R                  S5      er   r   r   s     r   rw   MockUnseekableIO.truncate   r   r    r#   N)	r%   r&   r'   r(   rd   ri   rm   rw   r)   r#   r    r   r   r      s    888r    r   c                   ,    \ rS rSr\R
                  rSrg)CMockUnseekableIO   r#   N)r%   r&   r'   r(   ior   r)   r#   r    r   r   r      s    22r    r   c                   ,    \ rS rSr\R
                  rSrg)PyMockUnseekableIO   r#   N)r%   r&   r'   r(   pyior   r)   r#   r    r   r   r      s    44r    r   c                   4   ^  \ rS rSrU 4S jrS rS rSrU =r$ )MockCharPseudoDevFileIOi  c                 $   > [         TU ]  U5        g rQ   )r   rN   r   s     r   rN    MockCharPseudoDevFileIO.__init__	  s    r    c                     grG   r#   r   s     r   ri   MockCharPseudoDevFileIO.seek  rk   r    c                     grG   r#   r   s     r   rm   MockCharPseudoDevFileIO.tell  rk   r    r#   )	r%   r&   r'   r(   rN   ri   rm   r)   r   r   s   @r   r   r     s    
 r    r   c                       \ rS rSrSrg)CMockCharPseudoDevFileIOi  r#   Nr$   r#   r    r   r  r    r|   r    r  c                       \ rS rSrSrg)PyMockCharPseudoDevFileIOi  r#   Nr$   r#   r    r   r  r    r|   r    r  c                   H    \ rS rSrS rS rS rS rS rSS jr	S r
S	 rS
rg)MockNonBlockWriterIOi  c                      / U l         S U l        g rQ   )rJ   _blocker_charr>   s    r   rN   MockNonBlockWriterIO.__init__  s    !r    c                 Z    SR                  U R                  5      n/ U R                  S S & U$ Nr    )joinrJ   )r?   ss     r   pop_written MockNonBlockWriterIO.pop_written  s+    HHT&&'!!r    c                     Xl         g rQ   )r	  )r?   chars     r   block_onMockNonBlockWriterIO.block_on$  s    !r    c                     grW   r#   r>   s    r   ra   MockNonBlockWriterIO.readable(  rZ   r    c                     grW   r#   r>   s    r   rd   MockNonBlockWriterIO.seekable+  rZ   r    c                     grG   r#   rg   s      r   ri   MockNonBlockWriterIO.seek.  s    r    c                     grW   r#   r>   s    r   rX   MockNonBlockWriterIO.writable2  rZ   r    c                 >   [        U5      nSnU R                  (       aJ   UR                  U R                  5      nUS:  a   U R                  R	                  US U 5        U$ S U l        g U R                  R	                  U5        [        U5      $ ! [
         a     N2f = f)Nr   )r   r	  indexrJ   rR   
ValueErrorr   )r?   r+   rs   s      r   rT   MockNonBlockWriterIO.write5  s    !H GGD../ q5%%,,QrU3H *.D&  #1v  s   B 
BB)r	  rJ   Nr   )r%   r&   r'   r(   rN   r  r  ra   rd   ri   rX   rT   r)   r#   r    r   r  r    s*    "
"r    r  c                   ,    \ rS rSr\R
                  rSrg)CMockNonBlockWriterIOiI  r#   N)r%   r&   r'   r(   r   BlockingIOErrorr)   r#   r    r   r$  r$  I  s    ((Or    r$  c                   ,    \ rS rSr\R
                  rSrg)PyMockNonBlockWriterIOiL  r#   N)r%   r&   r'   r(   r   r%  r)   r#   r    r   r'  r'  L  s    **Or    r'  c                      \ rS rSrS rS rS rS9S jrSrS r	S r
\R                  " \R                  S	5      \R                  " \" \S
5      S5      S 5       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( r.S) r/S* r0S+ r1S, r2S- r3S. r4S/ r5S0 r6S1 r7S2 r8S3 r9S4 r:S5 r;\<Rz                  " 5       S6 5       r>S7r?g8):IOTestiP  c                 L    [         R                  " [         R                  5        g rQ   r   unlinkTESTFNr>   s    r   setUpIOTest.setUpR      ))*r    c                 L    [         R                  " [         R                  5        g rQ   r+  r>   s    r   tearDownIOTest.tearDownU  r0  r    c                    U R                  UR                  S5      S5        UR                  S5        U R                  UR                  5       S5        UR	                  S5        U R                  UR                  S5      S5        U R                  UR	                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  5       S5        U R                  UR	                  SS5      S5        U R                  UR                  5       S5        [        S5      nU R                  UR                  U5      S	5        S
US S & U R                  UR	                  S5      S5        U R                  UR                  S5      S5        U R                  UR	                  SS5      S5        U R                  UR                  5       S5        U R                  UR                  S5      S5        U R                  UR                  5       S5        U R                  [        UR                  S5        g )Ns   blah.r   r   s   Hello.   r  r=   s	    world


	   s	   *********   hr                 )assertEqualrT   rw   rm   ri   	bytearrayassertRaises	TypeError)r?   r5   buffers      r   	write_opsIOTest.write_opsX  s   *A.	

11%	q	*A.A&+Q/1%A*1%?+!,q	A&*A+2&B,2&)QVVS1r    c                    UR                  S5      nU R                  US5        [        U5      nU R                  UR                  U5      S5        U R                  [	        U5      S5        [        S5      nU R                  UR                  U5      S5        U R                  [        U5      S5        U R                  US S S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S	5      S
5        U R                  UR                  [        S5      5      S5        U R                  UR                  SS5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S
5        U R                  UR                  [        5       5      S5        U R                  UR                  SS	5      S5        U R                  UR                  S5      S5        U R                  UR                  5       S5        U R                  [        UR                  S5        U(       a  UR                  S5        U R                  UR                  5       S5        UR                  S5        U R                  UR                  5       S5        U R                  UR                  5       S
5        UR                  S5        [        S5      nU R                  UR                  U5      S5        U R                  [	        U5      S5        g g )Nr   s   hellos    worlr      d
r         hello world
r=   r       xir5  s   world
   r:  s   world
)r   r;  r   rt   r   r<  r   ri   rm   r=  r>  	readinto1)r?   r5   bufferedr   s       r   read_opsIOTest.read_opsp  sl   vvayx(D)1-th/|D)1-TA&bq6*A&%56C(IdO4a8A*H-C(IK0!4A*H-2&)QVVS1FF1IQVVX'78FF1IQVVXz2QVVXs+FF1IQ<DQ[[.2U4[(3 r    l        c                     U R                  UR                  U R                  5      U R                  5        U R                  UR                  5       U R                  5        U R                  UR                  S5      S5        U R                  UR                  5       U R                  S-   5        U R                  UR                  SS5      U R                  S-   5        U R                  UR                  5       U R                  S-   5        U R                  UR                  5       U R                  S-   5        U R                  UR                  SS5      U R                  S-   5        U R                  UR                  U R                  S-   5      U R                  S-   5        U R                  UR                  5       U R                  S-   5        U R                  UR                  SS5      U R                  S-   5        U R                  UR                  SS5      U R                  5        U R                  UR                  S5      S5        g ! [        [        4 a    U R                  S5         GN9f = f)	Nzno largefile support   xxx   r  r=   r   r   rF  )
r;  ri   LARGEOverflowErrorr   skipTestrm   rT   rw   r   r?   r5   s     r   large_file_opsIOTest.large_file_ops  s   	2QVVDJJ/< 	4::.!,4::>2A

Q7tzzA~64::>21tzzA~6DJJN3TZZ!^D4::>21tzzA~6A

3D) z* 	2MM01	2s   5I !I10I1c                    U R                   nU R                  [        R                  SSS9 nU R	                  XR
                  5        U R	                  XR                  5        S S S 5        U R                  [        R                  S5       nU R	                  XR
                  5        U R	                  XR                  5        S S S 5        U R                  [        R                  SSS9 nU R	                  XR
                  5        U R	                  XR                  5        S S S 5        U R                  [        R                  SSS9 nU R	                  XR                  S5        U R	                  XR                  S	/5        S S S 5        U R                  [        R                  S5       nU R	                  XR                  S5        U R	                  XR                  S	/5        S S S 5        U R                  [        R                  S
SS9 nU R	                  XR                  S5        U R	                  XR                  S/5        U R	                  XR                  SU R                  5        U R	                  XR                  SU R                  5        S S S 5        g ! , (       d  f       GN?= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNW= f! , (       d  f       GN= f! , (       d  f       g = f)Nwutf-8r0   wbr   	bufferingrbs   blahs   blah
r.   blahzblah
r=   r  )r   r2   r   r-  r=  r   readlinerT   
writelinesri   SEEK_CURSEEK_END)r?   excfps      r   test_invalid_operationsIOTest.test_invalid_operations  s$   ''YYy''wY?2c77+c;;/ @ YYy''."c77+c;;/ / YYy''Y;rc77+c;;/ < YYy''Y;rc88W5c==9+> < YYy''."c88W5c==9+> / YYy''wY?2c88V4c==8*=c77At}}=c77B> @? @? /. <; <; /. @?sH   7J7J-)7J?:K):K#
BK5
J*-
J<?
K
K #
K25
L%fstat() of a pipe fd is not supportedpiperequires os.pipe()c                   ^  U 4S jnU 4S jnU 4S jnU 4S jnU 4S jnU 4S jnU 4S jnU 4S jnUS	4US
4US4US4US4US4US4US4T R                   S4T R                  S44
n	U	 GH  u  pT R                  U
5         U
" 5        nSU;   nT R                  UR	                  5       U5        SU;   nT R                  UR                  5       U5        [        UT R                  5      (       a  SnO;[        UT R                  T R                  45      (       a  SnOT R                  S5        SU;   a  UR                  5         O T R                  [        UR                  5        U(       a"  UR                  S5        UR                  5         OAT R                  [        UR                  S5        T R                  [        UR                  5        U(       a  UR                  W5        O!T R                  [        UR                  W5        [         R"                  R%                  S5      (       a  U
X4;   a   S S S 5        S S S 5        GM  SU;   nT R                  UR'                  5       U5        U(       a"  UR)                  5         UR+                  S5        OAT R                  [        UR(                  5        T R                  [        UR*                  S5        U(       a)  U(       a"  UR-                  5         UR-                  S5        OAT R                  [        UR,                  5        T R                  [        UR,                  S5        S S S 5        S S S 5        GM     g ! , (       d  f       N= f! , (       d  f       GM  = f)Nc                     > [         R                  " 5       u  p[         R                  " U5        TR                  U S5      $ )Nr.   )osrf  r   FileIO)r.   rV  r?   s     r   pipe_reader3IOTest.test_optional_abilities.<locals>.pipe_reader  s,    WWYFQHHQK;;q#&&r    c                  6  > [         R                  " 5       u  pTR                  [         R                  U 5        [        R
                  " [         R                  U S4S9nUR                  5         TR                  UR                  5        TR                  US5      $ )Nd   targetr   rV  )
rj  rf  
addCleanupr   r   Threadr   startr  rk  )r.   rV  threadr?   s      r   pipe_writer3IOTest.test_optional_abilities.<locals>.pipe_writer  sf    WWYFQOOBHHa(%%RWWAs8DFLLNOOFKK(;;q#&&r    c                  B   > T R                  T R                  5       5      $ rQ   )BufferedReaderr   r>   s   r   buffered_reader7IOTest.test_optional_abilities.<locals>.buffered_reader      &&t'<'<'>??r    c                  B   > T R                  T R                  5       5      $ rQ   )BufferedWriterr   r>   s   r   buffered_writer7IOTest.test_optional_abilities.<locals>.buffered_writer  r|  r    c                  B   > T R                  T R                  5       5      $ rQ   )BufferedRandomBytesIOr>   s   r   buffered_random7IOTest.test_optional_abilities.<locals>.buffered_random  s    &&t||~66r    c                  `   > T R                  T R                  5       T R                  5       5      $ rQ   )BufferedRWPairr   r>   s   r   buffered_rw_pair8IOTest.test_optional_abilities.<locals>.buffered_rw_pair  s-    &&t'<'<'>%%') )r    c                  b   >  " U4S jSTR                   5      n TR                  U " 5       S5      $ )Nc                   r   > \ rS rSr Y R                  R
                  r Y R                  R                  rSrg)MIOTest.test_optional_abilities.<locals>.text_reader.<locals>.UnseekableReaderi  r#   N)r%   r&   r'   r(   BufferedIOBaserX   rT   r)   r>   s   r   UnseekableReaderr    s%    ..77++11r    r  asciir   TextIOWrapper)r  r?   s    r   text_reader3IOTest.test_optional_abilities.<locals>.text_reader  s.    24#8#8 2 %%&6&8'BBr    c                  b   >  " U4S jSTR                   5      n TR                  U " 5       S5      $ )Nc                   r   > \ rS rSr Y R                  R
                  r Y R                  R                  rSrg)MIOTest.test_optional_abilities.<locals>.text_writer.<locals>.UnseekableWriteri  r#   N)r%   r&   r'   r(   r  ra   r   r)   r>   s   r   UnseekableWriterr    s%    ..77**//r    r  r  r  )r  r?   s    r   text_writer3IOTest.test_optional_abilities.<locals>.text_writer  s.    04#8#8 0 %%&6&8'BBr    frfwr.   rV  rwsrw3   3zUnknown base classr5   r=   winr  r   )r  StringIOsubTestr;  ra   rX   
isinstance
TextIOBaser  	RawIOBasefailr^   r=  r   r   rT   sysplatform
startswithrd   rm   ri   rw   )r?   rl  rv  rz  r  r  r  r  r  teststest	abilitiesr   ra   rX   r   rd   s   `                r   test_optional_abilitiesIOTest.test_optional_abilities  s   	'
	'	@	@	7	)	C	C $+t!4c"_c$:e$'7&>#c 2\\5!DMM5#9
 "'Td#TVs)+  :)+  :c4??33Dd&9&94>>%JKKDII23)#JJL%%gszz:HHQKHHJ%%gsxx;%%gsxx8IIdO%%gsyy$?<<**511d#?2 72 C &,##D )+  :HHJHHQK%%gsxx8%%gsxx;LLNLLO%%gs||<%%gs||Q?c &,## "'%+V##s2   ?M,F+M2M,D MM,
M)%M,,
M<	c           	      8   SnU R                  [        U R                  USSS9  [        US5      n[        R
                  " 5          [        R                  " S[        5        U R                  [        U R                  USSS9  S S S 5        g ! , (       d  f       g = f)Nzfoo barrV  rW  r0   r  ignore)r=  r   r2   r   warningscatch_warningssimplefilterDeprecationWarning)r?   fn_with_NULbytes_fns      r   test_open_handles_NUL_chars"IOTest.test_open_handles_NUL_chars,  sv     *diicGTg.$$&!!(,>?j$))XsWU '&&s   =B
Bc                    U R                  [        R                  SSS9 nU R                  UR	                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  U5        S S S 5        U R                  [        R                  SSS9 nU R                  UR	                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrX  r   rY  FTr[  	r2   r   r-  r;  ra   rX   rd   r@  rJ  rR  s     r   test_raw_file_ioIOTest.test_raw_file_io5  s    YYy''Y;qQZZ\51QZZ\40QZZ\40NN1	 <
 YYy''Y;qQZZ\40QZZ\51QZZ\40MM!	 <; <;
 <;s   A2D49A2E4
E
Ec                    U R                  [        R                  S5       nU R                  UR	                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  U5        S S S 5        U R                  [        R                  S5       nU R                  UR	                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  US5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrX  FTr[  r  rR  s     r   test_buffered_file_ioIOTest.test_buffered_file_ioA  s    YYy''.!QZZ\51QZZ\40QZZ\40NN1	 /
 YYy''.!QZZ\40QZZ\51QZZ\40MM!T"	 /. /.
 /.s   A2D7;A3E7
E
Ec                    U R                  [        R                  S5       nUR                  S5        S S S 5        U R                  [        R                  S5       nU R	                  UR                  5       S5        U R	                  UR                  S5      S5        U R	                  UR                  S5      S5        U R	                  UR                  S	5      S
5        U R	                  UR                  5       S5        U R	                  UR                  S 5      S5        U R                  [        UR
                  S5        S S S 5        U R                  [        R                  SSS9 nU R                  [        UR
                  S5        S S S 5        g ! , (       d  f       GNg= f! , (       d  f       Nj= f! , (       d  f       g = f)NrX  s"   abc
def
xyzzy
foo bar
another liner[     abc
rG     def
r      xy   s   zzy
s   foo bar
s   another lineg333333@r.   rW  r0   )r2   r   r-  rT   r;  r]  r=  r>  rR  s     r   test_readlineIOTest.test_readlineM  s=   YYy''.!GG@A /YYy''.!QZZ\84QZZ^X6QZZ]E2QZZ]H5QZZ\?;QZZ-?iS9 / YYy''wY?1iS9 @? /... @?s$   FC&F%("F6
F"%
F36
Gc                 z     " S SU R                   5      nU R                  [        [        4[        U" 5       5        g )Nc                       \ rS rSrS rSrg)+IOTest.test_readline_nonsizeable.<locals>.Ri^  c                     g rQ   r#   r>   s    r   r]  4IOTest.test_readline_nonsizeable.<locals>.R.readline_      r    r#   N)r%   r&   r'   r(   r]  r)   r#   r    r   Rr  ^      r    r  )IOBaser=  r>  StopIterationnextr?   r  s     r   test_readline_nonsizeable IOTest.test_readline_nonsizeable[  s-    	 	 	9m4dAC@r    c                 z     " S SU R                   5      nU R                  [        U" 5       R                  S5        g )Nc                       \ rS rSrS rSrg)'IOTest.test_next_nonsizeable.<locals>.Rif  c                     g rQ   r#   r>   s    r   __next__0IOTest.test_next_nonsizeable.<locals>.R.__next__g  r  r    r#   N)r%   r&   r'   r(   r  r)   r#   r    r   r  r  f  r  r    r  r=   )r  r=  r>  	readlinesr  s     r   test_next_nonsizeableIOTest.test_next_nonsizeablec  s,    	 	 	)QS]]A6r    c                     U R                  5       nU R                  U5        UR                  5       nU R                  US5        U R                  U5      nU R	                  US5        g )NrE  T)r  r@  getvaluer;  rJ  )r?   r5   r   s      r   test_raw_bytes_ioIOTest.test_raw_bytes_iok  sQ    LLNqzz|/0LLar    c                    [         R                  S S S:X  d  [        (       a$  [        R                  " SSU R
                  -  5        U R                  [        R                  SS5       nU R                  U5        S S S 5        U R                  [        R                  S5       nU R                  U5        S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)NrN  r  	largefilez-test requires %s bytes and a long time to runw+br   )
r  r  r   r   requiresrO  r2   r   r-  rS  rR  s     r   test_large_file_opsIOTest.test_large_file_opss  s     <<u$?$**LN YYy''2a" 3YYy''/1" 0/ 32//s   (B="C=
C
Cc                    S H  nU R                  [        R                  SU5       nUR                  S5        S S S 5        U R	                  WR
                  S5         U R                  [        R                  SU5       nSS-    S S S 5        U R                  S5        M     g ! , (       d  f       Np= f! , (       d  f       N5= f! [         a     U R	                  UR
                  S5         M  f = f)N)r   ro  rX  rM  Tr=   r   z1/0 didn't raise an exception)r2   r   r-  rT   r;  r   r  ZeroDivisionError)r?   bufsizer5   s      r   test_with_openIOTest.test_with_open  s    G9++T7;q <QXXt,;YYy//w?1aC @
 		9:  ;; @?$ 1  401s5   B#!C?B4C#
B1	4
C	>C&C/.C/c                    U R                  [        R                  S5       nUR                  S5        S S S 5        U R                  [        R                  SSS9 nU R	                  UR                  5       S5        S S S 5        U R                  [        R                  S5       nU R	                  UR                  5       S5        S S S 5        U R                  [        R                  SSS	9 nU R                  UR                  5       S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ny= f! , (       d  f       g = f)
NrX  rM  abr   rY  rN  arW  r0   )r2   r   r-  rT   r;  rm   assertGreaterrR  s     r   test_append_mode_tellIOTest.test_append_mode_tell  s    YYy''.!GGFO /YYy''Y;qQVVXq) <YYy''.!QVVXq) /YYy''wY?1qvvx+ @? /.;;..??s/   D!D&#!D7+!E
D#&
D47
E
Ec                   ^ / m " U4S jSU R                   5      n[        R                  " S[        45         U" [        R
                  S5      nUR                  S5        A[        R                  " 5         U R                  T/ SQ5        U R                  [        R
                  S5       nU R                  UR                  5       S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc                   H   >^  \ rS rSrU U4S jrU U4S jrU U4S jrSrU =r$ )(IOTest.test_destructor.<locals>.MyFileIOi  c                 l   > TR                  S5         [        TU ]  nU" 5         g ! [         a     g f = fr   rR   r   __del__AttributeErrorr?   r5   r   records     r   r  0IOTest.test_destructor.<locals>.MyFileIO.__del__  8    a A C &    
& 
33c                 D   > TR                  S5        [        TU ]	  5         g r   rR   r   r   r?   r   r  s    r   r   .IOTest.test_destructor.<locals>.MyFileIO.close      a r    c                 D   > TR                  S5        [        TU ]	  5         g NrN  rR   r   r   r  s    r   r   .IOTest.test_destructor.<locals>.MyFileIO.flush  r  r    r#   	r%   r&   r'   r(   r  r   r   r)   r   r   r  s   @r   MyFileIOr            r    r
   rX  rM  r=   r   rN  r[  )rk  r   check_warningsResourceWarningr   r-  rT   r   
gc_collectr;  r2   r   )r?   r
  r5   r  s      @r   test_destructorIOTest.test_destructor  s    	 t{{ 	  ++R,AB))40AGGFO VY/9++T2a  62 3 CB 32 CBs$   A3C.+!CC.
C+	'C..
C<c                    ^ / m " U4S jSU5      nU" 5       nA[         R                  " 5         U R                  T/ SQ5        g )Nc                   N   >^  \ rS rSrS rU U4S jrU U4S jrU U4S jrSrU =r	$ )+IOTest._check_base_destructor.<locals>.MyIOi  c                 .    SU l         SU l        SU l        g )Nr=   r   rN  )on_delon_closeon_flushr>   s    r   rN   4IOTest._check_base_destructor.<locals>.MyIO.__init__  s    
   ! !r    c                    > TR                  U R                  5         [        TU ]  nU" 5         g ! [         a     g f = frQ   )rR   r  r   r  r  r  s     r   r  3IOTest._check_base_destructor.<locals>.MyIO.__del__  s<    dkk*A C & s   
0 
==c                 X   > TR                  U R                  5        [        TU ]  5         g rQ   )rR   r  r   r   r  s    r   r   1IOTest._check_base_destructor.<locals>.MyIO.close      dmm,r    c                 X   > TR                  U R                  5        [        TU ]  5         g rQ   )rR   r  r   r   r  s    r   r   1IOTest._check_base_destructor.<locals>.MyIO.flush  r  r    )r  r  r  )
r%   r&   r'   r(   rN   r  r   r   r)   r   r	  s   @r   MyIOr    s    "    r    r"  r  )r   r  r;  )r?   baser"  r5   r  s       @r   _check_base_destructorIOTest._check_base_destructor  s<    	 4 	 . F+r    c                 :    U R                  U R                  5        g rQ   )r$  r  r>   s    r   test_IOBase_destructorIOTest.test_IOBase_destructor  s    ##DKK0r    c                 :    U R                  U R                  5        g rQ   )r$  r  r>   s    r   test_RawIOBase_destructor IOTest.test_RawIOBase_destructor  s    ##DNN3r    c                 :    U R                  U R                  5        g rQ   )r$  r  r>   s    r   test_BufferedIOBase_destructor%IOTest.test_BufferedIOBase_destructor  s    ##D$7$78r    c                 :    U R                  U R                  5        g rQ   )r$  r  r>   s    r   test_TextIOBase_destructor!IOTest.test_TextIOBase_destructor  s    ##DOO4r    c                 N   U R                  [        R                  S5       nUR                  S5        S S S 5        U R                  [        R                  S5       nU R	                  UR                  5       S5        S S S 5        g ! , (       d  f       NX= f! , (       d  f       g = f)NrX  rM  r[  r2   r   r-  rT   r;  r   rR  s     r   test_close_flushesIOTest.test_close_flushes  sl    YYy''.!GGFO /YYy''.!QVVXv. /. /...   B!B
B
B$c                    ^ ^^ [         R                   " S[        S5      5      m[        TR                  5       5      mUUU 4S jnU" T R	                  5       5        U" T R                  [        R                  S5      5        U" T R                  T R                  5       5      5        U" T R                  T R                  5       5      5        U" T R                  T R                  5       T R                  5       5      5        g )NirG  c                    > U    TR                  U R                  T5      T5        U R                  T45        S S S 5        g ! , (       d  f       g = frQ   )r;  rT   r^  )r5   r  rs   r?   s    r   check'IOTest.test_array_writes.<locals>.check  s6      Q/aT" s   4A
ArV  )r,   ranger   tobytesr  rk  r   r-  r~  r   r  r  )r?   r:  r  rs   s   ` @@r   test_array_writesIOTest.test_array_writes  s    KKU2Y'			# 	dllndkk)**C01d!!$.."234d!!$.."234d!!$.."2DNN4DEFr    c           	      d    U R                  [        U R                  [        R                  SSSS9  g )NrV  rW  Fr1   closefdr=  r   r2   r   r-  r>   s    r   test_closefdIOTest.test_closefd  s,    *dii1A1A3#*E 	 	;r    c                 z   U R                  [        R                  SSS9 nUR                  S5        S S S 5        U R                  [        R                  SSS9 nU R                  UR	                  5       SSSS9nU R                  UR                  5       S5        UR                  S5        UR                  5         U R                  [        UR                  5        S S S 5        U R                  [        R                  S	5       nU R                  UR	                  5       S	SS
9nU R                  UR                  5       S S S5        UR                  5         U R                  [        UR                  [        S5      5        S S S 5        g ! , (       d  f       GN^= f! , (       d  f       N= f! , (       d  f       g = f)NrV  rW  r0   egg
r.   FrA  r   r[  rB  rN  s   eggr=   )r2   r   r-  rT   r^   r;  r   ri   r   r=  r   rt   r<  r?   r5   files      r   test_read_closedIOTest.test_read_closed  s;   YYy''wY?1GGG @YYy''wY?199QXXZw9NDTYY['2IIaLJJLj$))4 @ YYy''.!99QXXZu9=DTYY[!_f5JJLj$--1F	 /. @??? /.s%   F	BFA=F,	
F
F),
F:c           	      d    U R                  [        U R                  [        R                  SSSS9  g )Nr.   rW  FrA  rC  r>   s    r   test_no_closefd_with_filename$IOTest.test_no_closefd_with_filename  s,    *dii1A1A3#*E 	 	;r    c                    U R                  [        R                  S5       nUR                  S5        S S S 5        U R                  [        R                  SSS9 nU R	                  UR
                  R                  R                  S5        U R                  UR                  5       SSSS9nU R	                  UR
                  R                  R                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	NrX  s   egg
r.   rW  r0   TFrA  )	r2   r   r-  rT   r;  r?  rawrB  r^   rI  s      r   test_closefd_attrIOTest.test_closefd_attr  s    YYy''.!GGH /YYy''wY?1QXX\\114899QXXZw9NDT[[__44e< @? /.??s   C$BC5$
C25
Dc                    [         R                  " S[        45         U R                  [        R
                  S5      nUR                  S5        Xl        [        R                  " U5      nA[        R                  " 5         S S S 5        U R                  W" 5       U5        U R                  [        R
                  S5       nU R                  UR                  5       S5        S S S 5        g ! , (       d  f       No= f! , (       d  f       g = f)Nr  rX  s   abcxxxr[  )r   r  r  rk  r   r-  rT   r5   weakrefrefr   r  assertIsNoner2   r;  r   )r?   r5   wrs      r   test_garbage_collectionIOTest.test_garbage_collection  s     ++R,ABI,,d3AGGICQB  C 	"$#YYy''.!QVVXy1 /. CB /.s   A$C* !C;*
C8;
D	c                    Sn[         R                  R                  U5      (       d   U R                  SR	                  U5      5        [
        R                  S:  a  U R                  S5        [        R                  [        R                  :  a  U R                  S5        U R                  USSS9 nU R                  [        UR                  5        S S S 5        U R                  US5       nU R                  [        UR                  5        S S S 5        U R                  US	5       nU R                  [        UR                  5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N[= f! , (       d  f       g = f)
Nz	/dev/zeroz{0} does not existiz+test can only run in a 32-bit address spacez&test requires at least 2 GiB of memoryr[  r   rY  r.   )rj  pathexistsrQ  formatr  maxsizer   real_max_memuse_2Gr2   r=  rP  r   )r?   zeror5   s      r   test_unbounded_fileIOTest.test_unbounded_file  s   ww~~d##MM.55d;<;;#MMGH""W[[0MMBCYYtTQY/1mQVV4 0YYtT"amQVV4 #YYtS!QmQVV4 "!	 0/""!!s$   0!E+!E!&!E2
E!
E/2
F c                   ^^ U R                   " U0 UD6m/ mUU4S jnUTl        U R                  [        TR                  5        U R                  TR                  5        U R                  T5        U R                  TS   5        S Tl        g )Nc                  8   > TR                   /T S S & [        5       erQ   r   )r   r5   s   r   	bad_flush4IOTest.check_flush_error_on_close.<locals>.bad_flush2  s    
F1I)Or    r   c                      g rQ   r#   r#   r    r   <lambda>3IOTest.check_flush_error_on_close.<locals>.<lambda>:      $r    )r2   r   r=  r   r   
assertTruer   assertFalse)r?   r   kwargsrg  r   r5   s       @@r   check_flush_error_on_close!IOTest.check_flush_error_on_close-  st     IIt&v&	 '177+!#r    c                 F   U R                  [        R                  SSS9  [        R                  " [        R                  [        R
                  [        R                  -  5      nU R                  USSS9  [        R                  " [        R                  [        R
                  [        R                  -  5      nU R                  USSSS9  [        R                  " U5        U R                  [        R                  S5        [        R                  " [        R                  [        R
                  [        R                  -  5      nU R                  US5        [        R                  " [        R                  [        R
                  [        R                  -  5      nU R                  USSS9  [        R                  " U5        U R                  [        R                  SSS	9  [        R                  " [        R                  [        R
                  [        R                  -  5      nU R                  USSS	9  [        R                  " [        R                  [        R
                  [        R                  -  5      nU R                  USSSS
9  [        R                  " U5        g )NrX  r   rY  F)rZ  rB  rH  rV  rW  r0   rA  )rp  r   r-  rj  r2   O_WRONLYO_CREATr   )r?   fds     r   test_flush_error_on_close IOTest.test_flush_error_on_close<  s    	''	(8(8$!'LWWY%%r{{2::'=>''DA'>WWY%%r{{2::'=>''DAu'M
''	(8(8$?WWY%%r{{2::'=>''D1WWY%%r{{2::'=>''D%'@
''	(8(8#'PWWY%%r{{2::'=>''C''BWWY%%r{{2::'=>''C'5'Q
r    c                     U R                  [        R                  SSS9nUR                  5         UR                  5         UR                  5         U R	                  [
        UR                  5        g )NrX  r   rY  )r2   r   r-  r   r=  r   r   rR  s     r   test_multi_closeIOTest.test_multi_closeT  sK    IIi&&I:						*agg.r    c                 6   U R                  S5      nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S 5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S 5        U R                  UR                  S5      S5        g )	N)   abc   dN   efgNr      ab   cr}     ef   gr    )rD   r;  r   r?   rawios     r   test_RawIOBase_readIOTest.test_RawIOBase_read[  s     ))*LMA.A-A-A-A.A-A-A,r    c                     U R                  5       U R                  5       U R                  5       U R                  5       U R	                  5       4nU H  nU R                  [        US5      5        M      g )N__dict__)r  r  r  r  r  rm  hasattr)r?   r  r   s      r   test_types_have_dictIOTest.test_types_have_dicth  sW    KKMNNOOMMOLLN
 COOGC45 r    c                   ^ U R                  [        R                  SSS9 nUR                  S5        S S S 5        [        R                   " [        R                  [        R
                  5      mU4S jnU R                  SSSUS9 nU R                  UR                  5       S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	NrV  rW  r0   rG  c                    > T$ rQ   r#   )r\  flagsru  s     r   opener"IOTest.test_opener.<locals>.openerw  s    Ir    non-existentr.   )r1   r  )r2   r   r-  rT   rj  O_RDONLYr;  r   )r?   r5   r  ru  s      @r   test_openerIOTest.test_openers  s    YYy''wY?1GGG @WWY%%r{{3	YY~sWVYLPQQVVXw/ ML @?
 MLs   B0!C0
B>
Cc                     S nU R                  [        5       nU R                  SSUS9  S S S 5        U R                  [	        WR
                  5      S5        g ! , (       d  f       N4= f)Nc                     gNr  r#   fnamer  s     r   	badopener4IOTest.test_bad_opener_negative_1.<locals>.badopener~      r    r  r.   r  zopener returned -1r=  r   r2   r;  str	exceptionr?   r  cms      r   test_bad_opener_negative_1!IOTest.test_bad_opener_negative_1|  Q    	z*bIInc)I< +R\\*,@A +*   A
A'c                     S nU R                  [        5       nU R                  SSUS9  S S S 5        U R                  [	        WR
                  5      S5        g ! , (       d  f       N4= f)Nc                     g)Nr#   r  s     r   r  8IOTest.test_bad_opener_other_negative.<locals>.badopener  r  r    r  r.   r  zopener returned -2r  r  s      r   test_bad_opener_other_negative%IOTest.test_bad_opener_other_negative  r  r  c                   ^ [         R                  " 5       mU R                  [        5       nU R	                  SU4S jS9  S S S 5        U R                  WR                  R                  [        R                  5        g ! , (       d  f       NC= f)Nfooc                    > T$ rQ   r#   )namer  ru  s     r   rj  /IOTest.test_opener_invalid_fd.<locals>.<lambda>  s    r    r  )	r   make_bad_fdr=  r   r2   r;  r  errnoEBADF)r?   r  ru  s     @r   test_opener_invalid_fdIOTest.test_opener_invalid_fd  s`     ""$w'2IIe$:I; (++U[[9 ('s   A>>
Bc                    U R                  [        S5       nU R                  [        S5       nU R                  UR                  5       SS9nUR	                  UR                  5       SS9  UR                  5         UR                  5         UR                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr[  FrH  )r2   r3   rk  r^   rN   r]  r   )r?   f1f2fileios       r   test_fileio_closefdIOTest.test_fileio_closefd  s    YYx&"YYx&"[[e[<FOOBIIKO7KKMLLNKKM ' '&&& '&s#   B=A-B,B=,
B:	6B==
Cc           	         [         R                  " U 5         U R                  [        5         U R	                  [
        R                  SSSS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrV  rW  r   r1   rZ  r   check_no_resource_warningr=  r   r2   r   r-  r>   s    r   test_nonbuffered_textioIOTest.test_nonbuffered_textio  sU    66t<"":.		)**C'Q	O / =<.. =<"   A0!AA0
A-	)A00
A>c           	         [         R                  " U 5         U R                  [        5         U R	                  [
        R                  SSSS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrV  rW  invalidr1   newliner  r>   s    r   test_invalid_newlineIOTest.test_invalid_newline  sU    66t<"":.		)**C'9	U / =<.. =<r  c                 4    " S SU R                   5      nU" 5       nS Hd  nU R                  U5         [        S5      nU R                  [	        X#5      " U5      S5        U R                  [        U5      S5        S S S 5        Mf     g ! , (       d  f       Mx  = f)Nc                       \ rS rSrS r\rSrg)3IOTest.test_buffered_readinto_mixin.<locals>.Streami  c                     g)N   12345r#   r?   sizes     r   r   8IOTest.test_buffered_readinto_mixin.<locals>.Stream.read  s    r    r#   N)r%   r&   r'   r(   r   read1r)   r#   r    r   Streamr    s     Er    r  rt   rH  r   r  )r  r  r   r;  getattrr   )r?   r  streammethodr?  s        r   test_buffered_readinto_mixin#IOTest.test_buffered_readinto_mixin  sy    	T(( 	 /Ff%"1  !8!@!D  v9 &% 0%%s   AB
B	c                   ^  U 4S jnU" [        [        R                  5      5        U" [        [        R                  " [        R                  5      5      5        T R                  [        R                  SSS9 n[        UR                  5       5      nT R                  [        5         T R                  USSS9  S S S 5        S S S 5        [        S 5      nT R                  [        5         T R                  USSS9  S S S 5        [        [        5      nT R                  [        5         T R                  USSS9  S S S 5        T R                  [        S5         T R                  [        [        R                  5      SSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nc                   > TR                  U SSS9 nUR                  S5        S S S 5        TR                  U SSS9 nTR                  UR                  5       S5        S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)NrV  rW  r0   rG  r.   )r2   rT   r;  r   )r\  r5   r?   s     r   check_path_succeeds7IOTest.test_fspath_support.<locals>.check_path_succeeds  sn    4w71  8 4w71  73 87 87 87s   A(!A9(
A69
BrV  rW  r0   zread/write/append moderwxa)r   r   r-  rj  fsencoder2   r^   r=  r>  FloatingPointErrorassertRaisesRegexr   )r?   r  r5   bad_paths   `   r   test_fspath_supportIOTest.test_fspath_support  sY   	4 	HY%5%567HR[[1A1A%BCDYYy''wY?1
+H""9-		(C'	: . @
 D>y)IIhgI6 * ./12IIhgI6 3 ##J0HIIIhy//0&7IK JI .- @? *) 32 JIsH   9/F(F
:F*F,(F=)G

F	F
F),
F:=
G
Gc                     U R                  S5      nU R                  UR                  5       S5        U R                  S5      nU R                  UR                  5       S5        g Nr|  r}  r~     abcdefg)rD   r;  r   readallr  s     r   test_RawIOBase_readallIOTest.test_RawIOBase_readall  sR     ))*@Az2))*@A*5r    c           	      :    " S SU R                   5      nSnSnU H  nU R                  U5         Uu  pVpxU" [        [        U5      5      5      n	[	        U4U-  5      n
[        X5      nU R                  U" U
5      U5        U R                  [        U
5      U5        U R                  U
S U [        U5      5        U4Xx-
  -  nU R                  XS  U5        U R                  [        U	R                  5      Xh-
  5        S S S 5        M     g ! , (       d  f       M  = f)Nc                   &    \ rS rSrS rS rS rSrg)3IOTest.test_BufferedIOBase_readinto.<locals>.Readeri  c                     Xl         g rQ   avail)r?   r  s     r   rN   <IOTest.test_BufferedIOBase_readinto.<locals>.Reader.__init__  s    "
r    c                 L    U R                   S U nU R                   US  U l         U$ rQ   r  )r?   r  results      r   r   8IOTest.test_BufferedIOBase_readinto.<locals>.Reader.read  s)    ET*!ZZ.
r    c                 8    U R                  [        US5      5      $ r   )r   minr  s     r   r  9IOTest.test_BufferedIOBase_readinto.<locals>.Reader.read1  s    yyT1..r    r  N)r%   r&   r'   r(   rN   r   r  r)   r#   r    r   Readerr    s    #/r    r  )
)rt   rG  r   r   )rt   rG  r5  r5  )rt   r   r5  r   )rt   r5     r5  )rt   rG  r   r   )rH  rG  r   r   )rH  rG  r5  r   )rH  r   r5  r   )rH  r5  r  r   )rH  rG  r   r      )
r  r  r   r<  r<  r  r;  r   assertSequenceEqualr  )r?   r  r  UNUSED_BYTEr  r  r  requestr  readerr?  unuseds               r   test_BufferedIOBase_readinto#IOTest.test_BufferedIOBase_readinto  s    		/T(( 		/
 Dd#15.weEl 34"K>G#;< 0  8  Vg6((%-H%7+;<((&A  V\\!2ENC $# ##s   CD
D	c                      " S SU R                   5      nU" 5       nU R                  [        UR                  5        S Ul        g )Nc                        \ rS rSrS rS rSrg)#IOTest.test_close_assert.<locals>.Ri  c                     g rQ   r#   )r?   r  values      r   __setattr__/IOTest.test_close_assert.<locals>.R.__setattr__      r    c                     [        5       erQ   r   r>   s    r   r   )IOTest.test_close_assert.<locals>.R.flush  s	    ir    r#   N)r%   r&   r'   r(   r  r   r)   r#   r    r   r  r    s     r    r  c                     g rQ   r#   r>   s    r   rj  *IOTest.test_close_assert.<locals>.<lambda>      tr    )r  r=  r   r   r   )r?   r  r5   s      r   test_close_assertIOTest.test_close_assert  s8    	  	 
 C'177+ $r    c           	        ^ ^	^
 SnSm
Sm	U
4S jnU	U 4S jnT R                  [        R                  S5       n[        R                  " US-   5      n[        R
                  " X4U4S9n[        U5       Vs/ s H  n[        R
                  " X$U4S9PM     nn[        R                  " 5        n[        R                  " Xs/-   5          S S S 5        T R                  UR                  5        S S S 5        S S S 5        T R                  [        R                  " [        R                  5      R                  T
U-  5        g s  snf ! , (       d  f       N= f! , (       d  f       Nn= f! , (       d  f       Nw= f)Nr   ro  c                 l   > UR                  5         [        T5       H  nU R                  S5        M     g )Nx)waitr<  rT   )rJ  barrier_write_counts      r   writer0IOTest.test_write_readline_races.<locals>.writer  s&    LLN;'

3 (r    c                    > UR                  5         [        T5       H  nU  H  nTR                  US5        M     M      g )Nr  )r  r<  r;  )rJ  r  r  line
read_countr?   s       r   r  0IOTest.test_write_readline_races.<locals>.reader  s5    LLN:& D$$T2. ! 'r    w+r=   rp  )r2   r   r-  r   Barrierrs  r<  r   catch_threading_exceptionstart_threadsrW  exc_typer;  rj  statst_size)r?   thread_countr  r  r5   r  r  writersr  r  r  s   `        @@r   test_write_readline_races IOTest.test_write_readline_races  s)    
	 
	/ YYy''.!''q(89G%%Vg,GF %l 35 31 !''vLI 3  5!;;=%33Gh4FG H!!"++. > / 	!1!12::$|3	55 HG >= /.sM   =E#4 D<E#+EE#E*E#<E#
EE
E 	E##
E1r#   NF)@r%   r&   r'   r(   r.  r2  r@  rJ  rO  rS  rc  unittestskipIfr   is_emscripten
skipUnlessr  rj  r  r  r  r  r  r  r  r  r  r  r  r  r$  r'  r*  r-  r0  r4  r>  rD  rK  rN  rR  rY  rc  rp  rv  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   requires_working_threadingr)  r)   r#   r    r   r)  r)  P  sk   ++204B E*(?2 __F V,.BCf@ Df@PV

#:A7#;,34,<1495/G;G;
=25 0/-	60BB:
P
V
:L86'DR$ 0025 35r    r)  c                       \ rS rSrS rSrg)CIOTesti1  c                      " S SU R                   5      nU" 5         U" 5       nX"l        [        R                  " U5      nAA[        R
                  " 5         U R                  U" 5       U5        g )Nc                       \ rS rSrS rSrg)*CIOTest.test_IOBase_finalize.<locals>.MyIOi7  c                     g rQ   r#   r>   s    r   r   0CIOTest.test_IOBase_finalize.<locals>.MyIO.close8  r
  r    r#   Nr%   r&   r'   r(   r   r)   r#   r    r   r"  r5  7  s    r    r"  )r  r   rU  rV  r   r  rW  )r?   r"  r   rX  s       r   test_IOBase_finalizeCIOTest.test_IOBase_finalize3  sW    	4;; 	
 	f[["$#r    r#   N)r%   r&   r'   r(   r9  r)   r#   r    r   r2  r2  1  s    $r    r2  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestIOCTypesiE  c                    [         R                  " S5      nUR                  UR                  UR                  UR
                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  /U l        ["        R$                  S:X  a%  U R                   R'                  UR(                  5        Xl        g )N_iowin32)r   import_moduler  r  ry  r~  r  rk  IncrementalNewlineDecoderr  r  _BufferedIOBase_BytesIOBuffer_IOBase
_RawIOBase_TextIOBasetypesr  r  rR   _WindowsConsoleIOr>  r?   r>  s     r   r.  TestIOCTypes.setUpG  s    ))%0KKJJ))LLKKNNOO

  <<7"JJc334r    c                     U R                    HA  nU R                  US9   U R                  [        S5         SUl        S S S 5        S S S 5        MC     g ! , (       d  f       N= f! , (       d  f       Mf  = f)N)tp	immutablebar)rG  r  r  r>  r  )r?   rL  s     r   test_immutable_types!TestIOCTypes.test_immutable_types]  sS    **B$++I{C"BF D %$ CC %$s!   A$AA$
A!A$$
A3	c                   ^ ^^ U 4S jmUUU 4S jmT R                   nUR                  UR                  UR                  UR                  UR
                  UR                  UR                  1UR                  UR                  1UR                  UR                  UR                  100n[        R                  S:X  a4  X!R                     UR                     R                  UR                   5        T" U5        g )Nc                    > U  H5  nTR                  X!S9   TR                  [        X!5      5        S S S 5        M7     g ! , (       d  f       MI  = f)N)rL  r#  )r  rm  
issubclass)rG  r#  rL  r?   s      r   
check_subs5TestIOCTypes.test_class_hierarchy.<locals>.check_subsd  s;    \\R\3OOJr$89 43 33s	   >
A	c                    > U R                  5        HT  u  p[        U[        5      (       a
  T" U5        M$  [        U[        5      (       a
  T" X!5        MC  TR	                  S5        MV     g )Nzcorrupt test dataset)itemsr  dictr   r  )dkvrT  recursive_checkr?   s      r   r\  :TestIOCTypes.test_class_hierarchy.<locals>.recursive_checki  sL    	a&&#A&3''q$II45 "r    r?  )r>  rD  rB  r  r  ry  r~  r  rE  rk  rF  r  r  r  r  addrH  )r?   r>  	hierarchyrT  r\  s   `  @@r   test_class_hierarchy!TestIOCTypes.test_class_hierarchyc  s    	:
	6 hhKK##&&&&&&&&KK& JJ! LL%%"
	$ <<7"kk"3>>266s7L7LM	"r    c                    U R                   nU R                   Vs0 s H  o"S_M     nnSX1R                  '   UR                  5        Hp  u  pEU R	                  XES9   UR
                   S3nU4nU(       a  [        Xg0 5      nO-Sn	U R                  [        U	5         [        Xg0 5      nS S S 5        S S S 5        Mr     g s  snf ! , (       d  f       N = f! , (       d  f       M  = f)NTF)rL  is_basetype	_subclassznot an acceptable base type)	r>  rG  rC  rW  r  r%   typer  r>  )
r?   r>  rZ  datasetrL  rc  r  basesr  msgs
             r   test_subclassingTestIOCTypes.test_subclassing  s    hh$(JJ/Jqd7J/&+""#&}}OB=++i0T"-A7C//	3? b1 @ >=  / 0 @? >=s)   B<?CC'C
CC
C!	c                 \    U R                   n[        R                  " XR                  5        g rQ   )r>  r   check_disallow_instantiationrC  rI  s     r   test_disallow_instantiation(TestIOCTypes.test_disallow_instantiation  s    hh,,T3E3EFr    c                    U R                   R                  5       nU R                  [        S5         UR	                  SSS0 45        S S S 5        UR	                  S SS0 45        U R                  UR                  5       S5        UR	                  SSS0 45        U R                  UR                  5       S5        g ! , (       d  f       Ny= f)Nz*initial_value must be str or None, not intr=   r  r   )r>  r  r  r>  __setstate__r;  r  )r?   r   s     r   test_stringio_setstate#TestIOCTypes.test_stringio_setstate  s    hh!##8
 aQ^,	
 	$Ar*+,"b!R),
 
s   B::
C)r>  rG  N)r%   r&   r'   r(   r.  rO  r`  ri  rm  rq  r)   r#   r    r   r<  r<  E  s"    ,#%#N2 G-r    r<  c                       \ rS rSrSrg)PyIOTesti  r#   Nr$   r#   r    r   rt  rt    r|   r    rt  c                        \ rS rSrS rS rSrg)APIMismatchTesti  c                     [         R                  " [        R                  [        R                  SS9nU R                  U[        5       SS9  g )N)__weakref__r)   )r  z6Python RawIOBase does not have all C RawIOBase methodsrh  )r   detect_api_mismatchr   r  r   r;  r   r?   mismatchs     r   test_RawIOBase_io_in_pyio_match/APIMismatchTest.test_RawIOBase_io_in_pyio_match  s:    ..t~~r||6^`35.fgr    c                     [         R                  " [        R                  [        R                  5      nU R                  U[        5       SS9  g )Nz6C RawIOBase does not have all Python RawIOBase methodsry  )r   rz  r   r  r   r;  r   r{  s     r   test_RawIOBase_pyio_in_io_match/APIMismatchTest.test_RawIOBase_pyio_in_io_match  s4    ..r||T^^L35.fgr    r#   N)r%   r&   r'   r(   r}  r  r)   r#   r    r   rv  rv    s    hhr    rv  c                   n    \ 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g)CommonBufferedTestsi  c                     U R                  5       nU R                  U5      nU R                  UR                  5       U5        U R	                  [
        UR                  5        [        U5        g rQ   )r   rL  assertIsdetachr=  r   reprr?   rQ  rq   s      r   test_detachCommonBufferedTests.test_detach  sJ    nnggclcjjlC(*cjj1S	r    c                     U R                  5       nU R                  U5      nU R                  SUR                  5       5        g r\   )r   rL  r;  r^   r?   r  bufios      r   test_filenoCommonBufferedTests.test_fileno  s1     U\\^,r    c                     U R                  5       nU R                  U5      nU R                  [        UR                  SS5        U R                  [        UR                  SS5        g )Nr   r  r6  )r   rL  r=  r   ri   r  s      r   test_invalid_args%CommonBufferedTests.test_invalid_args  sK     *ejj!R8*ejj!Q7r    c                    ^ U R                   n/ m " U4S jSU5      nU R                  5       nU" U5      nA[        R                  " 5         U R	                  T/ SQ5        g )Nc                   H   >^  \ rS rSrU U4S jrU U4S jrU U4S jrSrU =r$ )BCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIOi  c                 l   > TR                  S5         [        TU ]  nU" 5         g ! [         a     g f = fr   r  r  s     r   r  JCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIO.__del__  r  r  c                 D   > TR                  S5        [        TU ]	  5         g r   r   r  s    r   r   HCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIO.close  r  r    c                 D   > TR                  S5        [        TU ]	  5         g r  r  r  s    r   r   HCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIO.flush  r  r    r#   r  r	  s   @r   MyBufferedIOr    r  r    r  r  )rL  r   r   r  r;  )r?   rL  r  r  r  r  s        @r   test_override_destructor,CommonBufferedTests.test_override_destructor  sT    WW	 2 	   U#+r    c                    ^ U R                  5       nU R                  U5      mU4S jnU" 5         U R                  [        U5        g )Nc                  @   > T     S S S 5        g ! , (       d  f       g = frQ   r#   r  s   r   _with7CommonBufferedTests.test_context_manager.<locals>._with  s     s   
)r   rL  r=  r   )r?   r  r  r  s      @r   test_context_manager(CommonBufferedTests.test_context_manager  s:     	 	 	*e,r    c                 j   U R                  5       n[        R                  " 5        nU R                  [        5         U R                  U5      R                    S S S 5        U R                  UR                  R                  [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = frQ   )r   r   catch_unraisable_exceptionr=  r  rL  xyzzyr;  
unraisabler$  r   r?   r  r  s      r   test_error_through_destructor1CommonBufferedTests.test_error_through_destructor  sx     ##%//1R"">2$$ 3 R]]33W=	 2122 21s"   B$B2B$
B!	B$$
B2c                 z   U R                  5       nU R                  U5      nSU R                  R                  < SU R                  R                  < 3nU R	                  [        U5      SU-  5        SUl        U R	                  [        U5      SU-  5        SUl        U R	                  [        U5      SU-  5        g )N(z\.)?z<%s>dummyz<%s name='dummy'>   dummyz<%s name=b'dummy'>)r   rL  r&   r'   assertRegexr  r  )r?   rQ  r+   clsnames       r   	test_reprCommonBufferedTests.test_repr  s    nnGGCL"&''"4"4dgg6J6JKa&7"23a"5"?@a"6"@Ar    c                 ~   U R                  5       nU R                  U5      n[        R                  " USU5         [        R                  " S5         U R                  [        5         [        U5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)Nr     )r   rL  r   	swap_attrinfinite_recursionr=  RuntimeErrorr  r?   rQ  r+   s      r   test_recursive_repr'CommonBufferedTests.test_recursive_repr  sx    nnGGCLsFA.0J0J20N""<0Q 1 1O..00 1O0N..s;   B.B'B3B;B.
BB
B+	'B..
B<c                   ^^^ U R                  5       m/ mUUU4S jnUTl        U R                  T5      mU R                  [        TR
                  5        U R                  TR                  5        U R                  TR                  5        U R                  T5        U R                  TS   5        U R                  TS   5        S Tl        g )Nc                  N   > T R                   TR                   /TS S & [        5       erQ   r   )r+   r   rQ  s   r   rg  @CommonBufferedTests.test_flush_error_on_close.<locals>.bad_flush  s     3::.F1I)Or    r   r=   c                      g rQ   r#   r#   r    r   rj  ?CommonBufferedTests.test_flush_error_on_close.<locals>.<lambda>(      Dr    )	r   r   rL  r=  r   r   rm  r   rn  )r?   rg  r+   r   rQ  s     @@@r   rv  -CommonBufferedTests.test_flush_error_on_close  s     nn	 	GGCL'177+!

### 	r    c                 >   U R                  5       nS nS nX1l        U R                  U5      nX$l        U R	                  [
        5       nUR                  5         S S S 5        U R                  WR                  R                  S5        U R                  UR                  R                  [
        5        U R                  UR                  R                  R                  S5        U R                  UR                  5        S Ul        S Ul        g ! , (       d  f       N= f)Nc                      [        S5      eNr   r  r#   r    r   rg  @CommonBufferedTests.test_close_error_on_close.<locals>.bad_flush,      '""r    c                      [        S5      eNr   r  r#   r    r   	bad_close@CommonBufferedTests.test_close_error_on_close.<locals>.bad_close.  r  r    r   r   c                      g rQ   r#   r#   r    r   rj  ?CommonBufferedTests.test_close_error_on_close.<locals>.<lambda>;  r  r    c                      g rQ   r#   r#   r    r   rj  r  <  rl  r    )r   r   rL  r   r=  r   r;  r  r   assertIsInstance__context__rn  r   r?   rQ  rg  r  r+   errs         r   test_close_error_on_close-CommonBufferedTests.test_close_error_on_close*  s    nn	#	#	GGCLw'3GGI (++Z8cmm77A2277D" !	 ('s   	D
Dc                 :   U R                  5       nS nS nX1l        U R                  U5      nX$l        U R	                  [
        5       nUR                  5         S S S 5        U R                  S[        WR                  5      5        U R                  UR                  R                  [
        5        U R                  S[        UR                  R                  5      5        U R                  UR                  5        S Ul        S Ul        g ! , (       d  f       N= f)Nc                      [         erQ   non_existing_flushr#   r    r   rg  NCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.bad_flushA      $$r    c                      [         erQ   non_existing_closer#   r    r   r  NCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.bad_closeC  r  r    r  r  c                      g rQ   r#   r#   r    r   rj  MCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.<lambda>P  rl  r    c                      g rQ   r#   r#   r    r   rj  r  Q  r  r    )r   r   rL  r   r=  	NameErrorassertInr  r  r  r  rn  r   r  s         r   'test_nonnormalized_close_error_on_close;CommonBufferedTests.test_nonnormalized_close_error_on_close>  s    nn	%	%	GGCLy)SGGI **C,>?cmm77C*C0I0I,JK"  	 *)s   	D
Dc                     U R                  5       nU R                  U5      nUR                  5         UR                  5         UR                  5         U R                  [        UR
                  5        g rQ   )r   rL  r   r=  r   r   r  s      r   ry  $CommonBufferedTests.test_multi_closeS  sJ    nnGGCL						*agg.r    c                     U R                  U R                  S5      5      nU R                  U R                  UR                  5        U R                  U R                  UR
                  S5        g )N
   AAAAAAAAAAr   )rL  r   r=  r   rm   ri   r?   r  s     r   test_unseekable#CommonBufferedTests.test_unseekable[  sQ    --i89$33UZZ@$33UZZCr    c                     U R                  5       nU R                  U5      nU R                  5       nU R                  [        5         X2l        S S S 5        g ! , (       d  f       g = frQ   )r   rL  r=  r  rQ  )r?   rQ  rq   r  s       r   test_readonly_attributes,CommonBufferedTests.test_readonly_attributes`  sF    nnggclNN~.G /..s   A
A%c                   ^   " U 4S jST R                   5      qT R                  S5      n[        USS9n[        [        R
                  S-   5       H  nT R                  US9   [        R                  " X#5      n[        R                  " U5      nT R                  UR                  R                  5       S5        T R                  UR                  S5        S S S 5        M     Bg ! , (       d  f       M  = f)Nc                   <   >^  \ rS rSrU 4S jrS rU4S jrSrU =r$ )r  ii  c                 0   > [         TU ]  U5        X l        g rQ   r   rN   tagr?   rQ  r  r   s      r   rN   MyBufferedIO.__init__j       %r    c                 N    U R                   U R                  R                  5       4$ rQ   )r  rQ  r  r>   s    r   __getstate__MyBufferedIO.__getstate__m  s    xx!2!2!444r    c                 P   > Uu  p#U R                  TR                  U5      U5        g rQ   rN   r  slfstater  r  r?   s       r   rp  MyBufferedIO.__setstate__o  !    "
T\\%0#6r    r  	r%   r&   r'   r(   rN   r  rp  r)   r   r   r?   s   @r   r  r  i  s    57 7r    r     datahamr  r=   protocol)rL  r  r  r<  pickleHIGHEST_PROTOCOLr  dumpsloadsr;  rQ  r  r  )r?   rQ  rq   protopicklednewbufs   `     r   test_pickling_subclass*CommonBufferedTests.test_pickling_subclassg  s    	7477 	7 ll7#3E*622Q67Eu- ,,s2g.  !4!4!6@  U3	 .- 8  .-s   #A3C$$
C3	r#   N)r%   r&   r'   r(   r  r  r  r  r  r  r  r  rv  r  r  ry  r  r  r  r)   r#   r    r   r  r    sO    -8,0
->B!$(!*/D
r    r  c                   \    \ rS rSr\R
                  S 5       r\R
                  S 5       rSrg)
SizeofTesti~  c                 
   SnSnU R                  5       nU R                  X1S9n[        R                  " U5      U-
  nU R                  5       nU R                  X2S9nU R	                  [        R                  " U5      XR-   5        g )N       buffer_size)r   rL  r  	getsizeofr;  )r?   bufsize1bufsize2r  r  r  s         r   test_sizeofSizeofTest.test_sizeof  sr     4}}U#h. 4u-t?r    c                     SnU R                  5       nU R                  X!S9n[        R                  " U5      U-
  nUR	                  5         U R                  [        R                  " U5      U5        g )Nr  r  )r   rL  r  r  r   r;  )r?   r  r  r  r  s        r   test_buffer_freeingSizeofTest.test_buffer_freeing  sX     3}}U#g-u-t4r    r#   N)	r%   r&   r'   r(   r   cpython_onlyr  r"  r)   r#   r    r   r  r  ~  s6    @ @ 5 5r    r  c                       \ 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\R(                  " 5       \R,                  " S5      S 5       5       rS rS rS rS rS rS rS rSrg)BufferedReaderTesti  r[  c                 2   U R                  S/5      nU R                  U5      nUR                  U5        UR                  USS9  UR                  USS9  U R                  SUR	                  5       5        U R                  [        UR                  USS9  U R                  [        UR                  USS9  U R                  [        UR                  USS9  U R                  S/5      nUR                  U5        U R                  SUR	                  5       5        g )Nr|     r     r   r  )r   rL  rN   r;  r   r=  r   r  s      r   test_constructor#BufferedReaderTest.test_constructor  s    x(uu$/u"-.*enneK*enneM*enneLx(u.r    c                 j   U R                   R                  U R                   5      nAU R                   R                  U R                   5      nU R                  [        [        4SUR
                  S5        UR                  U R                  5       5        U R                  UR                  S5      S5        g Nuninitialized|has no attributer   r    )	rL  __new__r  r   r  r   rN   r   r;  r  s     r   test_uninitialized%BufferedReaderTest.test_uninitialized  s    ((
N;?$zz1	. 	t~~'(A,r    c                     S HF  nU R                  S5      nU R                  U5      nU R                  SUR                  U5      5        MH     U R	                  [
        WR                  S5        g )N)Nr  r  r  r  )r   rL  r;  r   r=  r   )r?   argr  r  s       r   	test_readBufferedReaderTest.test_read  sX    CNN#9:EGGENEZC9 
 	*ejj"5r    c                 .   U R                  S5      nU R                  U5      nU R                  SUR                  S5      5        U R                  SUR	                  S5      5        U R                  UR
                  S5        U R                  SUR	                  S5      5        U R                  SUR	                  S5      5        U R                  UR
                  S5        U R                  S	UR	                  S5      5        U R                  UR
                  S
5        U R                  SUR	                  S5      5        U R                  UR
                  S5        U R                  SUR	                  S5      5        U R                  UR
                  S5        g )Nr     ar=      br    r   r  ro  r}  r   r~  rN  r  r   rL  r;  r   r  rK   r  s      r   
test_read1BufferedReaderTest.test_read1  s.   56uzz!}-u{{1~.q)ekk!n-u{{3/0q)u{{3/0q)S!12q)ekk#./q)r    c                    U R                  S5      nU R                  U5      nU R                  SUR                  S5      5        U R                  SUR	                  5       5        U R                  SUR	                  5       5        U R                  SUR	                  S5      5        U R                  UR
                  S5        U R                  S	UR	                  5       5        U R                  UR
                  S
5        g )Nr  r8  r=   s   bcr}  r~  r  rN  r    r  r:  r  s      r   test_read1_arbitrary'BufferedReaderTest.test_read1_arbitrary  s    56uzz!}-.u{{}-R1q)ekkm,q)r    c                 l   U R                  S5      nU R                  U5      n[        S5      nU R                  UR	                  U5      S5        U R                  US5        U R                  UR	                  U5      S5        U R                  US5        U R                  UR	                  U5      S5        U R                  US5        U R                  UR	                  U5      S5        U R                  US5        U R                  UR	                  U5      S5        U R                  US5        U R                  S	5      nU R                  U5      nU R                  UR	                  U5      S5        U R                  US5        U R                  UR	                  U5      S5        U R                  US
5        g )Nr  r   r     cdr  r=   s   gfr   )r|  Ns   cb)r   rL  r<  r;  rt   )r?   r  r  r+   s       r   test_readinto BufferedReaderTest.test_readinto  sa   56aL*A.E"*A.E"*A.E"*A.E"*A.E"~.*A.E"*A.E"r    c                    SnU R                  S5      nU R                  X!S9n[        S5      nU R                  UR	                  S5      S5        U R                  UR
                  S5        U R                  UR                  U5      S5        U R                  US5        U R                  UR
                  S5        U R                  UR                  U5      S5        U R                  US S S	5        U R                  UR
                  S5        U R                  UR                  U5      S5        U R                  US
5        U R                  UR
                  S5        [        SU-  5      nU R                  UR	                  S5      S5        U R                  UR
                  S5        U R                  UR                  U5      S5        U R                  US S S5        U R                  UR
                  S5        g )NrG  )r|     de   fghs   jklr  r   rN  r|  r=   r  r  rE  rF  r5  s   fghjklr  )r   rL  r<  r;  peekrK   rH  )r?   r  r  r  r+   s        r   test_readinto1!BufferedReaderTest.test_readinto1  s   >?7aLA/q)+Q/E"q)+Q/2A%q)+Q/E"q)am$A/q)+Q/2A	*q)r    c           	         SnSnU R                  U45      nU R                  X1S9n[        R                  " SS5      nUR                  U5      nU R	                  U[        U5      5        [        U5      R                  S5      nU R                  U[        U5      5        U R                  US U US U 5        U R                  XvS  S[        XvS  5      -  5        g N<   s   aaaaaaaaaaaaaaaaaaaaaaaaaar  r8  s    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr   rF  )
r   rL  r,   rt   r  r   r   r   
assertLessr;  r?   r  r   r  r  r+   rs   bms           r   test_readinto_array&BufferedReaderTest.test_readinto_array  s    w'7 KKY'
 NN11c!f% ]$3r7#BQbq*BRV!56r    c           	         SnSnU R                  U45      nU R                  X1S9n[        R                  " SS5      nUR                  U5      nU R	                  U[        U5      5        [        U5      R                  S5      nU R                  U[        U5      5        U R                  US U US U 5        U R                  XvS  S[        XvS  5      -  5        g rK  )
r   rL  r,   rH  r  r   r   r   rM  r;  rN  s           r   test_readinto1_array'BufferedReaderTest.test_readinto1_array  s    w'7 KKY'
 OOA1c!f% ]$3r7#BQbq*BRV!56r    c                    ^  U 4S jnT R                  U" 5       R                  5       / SQ5        T R                  U" 5       R                  S5      SS/5        T R                  U" 5       R                  S 5      / SQ5        g )Nc                  H   > TR                  S5      n TR                  U 5      $ )Nr  rC  r  )r   rL  )r  r?   s    r   r  0BufferedReaderTest.test_readlines.<locals>.bufio)  s     NN#<=E775>!r    rW  r   r  rC  r;  r  r  s   ` r   test_readlines!BufferedReaderTest.test_readlines(  sf    	" 	**,.GH**1-&/AB**402KLr    c           	      H   Sn[        U5      nS/ SQUS//S/ SQU//S/ SQ/ SQ//nU Hv  u  pEnU R                  U5      nU R                  XtS	9nSn	U H,  n
U R                  UR	                  U
5      XX-    5        X-  n	M.     U R                  UR
                  U5        Mx     g )
N	   abcdefghiro  )rN  r=   r     r   )rN  rN  rN  r  )r=   r   r  r   )r  r  r=   r  )r   r   rL  r;  r   r   )r?   r   dlenr  r  buf_read_sizesraw_read_sizesr  r  r   nbytess              r   test_buffering!BufferedReaderTest.test_buffering0  s    4y >T1;0:T80>;0
 8=3G^OOD)EGGEG7EC(  F!3Tcj5IJ ) U//@ 8=r    c                 l   U R                  S5      nU R                  U5      nU R                  SUR                  S5      5        U R                  SUR                  S5      5        U R                  SUR                  5       5        U R                  SUR	                  S5      5        U R                  UR                  5       5        U R                  SUR                  5       5        U R                  S5      nU R                  S	UR                  5       5        U R                  UR                  5       5        g )
N)r|  r}  Nr~  NNN   abcdr5     er=   s   fgr    )r8  NNr8  )r   rL  r;  r   rG  rW  r  r  s      r   test_read_non_blocking)BufferedReaderTest.test_read_non_blockingD  s    MN%**Q-0uzz!}-

-ejjm,%**,'ejjl+12u}}/%--/*r    c                     U R                  S5      nU R                  U5      nU R                  SUR                  S5      5        g )Nr  r  i(#  r   rL  r;  r   r  s      r   test_read_past_eof%BufferedReaderTest.test_read_past_eofS  s7    56UZZ%56r    c                     U R                  S5      nU R                  U5      nU R                  SUR                  5       5        g r  rk  r  s      r   test_read_all BufferedReaderTest.test_read_allY  s4    56UZZ\2r    cpuc                 R  ^
^^  Sn[        [        S5      5      U-  n[        R                  " U5        [	        [        U5      5      nU R                  [        R                  S5       nUR                  U5        S S S 5        U R                  [        R                  U R                  SS9 nU R                  US5      m
/ m/ mU
UU4S jn[        S5       Vs/ s H  n[        R                  " US	9PM     nn[        R                  " U5         [         R"                  " S
5        S S S 5        U R%                  TST-  5        SR'                  T5      n[        S5       H9  n[	        [        U/5      5      n	U R)                  UR+                  U	5      U5        M;     S S S 5        [        R,                  " [        R                  5        g ! , (       d  f       GNT= fs  snf ! , (       d  f       N= f! , (       d  f       N[= f! [        R,                  " [        R                  5        f = f)N  r   rX  r   rY  r^  c                     >  [        SS/5       H.  n TR                  U 5      nU(       d    g TR                  U5        M0     g ! [         a  nTR                  U5        e S nAff = f)Nr=      )r   r   rR   	Exception)rs   r  er  errorsresultss      r   r5   *BufferedReaderTest.test_threads.<locals>.fp  sZ    
!&2wA %

1A#$ %#NN1- "0 % a(s   )A A 
A$AA$rD  rq  {Gz?(the following exceptions were caught: %rr    )rH   r<  randomshuffler   r<  r2   r   r-  rT   	read_moderL  r   rs  r   r#  r   r   rn  r  r;  r   r,  )r?   Nlr  r5   rQ  r  threadsr8  cr  rx  ry  s             @@@r   test_threadsBufferedReaderTest.test_threads_  s   $	/ AU3Z 1$ANN1il#A9++T2a
 39++T^^qISQ @ERyIy!9++15yI%33G<JJt$ =  >GIHHW%sAin-A$$QWWQZ3 $- J4 Y--.9 32$ J<<# JI4 Y--.sg   A#H  (G:1H  +,G/G5G/G$A6G/H  
GH  G/
G,	(G//
G=9H   &H&c                    U R                  U R                  S5      5      nU R                  U R                  UR                  5        U R                  U R                  UR
                  S5        UR                  S5        U R                  U R                  UR
                  S5        U R                  U R                  UR                  5        g )Nr  r   r=   )rL  r   r=  r   rm   ri   r   r  s     r   r  "BufferedReaderTest.test_unseekable  s    --i89$33UZZ@$33UZZC

1$33UZZC$33UZZ@r    c                     U R                  S5      nU R                  U5      nU R                  [        UR                  S5        U R                  [        UR
                  5        S Ul        g )Nr  r   c                      g rQ   r#   r#   r    r   rj  7BufferedReaderTest.test_misbehaved_io.<locals>.<lambda>      dr    )r   rL  r=  r   ri   rm   r   r  s      r   test_misbehaved_io%BufferedReaderTest.test_misbehaved_io  sS    $$%;<'5::q1'5::. #r    c           	      @   SnSUS-
  XS-   US-  4 GH  nU R                  SU-  /5      nU R                  X15      nU R                  UR                  U5      SU-  5        U R                  UR                  SSR                  X#R                  5      5        U R                  SUS-
  -  S/5      nU R                  X15      nU R                  UR                  U5      SU-  5        U R                  UR                  SSR                  X#R                  5      5        GM     g )Nr)  r   r=   rF  r   zfailed for {}: {} != 0)r   rL  r;  r   rL   r^  )r?   r  rs   r  r  s        r   test_no_extraneous_read*BufferedReaderTest.test_no_extraneous_read  s    Wq['Q;!DANND1H:.EGGE+EUZZ]D1H5U44a5<<Q@W@WXZ NNDAEND#9:EGGE+EUZZ]D1H5U44a5<<Q@W@WXZ Er    c                 h   U R                  U R                  S5      5      nUR                  S5        UR                  5         U R	                  S5         U R                  [        UR                  5        S S S 5        U R	                  S5         U R                  [        UR                  S5        S S S 5        U R	                  S5         U R                  [        UR                  5        S S S 5        U R	                  S5         U R                  [        UR                  [        5       5        S S S 5        U R	                  S5         U R                  [        UR                  [        5       5        S S S 5        U R	                  S5         U R                  [        UR                  5        S S S 5        U R	                  S	5         U R                  [        UR                  5        S S S 5        U R	                  S
5         U R                  [        UR                  S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNi= f! , (       d  f       GN8= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N   12r=   rG  r  r   rt   rH  r   rw   ri   r   )ry  r  r   r   r  r=  r   rG  r  rt   r<  rH  r   rw   ri   rS   s     r   test_read_on_closed&BufferedReaderTest.test_read_on_closed  s   U 34	q			\\&!j!&&1 "\\'"j!''15 #\\&!j!&&1 "\\*%j!**ikB &\\+&j!++y{C '\\'"j!''2 #\\*%j!**5 &\\&!j!&&!4 "! "!""!!%%&&""%%!!s`   !H'"H9!I*I*I/!J!J<"J#'
H69
I
I
I,/
I>
J
J #
J1c                     U R                  S5      nU R                  U5      nU R                  UR                  5       5        U R	                  U R
                  UR                  5        U R	                  U R
                  UR                  S5        g )Nr|  r   )r   rL  rn  rX   r=  r   rw   r  s      r   test_truncate_on_read_only-BufferedReaderTest.test_truncate_on_read_only  sh    ')*$33U^^D$33U^^QGr    c                 
   U R                  S5      nU R                  U5      nU R                  UR                  5       S5        U R                  UR	                  S5      S5        U R                  UR                  5       S5        g Nr  r   r=      1)r   rL  r;  rm   r   r  s      r   test_tell_character_device_file2BufferedReaderTest.test_tell_character_device_file  se     **51ggclQ'!d+Q'r    c                 J   U R                  S5      nU R                  U5      nU R                  UR                  S[        R
                  5      S5        U R                  UR                  S[        R                  5      S5        U R                  UR                  S[        R
                  5      S5        U R                  UR                  S5      S5        U R                  UR                  5       S5        U R                  UR                  S[        R
                  5      S5        g r  )	r   rL  r;  ri   r   r_  SEEK_SETr   rm   r  s      r   test_seek_character_device_file2BufferedReaderTest.test_seek_character_device_file  s    **51ggcl!R[[115!R[[115!R[[115!d+
 	Q'!R[[115r    r#   N) r%   r&   r'   r(   r  r+  r1  r5  r;  r>  rB  rH  rP  rS  rZ  rc  rh  rl  ro  r   r0  r   requires_resourcer  r  r  r  r  r  r  r  r)   r#   r    r   r&  r&    s    I/-6* 	*#**.7*7*MA(+73 002u%%/ & 3%/NA#Z(5,H(6r    r&  c                   P    \ rS rSr\R
                  rS rS rS r	S r
S rS rSrg	)
CBufferedReaderTesti  c                    U R                  S/5      nU R                  U5      nU R                  [        UR                  USS9  U R                  [        UR
                  5        U R                  [        UR                  USS9  U R                  [        UR
                  5        U R                  [        UR                  USS9  U R                  [        UR
                  5        g )Nr|  r   r  r*  r  )r   rL  r=  r   rN   r   r  s      r   test_initialization'CBufferedReaderTest.test_initialization  s    x(*enneK*ejj1*enneM*ejj1*enneL*ejj1r    c                     U R                  S5      nU R                  U5      nU R                  [        UR                  S5        g )Nr  rG  )r   rL  r=  r   r   r  s      r   test_misbehaved_io_read+CBufferedReaderTest.test_misbehaved_io_read  s8    $$%;< 	'5::r2r    c                    U R                  [        R                  [        R                  5        [        R
                  " S[        45         U R                  [        R                  S5      nU R                  U5      nX"l	        [        R                  " U5      nA[        R                  " 5         S S S 5        U R                  W" 5       U5        g ! , (       d  f       N&= f)Nr  r  )rr  r   r,  r-  r   r  r  rk  rL  r5   rU  rV  r   r  rW  r?   r  r5   rX  s       r   rY  +CBufferedReaderTest.test_garbage_collection  s     		(()*:*:;++R,ABKK	 0 0%8EACQB  C 	"$# CBs   A$C
Cc                     U R                  [        S5         U R                  U R                  5       SSS5        S S S 5        g ! , (       d  f       g = f)Nry  r(  r  r>  rL  r  r>   s    r   test_args_error#CBufferedReaderTest.test_args_error  8    ##I/?@GGDLLND$5 A@@   #A
Ac                 >   U R                  U R                  S5      5      nS Ul        U R                  U5      nU R                  [        5       nUR                  5         S S S 5        U R                  WR                  R                  5        g ! , (       d  f       N4= f)Nr  c                     gr  r#   rq   s    r   rj  =CBufferedReaderTest.test_bad_readinto_value.<locals>.<lambda>  s    Rr    )	rL  r  rt   r=  r   r]  rW  r  	__cause__r?   r  r  r  s       r   test_bad_readinto_value+CBufferedReaderTest.test_bad_readinto_value	  sm    U+,'w'2NN (",,001 ('s   B
Bc                 H   U R                  U R                  S5      5      nS Ul        U R                  U5      nU R                  [        5       nUR                  5         S S S 5        U R                  WR                  R                  [        5        g ! , (       d  f       N9= f)Nr  c                     gr  r#   r  s    r   rj  <CBufferedReaderTest.test_bad_readinto_type.<locals>.<lambda>  s    Sr    )
rL  r  rt   r=  r   r]  r  r  r  r>  r  s       r   test_bad_readinto_type*CBufferedReaderTest.test_bad_readinto_type  so    U+,(w'2NN (bll44i@ ('s   B
B!r#   N)r%   r&   r'   r(   r   ry  rL  r  r  rY  r  r  r  r)   r#   r    r   r  r    s,    			B23$6
2Ar    r  c                   ,    \ rS rSr\R
                  rSrg)PyBufferedReaderTesti  r#   N)r%   r&   r'   r(   r   ry  rL  r)   r#   r    r   r  r        			Br    r  c                   "   \ 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\R2                  " 5       \R6                  " S5      S 5       5       rS rS rS r\R2                  " 5       S 5       r Sr!g)BufferedWriterTesti  rX  c                    U R                  5       nU R                  U5      nUR                  U5        UR                  USS9  UR                  USS9  U R                  SUR	                  S5      5        UR                  5         U R                  [        UR                  USS9  U R                  [        UR                  USS9  U R                  [        UR                  USS9  UR                  U5        U R                  SUR	                  S	5      5        UR                  5         U R                  S
R                  UR                  5      S5        g )Nr(  r  r)  rN  r|  r   r*  r     ghir    s   abcghi)
r   rL  rN   r;  rT   r   r=  r   r  rJ   r  s      r   r+  #BufferedWriterTest.test_constructor!  s    uu$/u"-EKK/0*enneK*enneM*enneLuEKK/0%"4"45yAr    c                 j   U R                   R                  U R                   5      nAU R                   R                  U R                   5      nU R                  [        [        4SUR
                  S5        UR                  U R                  5       5        U R                  UR                  S5      S5        g )Nr/  r    r   )	rL  r0  r  r   r  rT   rN   r   r;  r  s     r   r1  %BufferedWriterTest.test_uninitialized1  s    ((
N;?${{C	1 	t~~'(S)1-r    c                     U R                  5       nU R                  U5      nUR                  S5        U R                  UR                  5        UR                  5         U R                  UR                  S/5        g )Ns   howdy!)r   rL  rT   rn  rJ   r  r;  r  s      r   test_detach_flush$BufferedWriterTest.test_detach_flush;  s\    nnggcl		)))*

))I;7r    c                 X   U R                  5       nU R                  US5      nUR                  S5        U R                  UR                  5        [        S5      nUR                  U5        SUS S & UR                  5         U R                  SR                  UR                  5      S5        g )Nr^  r|     def   ***r       abcdef)	r   rL  rT   rn  rJ   r<  r   r;  r  )r?   r  r  r?  s       r   
test_writeBufferedWriterTest.test_writeC  s    !"F,,-6"Fq	&"5"56	Br    c                 0   U R                  5       nU R                  US5      nSn[        S[        U5      S5       H  nUR	                  X4US-    5        M     SR                  UR                  5      nU R                  UR                  US S 5      U5        g )Nr^  s   abcdefghijklmnopr   rN  r    i)	r   rL  r<  r   rT   r  rJ   rm  r  )r?   r  r  contentsrs   flusheds         r   test_write_overflow&BufferedWriterTest.test_write_overflowO  s    !"&q#h-+AKK1Q3( ,((6../ 	**8CR=97Cr    c                    [        [        S5      5      S-  nSnU R                  5       nU R                  US5      nS nU" 5       nU[	        U5      :  ac  [        [        U5      [	        U5      U-
  5      nU R                  UR                  X#X8-    5      U5        U" U5        X8-  nU[	        U5      :  a  Mc  UR                  5         U R                  USR                  UR                  5      5        g )Nr   rs  r   r8  c               3   \   #    [        S5       H  n [        S5       H  nU v   M	     M     g 7f)Nr=      )r   r<  )r  r8  s     r   	gen_sizes2BufferedWriterTest.check_writes.<locals>.gen_sizesa  s&     arAJ # !s   *,r    )r   r<  r   rL  r   r  r  r;  rT   r   r  rJ   )	r?   intermediate_funcr  rs   r  r  r  sizesr  s	            r   check_writesBufferedWriterTest.check_writesZ  s    s$t+!#	 #h-tE{CMA$56DU[[AF);<dCe$IA	 #h-
 	388F,?,?#@Ar    c                 (    U R                  S 5        g )Nc                     g rQ   r#   r  s    r   rj  0BufferedWriterTest.test_writes.<locals>.<lambda>o  s    r    r  r>   s    r   test_writesBufferedWriterTest.test_writesn  s    ,-r    c                 (    U R                  S 5        g )Nc                 "    U R                  5       $ rQ   r  r  s    r   rj  <BufferedWriterTest.test_writes_and_flushes.<locals>.<lambda>r  s
    r    r  r>   s    r   test_writes_and_flushes*BufferedWriterTest.test_writes_and_flushesq  s    56r    c                 T    S nU R                  U5        S nU R                  U5        g )Nc                     U R                  5       nU R                  US-   S5        U R                  US-
  S5        U R                  US5        g r<   )rm   ri   r  r   s     r   _seekabs:BufferedWriterTest.test_writes_and_seeks.<locals>._seekabsu  s?    **,CJJsQw"JJsQw"JJsAr    c                     U R                  SS5      nU R                  SS5        U R                  SS5        U R                  US5        g )Nr   r=   r  )ri   r  s     r   _seekrel:BufferedWriterTest.test_writes_and_seeks.<locals>._seekrel{  s<    **Q"CJJr1JJr1JJsAr    r  )r?   r  r  s      r   test_writes_and_seeks(BufferedWriterTest.test_writes_and_seekst  s,    	
 	(#	
 	(#r    c                 (    U R                  S 5        g )Nc                 @    U R                  U R                  5       5      $ rQ   )rw   rm   r  s    r   rj  >BufferedWriterTest.test_writes_and_truncates.<locals>.<lambda>  s    uzz|(Dr    r  r>   s    r   test_writes_and_truncates,BufferedWriterTest.test_writes_and_truncates  s    DEr    c                    U R                  5       nU R                  US5      nU R                  UR                  S5      S5        U R                  UR                  S5      S5        UR	                  S5        U R                  UR                  S5      S5        UR	                  S5         UR                  S	5        U R                  S
5        U R                  WS5        U R                  UR                  5       S5        U R                  UR                  S5      S5        UR                  5       nU R                  UR                  S5      U5        g ! U R                   a  nUR                  n S nANS nAff = f)Nr^  rf  r  s   efghir      ks   jklmn   0s   opqrwxyz0123456789z'BlockingIOError should have been raisedr)  s   abcdefghijklmnopqrwxyzs	   ABCDEFGHIr6  s	   01234567A)r  rL  r;  rT   r  r  r%  characters_writtenr  rm  r  )r?   rQ  r  rw  writtenr  s         r   test_write_non_blocking*BufferedWriterTest.test_write_non_blocking  s1   '')QW-q1X.2TX.2 	T	AKK-. II?@"%*%	' 	\2A6OO\2A6 ## 	+**G	+s   )E E6 E11E6c                 6   U R                  5       nU R                  US5      nU R                  UR                  S5      S5        U R                  UR	                  5       S5        UR                  SS5        U R                  UR                  S5      S5        UR                  SS5        U R                  UR                  5       S5        U R                  UR                  S5      S5        UR                  5         U R                  UR                  5       S	5        g )
Nr  r  r5  r   s   XYr   s   XYcdefs   123456s   XYcdef123456)r  rL  r;  rT   rm   ri   r  r   r?   rQ  r  s      r   test_write_and_rewind(BufferedWriterTest.test_write_and_rewind  s    llnQY/3q)

1aU+Q/

1a3Y/39r    c                     U R                  5       nU R                  US5      nUR                  S5        UR                  5         U R	                  SUR
                  S   5        g Nr^  r|  r   )r   rL  rT   r   r;  rJ   r?   r  r  s      r   
test_flushBufferedWriterTest.test_flush  sN    !"F!4!4Q!78r    c                     / SQnU R                  5       nU R                  US5      nUR                  U5        UR                  5         U R	                  SR                  UR                  5      S5        g N)r  rA  r  r^  r    r  )r   rL  r^  r   r;  r  rJ   r?   r  r  r  s       r   test_writelines"BufferedWriterTest.test_writelines  sY    !!"&"5"56	Br    c                     [        / SQ5      nU R                  5       nU R                  US5      nUR                  U5        UR	                  5         U R                  SR                  UR                  5      S5        g r  )r   r   rL  r^  r   r;  r  rJ   r  s       r   test_writelines_userlist+BufferedWriterTest.test_writelines_userlist  s_    *+!"&"5"56	Br    c                    U R                  5       nU R                  US5      nU R                  [        UR                  / SQ5        U R                  [        UR                  S 5        U R                  [        UR                  S5        g )Nr^  r  abc)r   rL  r=  r>  r^  r	  s      r   test_writelines_error(BufferedWriterTest.test_writelines_error  sf    !")U%5%5yA)U%5%5t<)U%5%5u=r    c                     U R                  5       nU R                  US5      nUR                  S5        A[        R                  " 5         U R                  SUR                  S   5        g r  )r   rL  rT   r   r  r;  rJ   r	  s      r   r  "BufferedWriterTest.test_destructor  sT    !"F!4!4Q!78r    c                 `   U R                  [        R                  [        R                  5        U R	                  [        R                  U R
                  SS9 nU R                  US5      nUR                  S5        U R                  UR                  S5      S5        U R                  UR                  5       S5        S S S 5        U R	                  [        R                  SSS9 nU R                  UR                  5       S5        S S S 5        g ! , (       d  f       NW= f! , (       d  f       g = f)	Nr   rY  r^  r  rN  r5  r[  r|  )rr  r   r,  r-  r2   
write_moderL  rT   r;  rw   rm   r   )r?   rQ  r  r5   s       r   test_truncate BufferedWriterTest.test_truncate  s    	(()*:*:;YYy''AYF#GGCOEKK	"U^^A.2UZZ\1-	 G
 YYy''Y;qQVVXv. <; GF
 <;s   A%D$!D
D
D-c                 @   U R                  [        R                  [        R                  5        U R	                  [        R                  S5       nUR                  SS-  5        S S S 5        / SQnU H  nU R	                  [        R                  SUS9 nUR                  SUS-   -  5        UR                  S5        UR                  5         U R                  UR                  5       US-   5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       M  = f)	NrX      i'  )r  r     zr+brY  r=   r   )
rr  r   r,  r-  r2   rT   r   rw   r;  rm   )r?   r5   buffer_sizesr  s       r   test_truncate_after_write,BufferedWriterTest.test_truncate_after_write  s     		(()*:*:;YYy''.!GGGeO$ / )'K9++UkJa;?34q	

  ;?; KJ (	 /.
 KJs   C=AD=
D
D	rq  c                   ^^^  Sn[        [        S5      5      U-  n[        SS/5      nSn[        5       mU[	        U5      :  a5  [        U5      nTR                  X$XE-    5        XE-  nU[	        U5      :  a  M5  AU R                  [        R                  U R                  SS9 nU R                  US5      m/ mUUU4S jn[        S	5       Vs/ s H  n[        R                  " US
9PM     n	n[        R                  " U	5         [         R"                  " S5        S S S 5        U R%                  TST-  5        TR'                  5         S S S 5        U R                  [        R                  S5       nUR)                  5       n
S S S 5        [        S5       H.  nU R+                  W
R-                  [        U/5      5      U5        M0     [        R.                  " [        R                  5        g s  snf ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! [        R.                  " [        R                  5        f = f)Nrs  r   r=   ru  r   rY  r^  c                     >    TR                  5       n TR                  U 5        M$  ! [         a     g f = f! [         a  nTR	                  U5        e S nAff = frQ   )popleftrp   rT   rv  rR   )r  rw  r  rx  queues     r   r5   *BufferedWriterTest.test_threads.<locals>.f  sa    	"'$)MMO "KKN # $. ' &' % a(s-   8 ( 8 
58 58 
AAArD  r{  r|  r}  r[  )r   r<  r   r   r   r  rR   r2   r   r-  r  rL  r   rs  r   r#  r   r   rn  r   r   r;  r   r,  )r?   r  r  r  rs   r  rQ  r5   r  r  r  r8  r  rx  r'  s               @@@r   r  BufferedWriterTest.test_threads  s   +	/ AU3Z(1,H1b'NEAGEc(m#E{X/0	 c(m#  9++T__JcQ
 @ERyIy!9++15yI%33G<JJt$ =  >GI' K( 9++T2aFFH 33Z  s!4a8   Y--. J<< KJ( 32
 Y--.sm   A4H$ ;*H$ %*HG,-HG1-H	(H$ 1HAH$ ,H1
G?	;H
HH$ 
H!H$ $&I
c                    U R                  5       nU R                  US5      nU R                  [        UR                  S5        U R                  [        UR
                  5        U R                  [        UR                  S5        S Ul        g )Nr   r   r  c                      g rQ   r#   r#   r    r   rj  7BufferedWriterTest.test_misbehaved_io.<locals>.<lambda>(  r  r    )r   rL  r=  r   ri   rm   rT   r   r  s      r   r  %BufferedWriterTest.test_misbehaved_io   si    $$&q!'5::q1'5::.'5;;	: #r    c                     U R                  [        5         U R                  U R                  5       SS5        S S S 5        g ! , (       d  f       g = fNr^  r9  r=  r>  rL  r   r>   s    r   test_max_buffer_size_removal/BufferedWriterTest.test_max_buffer_size_removal*  s3    y)GGDNN$a, *))s   "A
Ac                     U R                  5       nS nX!l        U R                  U5      nUR                  S5        U R                  [        UR
                  5        U R                  UR                  5        g )Nc                     [        5       erQ   r  )r+   s    r   	bad_write?BufferedWriterTest.test_write_error_on_close.<locals>.bad_write0  s	    )Or       spam)r   rT   rL  r=  r   r   rm  r   )r?   rQ  r5  r+   s       r   test_write_error_on_close,BufferedWriterTest.test_write_error_on_close.  sU    nn		GGCL	'177+!r    c                 p   U R                  5       nU R                  US5      n[        R                  " UR                  S9nUR                  5         UR                  R                  5         U R                  [        UR                  S5        U R                  UR                  5        UR                  5         g )Nr^  r{  r7  )r   rL  r   rs  r   rt  r   r  r=  r   rT   rm  r   r  )r?   r  r  ts       r   test_slow_close_from_thread.BufferedWriterTest.test_slow_close_from_thread8  s~     ##%q!EKK0		*ekk7;%	r    r#   N)"r%   r&   r'   r(   r  r+  r1  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r"  r   r0  r   r  r  r  r1  r8  r<  r)   r#   r    r   r  r    s    JB .8
C	DB(.7$F76:9CC>9	/<$ 002u%,/ & 3,/\#-" 002	 3	r    r  c                   >    \ rS rSr\R
                  rS rS rS r	Sr
g)CBufferedWriterTestiF  c                    U R                  5       nU R                  U5      nU R                  [        UR                  USS9  U R                  [        UR
                  S5        U R                  [        UR                  USS9  U R                  [        UR
                  S5        U R                  [        UR                  USS9  U R                  [        UR
                  S5        g )Nr   r  r  r*  r  )r   rL  r=  r   rN   rT   r  s      r   r  'CBufferedWriterTest.test_initializationI  s     *enneK*ekk6:*enneM*ekk6:*enneL*ekk6:r    c                    U R                  [        R                  [        R                  5        [        R
                  " S[        45         U R                  [        R                  S5      nU R                  U5      nUR                  S5        X"l
        [        R                  " U5      nA[        R                  " 5         S S S 5        U R                  W" 5       U5        U R!                  [        R                  S5       nU R#                  UR%                  5       S5        S S S 5        g ! , (       d  f       No= f! , (       d  f       g = f)Nr  r  s   123xxxr[  )rr  r   r,  r-  r   r  r  rk  rL  rT   r  rU  rV  r   r  rW  r2   r;  r   r  s       r   rY  +CBufferedWriterTest.test_garbage_collectionS  s     		(()*:*:;++R,ABKK	 0 0%8EAGGICQB  C 	"$#YYy''.!QVVXy1 /. CB /.s   A5D)?!D:)
D7:
Ec                     U R                  [        S5         U R                  U R                  5       SSS5        S S S 5        g ! , (       d  f       g = f)Nr~  r(  r  r>   s    r   r  #CBufferedWriterTest.test_args_errord  r  r  r#   N)r%   r&   r'   r(   r   r~  rL  r  rY  r  r)   r#   r    r   r?  r?  F  s    			B;2"6r    r?  c                   ,    \ rS rSr\R
                  rSrg)PyBufferedWriterTestij  r#   N)r%   r&   r'   r(   r   r~  rL  r)   r#   r    r   rG  rG  j  r  r    rG  c                       \ 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g)BufferedRWPairTestim  c                     U R                  U R                  5       U R                  5       5      nU R                  UR                  5        g rQ   )rL  r   rn  r   r?   pairs     r   r+  #BufferedRWPairTest.test_constructoro  s2    wwt~~')9:%r    c                    U R                   R                  U R                   5      nAU R                   R                  U R                   5      nU R                  [        [        4SUR
                  S5        U R                  [        [        4SUR                  S5        UR                  U R                  5       U R                  5       5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        g r.  )
rL  r0  r  r   r  r   rT   rN   r   r;  rK  s     r   r1  %BufferedRWPairTest.test_uninitializeds  s    wwtww'wwtww'
N;?#yy!	- 	
N;?#zz3	0 	dnn&(891s+C!,r    c                     U R                  U R                  5       U R                  5       5      nU R                  U R                  UR                  5        g rQ   )rL  r   r=  r   r  rK  s     r   r  BufferedRWPairTest.test_detach  s:    wwt~~')9:$33T[[Ar    c                     U R                  [        5         U R                  U R                  5       U R                  5       SS5        S S S 5        g ! , (       d  f       g = fr/  r0  r>   s    r   (test_constructor_max_buffer_size_removal;BufferedRWPairTest.test_constructor_max_buffer_size_removal  s<    y)GGDNN$dnn&62> *))s   1A
Ac                      " S S[         5      nU R                  [        U R                  U" 5       U R                  5       5        g )Nc                       \ rS rSrS rSrg)JBufferedRWPairTest.test_constructor_with_not_readable.<locals>.NotReadablei  c                     gr   r#   r>   s    r   ra   SBufferedRWPairTest.test_constructor_with_not_readable.<locals>.NotReadable.readable      r    r#   Nr%   r&   r'   r(   ra   r)   r#   r    r   NotReadablerW        r    r\  r   r=  r   rL  )r?   r\  s     r   "test_constructor_with_not_readable5BufferedRWPairTest.test_constructor_with_not_readable  s1    	) 	 	'477KM4>>;KLr    c                      " S S[         5      nU R                  [        U R                  U R                  5       U" 5       5        g )Nc                       \ rS rSrS rSrg)LBufferedRWPairTest.test_constructor_with_not_writeable.<locals>.NotWriteablei  c                     gr   r#   r>   s    r   rX   UBufferedRWPairTest.test_constructor_with_not_writeable.<locals>.NotWriteable.writable  rZ  r    r#   N)r%   r&   r'   r(   rX   r)   r#   r    r   NotWriteablerc    r]  r    rf  r^  )r?   rf  s     r   #test_constructor_with_not_writeable6BufferedRWPairTest.test_constructor_with_not_writeable  s1    	9 	 	'477DNN,<lnMr    c                    U R                  U R                  S5      U R                  5       5      nU R                  UR	                  S5      S5        U R                  UR	                  S5      S5        U R                  UR	                  5       S5        U R                  U R                  S5      U R                  5       5      nU R                  UR	                  S 5      S5        g )Nr  rN  r|  r=   r}  r  )rL  r  r   r;  r   rK  s     r   r5  BufferedRWPairTest.test_read  s    wwt||I.0@A1v.1t,e,wwt||F+T^^-=>4&1r    c                    ^  U 4S jnT R                  U" 5       R                  5       / SQ5        T R                  U" 5       R                  5       / SQ5        T R                  U" 5       R                  S5      SS/5        g )Nc                  b   > T R                  T R                  S5      T R                  5       5      $ )Ns	   abc
def
h)rL  r  r   r>   s   r   rj  3BufferedRWPairTest.test_readlines.<locals>.<lambda>  s     twwt||N;T^^=MNr    )r  r  r7  r   r  r  rY  rK  s   ` r   rZ  !BufferedRWPairTest.test_readlines  sb    N))+-GH))+-GH))!,x.BCr    c                     U R                  U R                  S5      U R                  5       5      nU R                  UR	                  S5      S5        U R                  UR	                  5       S5        g )Nr  rN  r|  r  )rL  r  r   r;  r  rK  s     r   r;  BufferedRWPairTest.test_read1  sR     wwt||I.0@AA/v.r    c                 Z   S H  nU R                  U5         U R                  U R                  S5      U R                  5       5      n[	        S5      nU R                  [        X!5      " U5      S5        U R                  [        U5      S5        S S S 5        M     g ! , (       d  f       M  = f)Nr  r  s        r   s   abcde)r  rL  r  r   r   r;  r  r   )r?   r  rL  r   s       r   rB   BufferedRWPairTest.test_readinto  s    /Ff%wwt||I68HI +  !6t!<a@  th7 &% 0%%s   A7B
B*	c                 D   U R                  5       nU R                  U R                  5       U5      nUR                  S5        UR                  5         [	        S5      nUR                  U5        SUS S & UR                  5         U R                  UR                  SS/5        g )Nr|  r  r  )r   rL  rT   r   r<  r;  rJ   )r?   rV  rL  r?  s       r   r  BufferedRWPairTest.test_write  s{    NNwwt~~'+

6

6"

6q	

&&)9:r    c                    U R                  U R                  S5      U R                  5       5      nU R                  UR	                  S5      R                  S5      5        U R                  UR                  S5      S5        g )Nr  rN  r|  )rL  r  r   rm  rG  r  r;  r   rK  s     r   	test_peekBufferedRWPairTest.test_peek  sY    wwt||I.0@A		!//781v.r    c                     U R                  U R                  5       U R                  5       5      nU R                  UR                  5       5        g rQ   )rL  r   rm  ra   rK  s     r   test_readable BufferedRWPairTest.test_readable  2    wwt~~')9:(r    c                     U R                  U R                  5       U R                  5       5      nU R                  UR                  5       5        g rQ   )rL  r   rm  rX   rK  s     r   test_writeable!BufferedRWPairTest.test_writeable  r{  r    c                     U R                  U R                  5       U R                  5       5      nU R                  UR                  5       5        g rQ   )rL  r   rn  rd   rK  s     r   test_seekable BufferedRWPairTest.test_seekable  s6     wwt~~')9:)r    c                     U R                  U R                  5       U R                  5       5      nU R                  UR                  5        UR	                  5         U R                  UR                  5        g rQ   )rL  r   rn  r   r   rm  rK  s     r   test_close_and_closed(BufferedRWPairTest.test_close_and_closed  sK    wwt~~')9:%

$r    c                    S nU R                  5       nXl        U R                  5       nU R                  X#5      nU R                  [        5       nUR                  5         S S S 5        U R                  S[        WR                  5      5        U R                  UR                  5        U R                  UR                  5        U R                  UR                  5        S Ul        g ! , (       d  f       N= f)Nc                      [           g rQ   reader_non_existingr#   r    r   reader_closeIBufferedRWPairTest.test_reader_close_error_on_close.<locals>.reader_close      r    r  c                      g rQ   r#   r#   r    r   rj  EBufferedRWPairTest.test_reader_close_error_on_close.<locals>.<lambda>  r  r    )r   r   rL  r=  r  r  r  r  rm  r   rn  )r?   r  r  r  rL  r  s         r    test_reader_close_error_on_close3BufferedRWPairTest.test_reader_close_error_on_close  s    	 !#!wwv&y)SJJL *+S-?@$'& $ *)s   C((
C6c                 
   S nU R                  5       nU R                  5       nXl        U R                  X#5      nU R                  [        5       nUR                  5         S S S 5        U R                  S[        WR                  5      5        U R                  UR                  5        U R                  UR                  5        U R                  UR                  5        S Ul        S n[        R                  " 5          [        R                  " 5          S n[        R                  " 5         S S S 5        [        R                  " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N== f! , (       d  f       g = f)Nc                      [           g rQ   writer_non_existingr#   r    r   writer_closeIBufferedRWPairTest.test_writer_close_error_on_close.<locals>.writer_close  r  r    r  c                      g rQ   r#   r#   r    r   rj  EBufferedRWPairTest.test_writer_close_error_on_close.<locals>.<lambda> 	  r  r    )r   r   rL  r=  r  r  r  r  rn  r   rm  r   r  r  )r?   r  r  r  rL  r  s         r    test_writer_close_error_on_close3BufferedRWPairTest.test_writer_close_error_on_close  s   	 !!#wwv&y)SJJL *+S-?@%&' $ //1335""$ 6   21 *) 65 21s0   E>E4E#,E4
E #
E1	-E44
Fc                    S nS nU R                  5       nXl        U R                  5       nX$l        U R                  X45      nU R                  [        5       nUR                  5         S S S 5        U R                  S[        WR                  5      5        U R                  UR                  R                  [        5        U R                  S[        UR                  R                  5      5        U R                  UR                  5        U R                  UR                  5        U R                  UR                  5        S Ul        S Ul        g ! , (       d  f       N= f)Nc                      [           g rQ   r  r#   r    r   r  PBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.reader_close	  r  r    c                      [           g rQ   r  r#   r    r   r  PBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.writer_close	  r  r    r  r  c                      g rQ   r#   r#   r    r   rj  LBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.<lambda>	  r  r    c                      g rQ   r#   r#   r    r   rj  r   	  r  r    )r   r   rL  r=  r  r  r  r  r  r  rn  r   )r?   r  r  r  r  rL  r  s          r   'test_reader_writer_close_error_on_close:BufferedRWPairTest.test_reader_writer_close_error_on_close	  s    	 	 !#!#wwv&y)SJJL *+S-?@cmm77C+S1J1J-KL%'' $# *)s   E
E c                 
    " S S[         5      nU R                  U" S5      U" S5      5      nU R                  UR                  5       5        U R                  U" S5      U" S5      5      nU R	                  UR                  5       5        U R                  U" S5      U" S5      5      nU R	                  UR                  5       5        U R                  U" S5      U" S5      5      nU R	                  UR                  5       5        g )Nc                        \ rS rSrS rS rSrg)8BufferedRWPairTest.test_isatty.<locals>.SelectableIsAttyi#	  c                 :    [         R                  U 5        Xl        g rQ   )r   rN   _isatty)r?   isattys     r   rN   ABufferedRWPairTest.test_isatty.<locals>.SelectableIsAtty.__init__$	  s    ""4(%r    c                     U R                   $ rQ   r  r>   s    r   r  ?BufferedRWPairTest.test_isatty.<locals>.SelectableIsAtty.isatty(	  s    ||#r    r  N)r%   r&   r'   r(   rN   r  r)   r#   r    r   SelectableIsAttyr  #	  s    &$r    r  FT)r   rL  rn  r  rm  )r?   r  rL  s      r   test_isattyBufferedRWPairTest.test_isatty"	  s    	$y 	$ ww'.0@0GH'ww'-/?/FG&ww'.0@0FG&ww'-/?/EF&r    c                     U R                  U R                  5       U R                  5       5      n[        R                  " U5      nS nS ng rQ   )rL  r   rU  rV  )r?   brwrV  s      r   test_weakref_clearing(BufferedRWPairTest.test_weakref_clearing7	  s8    ggdnn&(89kk#r    r#   N)r%   r&   r'   r(   r+  r1  r  rS  r_  rg  r5  rZ  r;  rB  r  rv  ry  r}  r  r  r  r  r  r  r  r)   r#   r    r   rI  rI  m  so    &-B?MN2D/8
;/))*%$"!4$.'*r    rI  c                   ,    \ rS rSr\R
                  rSrg)CBufferedRWPairTesti=	  r#   N)r%   r&   r'   r(   r   r  rL  r)   r#   r    r   r  r  =	  s    			Br    r  c                   ,    \ rS rSr\R
                  rSrg)PyBufferedRWPairTesti@	  r#   N)r%   r&   r'   r(   r   r  rL  r)   r#   r    r   r  r  @	  r  r    r  c                       \ 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rg)BufferedRandomTestiD	  rb+zwb+c                 X    [         R                  U 5        [        R                  U 5        g rQ   )r&  r+  r  r>   s    r   r+  #BufferedRandomTest.test_constructorH	  s    ++D1++D1r    c                 X    [         R                  U 5        [        R                  U 5        g rQ   )r&  r1  r  r>   s    r   r1  %BufferedRandomTest.test_uninitializedL	      --d3--d3r    c                    U R                  S5      nU R                  US5      nU R                  SUR                  S5      5        UR	                  S5        UR	                  S5        U R                  UR                  5        U R                  SUR                  5       5        U R                  SUR                  S	   5        g )
N)   asdf   ghjkr^     asr   s   ddds   eeer  s   dddeeer   )r   rL  r;  r   rT   rn  rJ   r?   rQ  r  s      r   test_read_and_write&BufferedRandomTest.test_read_and_writeP	  s    nn/0WWS!_
+

))*"''),C$4$4Q$78r    c                    U R                  S5      nU R                  U5      nU R                  SUR                  S5      5        U R                  SUR	                  5       5        UR                  SS5        U R                  SUR                  S5      5        UR                  S5        UR                  SS5        U R                  SUR                  5       5        U R                  S	UR	                  5       5        UR                  S
S5        U R                  SUR	                  5       5        UR                  SS5        U R                  SUR	                  5       5        U R                  SUR                  S5      5        UR                  5         U R                  SUR                  5       5        U R                  [        UR
                  S5        g )Ns	   asdfghjklr  r   r   r  r  s   123fs	   asdf123flr6  r   r=   r  s   fl   r:  )r  rL  r;  r   rm   ri   rT   r   r  r=  r>  r  s      r   test_seek_and_tell%BufferedRandomTest.test_seek_and_tell[	  sH   ll<(WWS\
+BGGI&
1"''!*-

1rwwy1BGGI&
ABGGI&
1BGGI&,

s||~6)RWWc2r    c                 Z   U R                  S5      nU R                  U5      nU R                  SU" US5      5        UR                  S5        U R                  SU" US5      5        U R                  SUR	                  5       5        UR                  5         U R                  SUR	                  5       5        U R                  SU" U5      5        UR                  SS5        UR                  S	5        UR                  5         UR                  SS5        U R                  S	U" US
5      5        g )Nr]  r  r   r  r  r5  r  r   s   XYZrN  )r  rL  r;  rT   rm   r   ri   )r?   	read_funcrQ  r  s       r   check_flush_and_read'BufferedRandomTest.check_flush_and_readr	  s    ll<(	% 34E	% 34EJJL)EJJL)5!12A		&

1a5!!45r    c                 (    U R                  S 5        g )Nc                      U R                   " U6 $ rQ   )r   )r  r   s     r   rj  8BufferedRandomTest.test_flush_and_read.<locals>.<lambda>	  s    uzz47Hr    r  r>   s    r   test_flush_and_read&BufferedRandomTest.test_flush_and_read	  s    !!"HIr    c                 0    SS jnU R                  U5        g )Nc                 f    [        US:  a  UOS5      nU R                  U5      n[        US U 5      $ )Nr   '  )r<  rt   r   r  rs   r+   s      r   	_readinto=BufferedRandomTest.test_flush_and_readinto.<locals>._readinto	  s2    qAv!40Aq!A2A<r    r  r  )r?   r  s     r   test_flush_and_readinto*BufferedRandomTest.test_flush_and_readinto	  s    	  	!!),r    c                 0    SS jnU R                  U5        g )Nc                 t    U R                  U5      nUS:w  a  US U nU R                  [        U5      S5        U$ Nr  r=   )rG  ri   r   r  s      r   _peek5BufferedRandomTest.test_flush_and_peek.<locals>._peek	  s:     

1ABwbqEJJs1vq!Hr    r  r  r?   r  s     r   test_flush_and_peek&BufferedRandomTest.test_flush_and_peek	  s    	 	!!%(r    c                 p   U R                  S5      nU R                  U5      nUR                  S5        UR                  5         UR                  S5        UR                  5         UR	                  SS5        U R                  SUR                  5       5        U R                  SUR                  5       5        g )Nr]     123s   45r   s	   12345fghi)r  rL  rT   r   ri   r;  r  r   r  s      r   test_flush_and_write'BufferedRandomTest.test_flush_and_write	  s    ll<(FE

1as||~6uzz|4r    c                 X    [         R                  U 5        [        R                  U 5        g rQ   )r&  r  r  r>   s    r   r  BufferedRandomTest.test_threads	  s    ''-''-r    c                 T    S nU R                  U5        S nU R                  U5        g )Nc                 &    U R                  S5        g r   )rG  r  s    r   r  6BufferedRandomTest.test_writes_and_peek.<locals>._peek	  s    JJqMr    c                     U R                  5       nU R                  SS5        U R                  S5        U R                  US5        g )Nr  r=   r   )rm   ri   rG  r  s     r   r  r  	  s4    **,CJJr1JJqMJJsAr    r  r  s     r   test_writes_and_peek'BufferedRandomTest.test_writes_and_peek	  s*    	% 	
 	% r    c                 ,    S nU R                  U5        g )Nc                 J    U R                  SS5        U R                  S5        g r  )ri   r   r  s    r   _read7BufferedRandomTest.test_writes_and_reads.<locals>._read	  s    JJr1JJqMr    r  r?   r  s     r   test_writes_and_reads(BufferedRandomTest.test_writes_and_reads	  s    	 	% r    c                 ,    S nU R                  U5        g )Nc                 J    U R                  SS5        U R                  S5        g r  )ri   r  r  s    r   _read19BufferedRandomTest.test_writes_and_read1s.<locals>._read1	  s    JJr1KKNr    r  )r?   r  s     r   test_writes_and_read1s)BufferedRandomTest.test_writes_and_read1s	  s    	 	&!r    c                 ,    S nU R                  U5        g )Nc                 \    U R                  SS5        U R                  [        S5      5        g r  )ri   rt   r<  r  s    r   r  ;BufferedRandomTest.test_writes_and_readintos.<locals>._read	  s     JJr1NN9Q<(r    r  r  s     r   test_writes_and_readintos,BufferedRandomTest.test_writes_and_readintos	  s    	) 	% r    c                    S GH  nU R                  S5      nU R                  US5      nU R                  UR                  S5      S5        U R                  UR	                  5       S5        UR                  SU-  5        U R                  UR	                  5       US-   5        UR                  5         U R                  UR	                  5       US-   5        UR                  5       nU R                  USSU-  -   SSU-
  -  -   5        GM     g )N)r=   r   r  r  r=      A   Br6  )r  rL  r;  r   rm   rT   r   r  )r?   overwrite_sizerQ  r  r  s        r   test_write_after_readahead-BufferedRandomTest.test_write_after_readahead	  s     %N,,y)CGGCOEUZZ]D1UZZ\1-KK~-.UZZ\>A+=> KKMUZZ\>A+=>AQtn,,tq>7I/JJL %r    c           	      f   S nSn[        S[        U5      5       H  n[        U[        U5      5       Hw  nU R                  U5      nU R                  US5      nU" XcU5        UR	                  5         [        U5      nSXt'   SXs'   U R                  UR                  5       USX44-  5        My     M     g )Nc                     U R                  U5        U R                  X!-
  5        U R                  S5        U R                  U5        U R                  S5        g )N      )ri   r   rT   )r  pos1pos2s      r   mutate:BufferedRandomTest.test_write_rewind_write.<locals>.mutate	  sD     JJtJJt{#KK  JJtKK r    s   r   ro  r   r=   zfailed result for i=%d, j=%d)r<  r   r  rL  r   r<  r;  r  )r?   r  r+   r8  jrQ  r  expecteds           r   test_write_rewind_write*BufferedRandomTest.test_write_rewind_write	  s    		! $q#a&!A1c!f%ll1oS)u#$Q<  !?1&!HJ & "r    c                 N   U R                  S5      nU R                  US5      nU R                  UR                  S5      S5        U R                  UR	                  5       S5        U R                  UR                  S5      S5        U R                  UR	                  5       S5        g )Nr  ro  r   s   AAs   BBr  )r  rL  r;  r   rw   rT   r  s      r   !test_truncate_after_read_or_write4BufferedRandomTest.test_truncate_after_read_or_write	  s    ll9%S!A.)1-U+Q/)1-r    c                 X    [         R                  U 5        [        R                  U 5        g rQ   )r&  r  r  r>   s    r   r  %BufferedRandomTest.test_misbehaved_io	  r  r    c                 p   U R                  S5       nU R                  US5       nUR                  S5        U R                  UR	                  S5      S5        UR                  S5        U R                  UR                  S5      S5        UR                  S5        [        S5      nUR                  U5        U R                  US	5        UR                  S
5        U R                  UR                  S5      S5        UR                  5         U R                  UR                  5       S5        S S S 5        S S S 5        U R                  S5       nU R                  US5       nU R                  UR	                  S5      S5        UR                  S5        U R                  UR	                  S5      S5        UR                  5         U R                  UR                  5       S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N9= f! , (       d  f       g = f)Ns   abcdefghro  r  r=   r9     2r}  r     f   4r7  s   1b2d3f4hr|  r8  r  s   a2c)r  rL  rT   r;  r   r  r<  rt   rG  r   r  )r?   rQ  r5   rq   s       r   test_interleaved_read_write.BufferedRandomTest.test_interleaved_read_write 
  s   \\+&#c"a  D1  T2l

3  d+  D1	  = # ' \\&!Sc"a  D1  D1	  8 # "! #" '&  #" "!sH   HDG4+HH'BH#H'4
H	>H
H
H$	 H''
H5c                 b   U R                  S5       nU R                  US5       nUR                  S5        U R                  UR	                  S5      S5        UR                  5         U R                  UR                  5       S5        S S S 5        S S S 5        U R                  S5       nU R                  US5       nUR                  S5        U R                  UR	                  5       S5        UR                  5         U R                  UR                  5       S5        S S S 5        S S S 5        U R                  S5       nU R                  US5       nUR                  S5        U R                  UR	                  S5      S S S5        UR                  5         U R                  UR                  5       S5        S S S 5        S S S 5        g ! , (       d  f       GNH= f! , (       d  f       GNR= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N]= f! , (       d  f       g = f)	Nr  rN  r  r=   r9  s   1bcdefs   bcdro  )r  rL  rT   r;  r  r   r  r?   rQ  r5   s      r   test_read1_after_write)BufferedRandomTest.test_read1_after_write
  s~   \\)$aA  T2	  ;	 ! % \\)$aA  F3	  ;	 ! % \\)$aA   bq!16:	  ; ! %$ ! %$ ! %$ ! %$sm   GA#G	G)G><A"G-G>?H A&H8H 	
G	G
G*-
G;	7G>>
H
H	H  
H.c                 6   U R                  S5       nU R                  U5       nUR                  S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       S5        UR                  5         U R                  UR                  5       S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Ns
   ab
cdef
g
r  s   b
r  r  r     
s
   1b
2def
3
)r  rL  rT   r;  r]  r   r  r$  s      r   test_interleaved_readline_write2BufferedRandomTest.test_interleaved_readline_write/
  s    \\*+s  v6  x8  u5	  1AB  ,+ ,+s#   D
CC9(D
9
D	D


DNr#   )r%   r&   r'   r(   r  r  r+  r1  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  D	  s    IJ24	93.6$J-	)
5.	!!"!L(J4.492<,
C O "&r    r  c                   8    \ rS rSr\R
                  rS rS rSr	g)CBufferedRandomTestiC
  c                 X    [         R                  U 5        [        R                  U 5        g rQ   )r  rY  r?  r>   s    r   rY  +CBufferedRandomTest.test_garbage_collectionF
  s    33D933D9r    c                     U R                  [        S5         U R                  U R                  5       SSS5        S S S 5        g ! , (       d  f       g = f)Nr  r(  r  r>   s    r   r  #CBufferedRandomTest.test_args_errorJ
  r  r  r#   N)
r%   r&   r'   r(   r   r  rL  rY  r  r)   r#   r    r   r,  r,  C
  s    			B:6r    r,  c                   ,    \ rS rSr\R
                  rSrg)PyBufferedRandomTestiP
  r#   N)r%   r&   r'   r(   r   r  rL  r)   r#   r    r   r2  r2  P
  r  r    r2  c                   J    \ rS rSrSS jrS rS rS rS rSS jr	S	 r
SrS
rg)StatefulIncrementalDecoderi_
  c                 b    [         R                  R                  X5        U R                  5         g rQ   )codecsIncrementalDecoderrN   reset)r?   rx  s     r   rN   #StatefulIncrementalDecoder.__init__q
  s    !!**48

r    c                     S[        U 5      -  $ )Nz<SID %x>)idr>   s    r   __repr__#StatefulIncrementalDecoder.__repr__u
  s    BtH$$r    c                 >    SU l         SU l        [        5       U l        g r   )r8  or<  r?  r>   s    r   r8   StatefulIncrementalDecoder.resetx
  s    kr    c                 v    U R                   S-  U R                  S-  p![        U R                  5      US-  U-   4$ )Nr=   ro  )r8  r?  r   r?  )r?   r8  r?  s      r   getstate#StatefulIncrementalDecoder.getstate}
  s5    vvz466A:1T[[!1S519,,r    c                 r    Uu  p#[        U5      U l        [        US5      u  pEUS-  US-  sU l        U l        g )Nro  r=   )r<  r?  divmodr8  r?  )r?   r  r?  r   r8  r?  s         r   setstate#StatefulIncrementalDecoder.setstate
  s9    
'b#QAr    Fc                    SnU H  nU R                   S:X  aS  U[        S5      :X  a'  U R                  (       a  X0R                  5       -  nMG  MI  U R                  R	                  U5        Mf  U R                  R	                  U5        [        U R                  5      U R                   :X  d  M  X0R                  5       -  nM     U(       a#  U R                  (       a  X0R                  5       -  nU$ )Nr  r   .)r8  ordr?  process_wordrR   r   )r?   inputfinaloutputr+   s        r   decode!StatefulIncrementalDecoder.decode
  s    Avv{C={{"3"3"55 # KK&&q)""1%t{{#tvv-//11F  T[[''))Fr    c                 2   SnU R                   S   [        S5      :X  a1  [        S[        U R                   SS  =(       d    S5      5      U l        OU R                   S   [        S5      :X  a1  [        S[        U R                   SS  =(       d    S5      5      U l        OkU R                   R                  S5      n[        U5      U R
                  :  a  USU R
                  -  -  nU R
                  (       a  US U R
                   nUS	-  n[        5       U l         U$ )
Nr  r   r8  c   r=   r?  r  -rI  )	r?  rJ  r  intr8  r?  rO  r   r<  )r?   rN  s     r   rK  'StatefulIncrementalDecoder.process_word
  s    ;;q>SX%SQR!5A67DF[[^s3x'SQR!5A67DF[[''0F6{TVV##dff*$vvcMFkr    )r?  r8  r?  N)strictr+  )r%   r&   r'   r(   rN   r<  r8  rB  rF  rO  rK  codecEnabledr)   r#   r    r   r4  r4  _
  s,    $%"
-&"  Lr    r4  c           
          [         R                  (       aE  U S:X  a>  [        R                  " S5      n[        R                  " SUR
                  S S S S [         S9$ g g )Ntest_decoderr/   )r  encoderO  incrementalencoderstreamreaderstreamwriterincrementaldecoder)r4  rW  r6  lookup	CodecInforZ  )r  latin1s     r   lookupTestDecoderrb  
  sR    !..4>3Iy)d#D9	; 	; 4J.r    c                   "    \ rS rSr/ SQrS rSrg)StatefulIncrementalDecoderTesti
  ))rf  Fza.b.c.d.)   oiabcdTabcd.)s   oi...abcd...Trf  )s   i.o6.x.xyz.toolongtofit.Fzx-----.xyz---.toolon.)s
   i.i2.o6xyzTzxy----.z-----.)s   i.o3.i6.abcdefghijklmnopTzabc.ghi.mno.)s;   i.o29.a.b.cde.o15.abcdefghijabcdefghij.i3.a.b.c.d.ei00k.l.mTza----------------------------.b----------------------------.cde--------------------------.abcdefghijabcde.a.b------------..c.------------.d.e------------.k--------------.l--------------.m--------------.c                     U R                    H1  u  pn[        5       nU R                  UR                  X5      U5        M3     [        5       nU R                  UR                  S5      S5        U R                  UR                  SS5      S5        g )Nre  r  r    r=   rf  )
test_casesr4  r;  rO  )r?   rL  eofrN  rY  s        r   rY  +StatefulIncrementalDecoderTest.test_decoder
  st    "&//E*,AQXXe16: #2
 '(),b1#q)73r    r#   N)r%   r&   r'   r(   rh  rY  r)   r#   r    r   rd  rd  
  s    
J6	4r    rd  c                   |   \ 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\R                   " \R$                  R&                  S5      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. r4S/ r5S0 r6S1 r7\8Rr                  \:Rv                  " 5       S2 5       5       r<S3 r=S4 r>S5 r?S6 r@S7 rAS8 rBS9 rCS: rDS; rES< rFS= rGS> rHS? rIS@ rJSA rKSB rLSC rMSD rNSE rOSF rPSG rQSH rRSI rSSJ rTSK rUSL rVSM rWSN rXSO rYSPrZgQ)RTextIOWrapperTesti
  c                    SU l         SR                  S5      U l        [        R                  " [        R
                  5        [        R                  " [        5        U R                  [        R                  [        5        g )Ns   AAA
BBBCCC
DDD
EEE
s   AAA
BBB
CCC
DDD
EEE
r  )testdatarO  
normalizedr   r,  r-  r6  registerrb  rr  
unregisterr>   s    r   r.  TextIOWrapperTest.setUp
  sQ    :6==gF))*)*))+<=r    c                 L    [         R                  " [         R                  5        g rQ   r+  r>   s    r   r2  TextIOWrapperTest.tearDown
  r0  r    c                    U R                  S5      nU R                  US5      nU R                  USS9nUR                  USSS9  U R	                  UR
                  S5        U R	                  UR                  S5        UR                  USS	S
9  U R	                  UR
                  S5        U R	                  UR                  S	5        U R	                  SUR                  5       5        U R                  (       a  [        O[        nU R                  U5         UR                  USS9  S S S 5        U R                  [        5         UR                  USS9  S S S 5        U R                  [        5         UR                  USS9  S S S 5        U R                  U5         UR                  USSS9  S S S 5        [        R                  (       d0  [        R                   R"                  (       d  U R                  (       a/  U R                  [        5         UR                  USSS9  S S S 5        [        R                  (       d0  [        R                   R"                  (       d  U R                  (       a/  U R                  [        5         UR                  USSS9  S S S 5        U R                  [        5         UR                  USSS9  S S S 5        U R                  [        5         UR                  USSS9  S S S 5        U R                  [        5         UR                  USSS9  S S S 5        U R                  [        5         UR                  USSS9  S S S 5        g ! , (       d  f       GN;= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN&= f! , (       d  f       GN	= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N   é

rs  rW  r0   r/   
r  FT)r1   line_buffering   é
r]      zutf-8 r1   rx  zreplace 
 r  )r  ry  r  rN   r;  r1   rx  r]  is_Cr>  r   r=  UnicodeEncodeErrorr   Py_DEBUGr  r  dev_mode)r?   r.   r+   r;  invalid_types        r   r+  "TextIOWrapperTest.test_constructor
  s   LL)4(q73	

1y&
9Y/))51	

1wt
<W-))401::<0$(IIy:|,JJq2J& -12JJq8J, 3z*JJq9J- +|,JJq72J6 -syy11TYY""#56

1wx
@ 7syy11TYY"":.

1w{
C /y)JJq7BJ7 *z*JJq7HJ= +z*JJq7FJ; +z*JJq7GJ< +*) -,22**,, 76 /.))******sx   MM+0M=NN!N31O OO(>O9
M(+
M:=
N
N!
N03
O
O
O%(
O69
Pc                    U R                   R                  U R                   5      nAU R                   R                  U R                   5      nU R                  [        [        U5        U R                  [        [        4SUR                  S5        UR                  U R                  5       SS9  U R                  UR                  S5      S5        g )Nr/  r   rW  r0   r  )r  r0  r=  rv  r  r  r   r  r   rN   r   r;  r?   r;  s     r   r1  $TextIOWrapperTest.test_uninitialized  s    &&t'9'9:&&t'9'9:)T1-
N;? vvq	* 	


4>>#g
6B'r    c                     U R                  5       nU R                  U5      nU R                  [        S5         U R	                  USS9  S S S 5        g ! , (       d  f       g = f)Nzis not a text encodinghexr0   )r  r~  r  LookupErrorr  )r?   r.   r+   s      r   *test_non_text_encoding_codecs_are_rejected<TextIOWrapperTest.test_non_text_encoding_codecs_are_rejected  sP     LLN"##K1IJq51 KJJs   A
A c                    U R                  5       nU R                  U5      nU R                  USS9nU R                  UR	                  5       U5        U R                  USS9nUR                  S5        U R                  UR                  5       5        UR	                  5         U R                  UR                  5       S5        U R                  [        UR                  5        [        U5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  5        U R                  UR                  5        g )Nr  r0   howdys   howdyrV  )r  r~  r  r  r  rT   rn  r  r;  r=  r   r  r1   rx  rx  write_throughr?   r.   r+   r;  s       r   r  TextIOWrapperTest.test_detach%  s   LLN"q73ahhj!$q73	&	
x0*ahh/ 	QW-8,))*)r    c                    U R                  SR                  S5      5      nU R                  U5      nU R                  USS9nU R                  R                  nU R                  [        U5      SU-  5        SUl        U R                  [        U5      SU-  5        SUl        U R                  [        U5      SU-  5        S	Ul        U R                  [        U5      S
U-  5        UR                  R                  5         [        U5        g )NhellorW  r0   z'<(%s\.)?TextIOWrapper encoding='utf-8'>r  z4<(%s\.)?TextIOWrapper name='dummy' encoding='utf-8'>r.   z=<(%s\.)?TextIOWrapper name='dummy' mode='r' encoding='utf-8'>r  z><(%s\.)?TextIOWrapper name=b'dummy' mode='r' encoding='utf-8'>)r  rZ  ry  r  r&   r  r  r  moder?  r  )r?   rQ  r+   r;  modnames        r   r  TextIOWrapperTest.test_repr9  s    ll7>>'23$q73$$//aCgM	OaPSZZ	\aY\cc	eaZ]dd	f 	
Qr    c                 |   U R                  5       nU R                  USS9n[        R                  " USU5         [        R                  " S5         U R                  [        5         [        U5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)NrW  r0   r  r  )r  r  r   r  r  r=  r  r  r?   rQ  r;  s      r   r  %TextIOWrapperTest.test_recursive_reprM  s    llnsW5sFA.0J0J20N""<0Q 1 1O..00 1O0N..s;   B-B&B2B:B-
BB
B*	&B--
B;c                      " S SU R                   5      nU" U R                  5       5      nU R                  UR                  [	        U5      5        g )Nc                       \ rS rSrSrg):TextIOWrapperTest.test_subclass_repr.<locals>.TestSubclassiV  r#   Nr$   r#   r    r   TestSubclassr  V      r    r  )r  r  r  r%   r  )r?   r  r5   s      r   test_subclass_repr$TextIOWrapperTest.test_subclass_reprU  s>    	4-- 	 )l++T!W5r    c                    U R                  5       nU R                  US5      nU R                  USSSS9nUR                  S5        U R	                  UR                  5       S5        UR                  S5        U R	                  UR                  5       S	5        UR                  S
5        U R	                  UR                  5       S5        g )Nrs  rW  
Tr1   r  rx  Xr    zY
Zs   XY
ZzABs   XY
ZAB)r  r~  r  rT   r;  r  r  s       r   test_line_buffering%TextIOWrapperTest.test_line_buffering\  s    LLN4(q7DQUV	s+	x0	|4r    c                    U R                  5       nU R                  US5      nU R                  USSSS9nUR                  S5        U R	                  UR                  5       S5        UR                  SS	9  U R	                  UR                  5       S
5        UR                  S5        U R	                  UR                  5       S5        UR                  S5        U R	                  UR                  5       S5        UR                  SS	9  U R	                  UR                  5       S5        UR                  S5        U R	                  UR                  5       S5        UR                  5         UR                  S S	9  U R	                  UR                  S5        UR                  SS	9  UR                  5         UR                  S S	9  U R	                  UR                  S5        g )Nrs  rW  r  Fr  zAB
Cr    Trx  s   AB
CzDEF
Gs	   AB
CDEF
GHs
   AB
CDEF
GHIJ)r  r~  r  rT   r;  r  reconfigurerx  r  s       r   test_reconfigure_line_buffering1TextIOWrapperTest.test_reconfigure_line_bufferingg  sq   LLN4(q7DQVW	s+	T*x0	~6	~6	U+7	7 	
	T*))51	T*		T*))40r    zutf-8 mode is enabledc                    [        [        R                  5      n S H*  nU[        R                  ;   d  M  [        R                  U	 M,     [        R                  " 5       nU R                  5       n[        R                  " 5          [        R                  " S[        5        U R                  U5      nS S S 5        U R                  WR                  U5        [        R                  R                  5         [        R                  R                  U5        g ! , (       d  f       Nh= f! [        R                  R                  5         [        R                  R                  U5        f = f)N)LC_ALLLANGLC_CTYPEr  )rX  rj  environlocalegetencodingr  r  r  r  EncodingWarningr  r;  r1   clearupdate)r?   old_environkeycurrent_locale_encodingr+   r;  s         r   test_default_encoding'TextIOWrapperTest.test_default_encoding  s    2::&	+ 6"**$

3 6 '-&8&8&:#A((*%%h@&&q) + QZZ)@AJJJJk* +*
 JJJJk*s)   D% AD% -D2$D% 
D"D% %?E$c                    U R                  5       nU R                  USS9nU R                  UR                  S5        [        R
                  " 5          [        R                  " S[        5        U R                  U5      nS S S 5        U R                  UR                  5        [        R                  " UR                  5        g ! , (       d  f       NJ= f)NrW  r0   r  )r  r  r;  r1   r  r  r  r  assertIsNotNoner6  r_  r?   r+   r;  s      r   test_encodingTextIOWrapperTest.test_encoding  s    LLNq73W-$$&!!(O<""1%A ' 	QZZ(ajj!	 '&s   -C
Cc                    U R                  S5      nU R                  USS9nU R                  [        UR                  5        U R                  S5      nU R                  USSS9nU R                  [        UR                  5        U R                  S5      nU R                  USSS9nU R                  UR	                  5       S5        U R                  S5      nU R                  USSS9nU R                  UR	                  5       S	5        g )
Ns   abc

r  r0   rV  r{  r  zabc

replaceu   abc
�
)r  r  r=  UnicodeErrorr   r;  r  s      r   test_encoding_errors_reading.TextIOWrapperTest.test_encoding_errors_reading  s    LL(q73,/LL(q78D,/LL(q78D9-LL(q79E?3r    c                    U R                  5       nU R                  USS9nU R                  [        UR                  S5        U R                  5       nU R                  USSS9nU R                  [        UR                  S5        U R                  5       nU R                  USSSS9nUR	                  S	5        UR                  5         U R                  UR                  5       S
5        U R                  5       nU R                  USSSS9nUR	                  S	5        UR                  5         U R                  UR                  5       S5        g )Nr  r0      ÿrV  r{  r  r  )r1   rx  r  u	   abcÿdef
s   abcdef
r  s   abc?def
)r  r  r=  r  rT   r   r;  r  r  s      r   test_encoding_errors_writing.TextIOWrapperTest.test_encoding_errors_writing  s   LLNq73,8LLNq78D,8LLNq78%)  +			{3LLNq79%)  +			|4r    c           
         / SQnS / SQ/SU/S/ SQ/SSS//S	/ S
Q//nSnU GH;  n[        SR                  U5      R                  U5      5      nS GH  n[        SS5       H  nU H  u  pU R	                  U R                  U5      U5      n
U R                  XUS9nU(       aY  / n UR                  S5      nUS:X  a  OIU R                  [        U5      S5        UR                  XR                  5       -   5        MV  [        U5      n[        X5       H  u  pU R                  X5        M     U R                  [        U5      [        U	5      5        M     M     GM
     GM>     g )N)unix
	windows
zos9last
nonl)r  zwindows
zos9
r  r  r  r  )r  r  z	os9last
r  rw  zunix
windows
zos9last
nonl)zunix
windowsz
os9z	last
nonl)rW  r/   utf-16	utf-16-le	utf-16-beutf-32	utf-32-le	utf-32-be)FTr=   rG  r  r1   r   )r   r  rZ  r<  ry  r  r  r   r;  r   rR   r]  rH   zip)r?   input_linesr  	encodingsr1   r   do_readsr  r  	exp_linesr  textio	got_linesc2got_lineexp_lines                   r   test_newlinesTextIOWrapperTest.test_newlines  sg   L HJ+FH+->@BBD

	 "H-44X>?D)$Q|G.3* $ 3 3DLL4F P!%!3!3E;C "4 "E#(*I"&%+[[^#%8$) $ 0 0R! < ) 0 0oo6G1G H #' )-VI25i2K.H ,,X@ 3L((YYH# /4  , * "r    c                     SnUR                  SS5      R                  SS5      nS UR                  S5      R                  SS94SUR                  S5      R                  SS94S	/ S
Q4S/ SQ4S/ SQ44 H  u  p4U R                  U5      nU R	                  USUS9nU R                  UR                  5       U5        UR                  S5        U R                  UR                  5       SR                  U5      5        M     g )Ns   AAA
BB B
CCCDDDEEE
FFF
GGGs   
r(     r  T)keependsr  r  )zAAA
zBB B
zCCCDDDEEE
FFF
GGGrw  )zAAA
BB B
CCCDDDEEE
r  r  r  )zAAA
BB B
CCCzDDDzEEEz
FFFz
GGGr  r   )
r  rO  
splitlinesr  r  r;  r  ri   r   r  )r?   rn  ro  r  r  rq   txts          r   test_newlines_input%TextIOWrapperTest.test_newlines_input  s    ?%%gu5==eUK
:$$W-88$8GH)44d4CDPQJKQR"G ,,x(C$$S7G$LCS]]_h7HHQKSXXZ):;"r    c                    SSSSS.nS U[         R                     4/[        UR                  5       5      -   nU H  u  p4U R	                  5       nU R                  USUS9nUR                  S5        UR                  S5        UR                  S	5        UR                  5         U R                  UR                  S
5        U R                  UR                  5       U5        M     g )Ns   AAA
BBB
CCC
XY
Zs   AAABBBCCCXYZs   AAA
BBB
CCC
XY
Z)r  r  r  rw  r  r  zAAA
BzBB
CCC
zXY
ZF)rj  linesepsortedrW  r  r  rT   r   r;  r   r  )r?   testdictr  r  r  rq   r  s          r   test_newlines_output&TextIOWrapperTest.test_newlines_output  s    +--7	 ,-.8H1II!&G,,.C$$S7G$LCIIhIIk"IIk"IIKSZZ/S\\^X6 "'r    c                    ^^ / mU R                   m " UU4S jST5      nU" 5       nU R                  USS9nUR                  S5        A[        R                  " 5         U R                  S/T5        g )Nc                   $   > \ rS rSrU U4S jrSrg)4TextIOWrapperTest.test_destructor.<locals>.MyBytesIOi  c                 f   > TR                  U R                  5       5        TR                  U 5        g rQ   )rR   r  r   )r?   r#  r  s    r   r   :TextIOWrapperTest.test_destructor.<locals>.MyBytesIO.close  s!    )

4 r    r#   Nr8  )r#  r  s   r   	MyBytesIOr    s    ! !r    r  r  r0   r  r|  )r  r  rT   r   r  r;  )r?   r  r+   r;  r#  r  s       @@r   r  !TextIOWrapperTest.test_destructor  sl    ||	! 	! 	! Kq73	&1%r    c                    ^ / m " U4S jSU R                   5      nU R                  5       nU" USS9nA[        R                  " 5         U R	                  T/ SQ5        g )Nc                   H   >^  \ rS rSrU U4S jrU U4S jrU U4S jrSrU =r$ )<TextIOWrapperTest.test_override_destructor.<locals>.MyTextIOi(  c                 l   > TR                  S5         [        TU ]  nU" 5         g ! [         a     g f = fr   r  r  s     r   r  DTextIOWrapperTest.test_override_destructor.<locals>.MyTextIO.__del__)  r  r  c                 D   > TR                  S5        [        TU ]	  5         g r   r   r  s    r   r   BTextIOWrapperTest.test_override_destructor.<locals>.MyTextIO.close1  r  r    c                 D   > TR                  S5        [        TU ]	  5         g r  r  r  s    r   r   BTextIOWrapperTest.test_override_destructor.<locals>.MyTextIO.flush4  r  r    r#   r  r	  s   @r   MyTextIOr  (  r  r    r  r  r0   r  )r  r  r   r  r;  )r?   r  r+   r;  r  s       @r   r  *TextIOWrapperTest.test_override_destructor&  sR    	 t)) 	  LLNQ)+r    c                 h   U R                  5       n[        R                  " 5        nU R                  [        5         U R                  USS9R                    S S S 5        U R                  UR                  R                  [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)NrW  r0   )r   r   r  r=  r  r  r  r;  r  r$  r   r  s      r   r  /TextIOWrapperTest.test_error_through_destructor=  s     ##%//1R"">2""57";AA 3 R]]33W=	 2122 21s"   B#B2B#
B 	B##
B1c                 j   S GH  nS GH  nU R                  [        R                  SUS9nXl        U R	                  UR                  S5      S5        UR                  5         U R                  [        R                  SUS9nXl        U R	                  UR                  5       S5        U R	                  UR                  5       S5        UR                  5       nU R	                  UR                  S5      S5        U R	                  UR                  S 5      S5        UR                  S5        U R	                  UR                  S	5      S
5        U R	                  UR                  S5      S5        U R	                  UR                  S5      S5        U R	                  UR                  5       S5        U R	                  UR                  5       U5        U R	                  UR                  S5      S5        U R	                  UR                  SS	5      U5        U R	                  UR                  S5      S5        U R	                  UR                  U5      U5        U R	                  UR                  5       S5        UR                  S5      (       a  U R                  X25        UR                  5         GM     GM     g )N)r=   r   rN  r  r   r  r)            !   ?   r"   A   )r  r/   rW  r   r0   r  rN  r+r   r   r  r=   r  r  defutf)r2   r   r-  r4   r;  rT   r   rm   r   ri   r  multi_line_test)r?   	chunksizeencr5   cookies        r   test_basic_ioTextIOWrapperTest.test_basic_ioI  s   LI2IIi..sIC )  3	IIi..sIC )  1-  51  A.  u5q	  D1  C0  B/  2.  62  A.  1v6  3  8  51>>%((((0	3 3 Mr    c           	         UR                  S5        UR                  5         Sn/ nS H|  n/ n[        U5       H"  nUR                  X7[	        U5      -     5        M$     SR                  U5      S-   nUR                  UR                  5       U45        UR                  U5        M~     UR                  S5        / n	 UR                  5       n
UR                  5       nU(       d  OU	R                  X45        M<  U R                  X5        g )Nr   u	   sÿ࿿￿)r   r=   r   rN  r  r      r  r  r	  >   r
  r"   r  rs  r  r  )
ri   rw   r<  rR   r   r  rm   rT   r]  r;  )r?   r5   r  samplewlinesr  charsr8  r  rlinesr   s              r   r  !TextIOWrapperTest.multi_line_testf  s    	q		

$LDE4[VFO45 !775>D(DMM1668T*+GGDM M 	
q	&&(C::<DMM3+&  	(r    c                 @   U R                  [        R                  SSS9nUR                  5       nUR	                  S5        UR                  5       nUR	                  S5        UR                  5       nUR                  S5        U R                  UR                  5       U5        U R                  UR                  5       S5        U R                  UR                  5       U5        U R                  UR                  5       S5        U R                  UR                  5       U5        UR                  S5        U H5  nU R                  US5        U R                  [        UR                  5        M7     U R                  UR                  5       U5        UR                  5         g )Nr   rW  r0   u   ÿ
r   )r2   r   r-  rm   rT   ri   r;  r]  r=  r   r   )r?   r5   p0p1p2r  s         r   test_tellingTextIOWrapperTest.test_telling|  s(   IIi&&wI?VVX	VVX	VVX	q	2&x02&x02&	q	DT8,gqvv.  	2&		r    c                    [        5       nUS-
  nSU-  n[        UR                  S5      5      nU R                  [	        U5      [	        U5      5        Sn[        UR                  S5      5      nXF-   nU R                  [        R                  S5       nUR                  US-  5        S S S 5        U R                  [        R                  SSS9 nUR                  U5      n	U R                  U	[        US5      5        U R                  UR                  5       U5        U R                  UR                  5       U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nr   r  rW     袈
rX  r.   r0   r  )r6   r   rZ  r;  r   r2   r   r-  rT   r   r  rm   r]  )
r?   
chunk_sizeprefix_sizeu_prefixprefixu_suffixsuffixr  r5   r  s
             r   test_seekingTextIOWrapperTest.test_seeking  s   (*
 1n$xw/0XF4xw/0YYy''.!GGDFO /YYy''wY?1{#AQFG 45QVVX{3QZZ\84	 @? /.??s   EA.E
E
E%c                 v   SnU R                  [        R                  S5       nUR                  U5        S S S 5        U R                  [        R                  SSS9 nUR                    SUl        UR                  5         UR                  5         S S S 5        g ! , (       d  f       Nj= f! , (       d  f       g = f)Ns   ࿿
rX  r.   rW  r0   r   )r2   r   r-  rT   r4   r]  rm   )r?   r   r5   s      r   test_seeking_too"TextIOWrapperTest.test_seeking_too  s     YYy''.!GGDM /YYy''wY?1MMAMJJLFFH	 @? /.??s   B4B*
B'*
B8c                 4  ^ ^ SmSUU 4S jjnS[         l         [        R                   H  u  n  nU" U5        M     [        R                   H-  u  n  nT[	        U5      S-  -
  nSU-  nUS-  nU" XR-   U5        M/     S[         l        g ! S[         l        f = f)N   r   c           	        > TR                  [        R                  S5      nUR                  U 5        UR	                  5         TR                  [        R                  SS9nTUl        UR                  5       nUR	                  5         [        U[        U5      S-   5       H  nSS[        U5      U-
  4 H  nTR                  [        R                  SS9nTR                  UR                  U5      US U 5        UR                  5       nTR                  UR                  U5      X4XE-    5        UR                  U5        TR                  UR                  5       X4S  5        UR	                  5         M     M     g )NrX  rY  r0   r=   r   )r2   r   r-  rT   r   r4   r   r<  r   r;  rm   ri   )	r   min_posr5   decodedr8  r  r  
CHUNK_SIZEr?   s	          r   test_seek_and_tell_with_dataJTextIOWrapperTest.test_seek_and_tell.<locals>.test_seek_and_tell_with_data  s$    		)**D1AGGDMGGI		)**^	DA&AMffhGGGI7CL1$45QGq 01A		)"2"2^	LA$$QVVAY<VVXF$$QVVAY!%0@AFF6N$$QVVXwr{;GGI 2 6r    r=   r      .r"  )r4  rW  rd  rh  r   )r?   r6  rL  r  offsetr(  r3  r5  s   `      @r   r  $TextIOWrapperTest.test_seek_and_tell  s     
	 	, 34"/	8=HHq!,U3  I  >HHq!#c%j!m3f (,V^WE  I 78&3a&3s   A$B
 
Bc                 D   U R                  [        R                  SSS9nUR                  S5        UR	                  5         U R                  [        R                  SSS9nU R                  UR                  5       S5        UR                  5       nU R                  UR                  5       S5        UR                  5       nUR                  U5        U R                  UR                  5       S5        U R                  UR                  5       U5        UR	                  5         g )NrV  euc_jpr0   u
   AB
うえ
r.   zAB
u   うえ
)	r2   r   r-  rT   r   r;  r]  rm   ri   )r?   r5   r  r  s       r   test_multibyte_seek_and_tell.TextIOWrapperTest.test_multibyte_seek_and_tell  s    IIi&&hI?	$%		IIi&&hI?v.VVX'78VVX	r
'782&		r    c                    U R                  [        R                  SSS9nUR                  S5        UR	                  5       nUR                  S5        UR                  U5        UR                  S5        UR                  5         U R                  [        R                  SSS9nU R                  UR                  5       S5        UR                  5         g )	NrV  euc_jis_2004r0   u   æ̀   æu   ̀r.   u   æ̀̀)	r2   r   r-  rT   rm   ri   r   r;  r]  )r?   r5   r  s      r   test_seek_with_encoder_state.TextIOWrapperTest.test_seek_with_encoder_state  s    IIi&&nIE	VVX		r
			IIi&&nIE';<		r    c                    SnSnU H  nU R                  5       nU R                  XCS9nUR                  U5        UR                  U5        UR                  S5        U R	                  UR                  5       US-  5        UR                  S5        U R	                  UR                  5       US-  5        U R	                  UR                  5       US-  R                  U5      5        M     g )N
1234567890)r  r  r  r  r  r  r0   r   r   )r  r  rT   ri   r;  r   r  rZ  )r?   r   r  r1   rq   r5   s         r   test_encoded_writes%TextIOWrapperTest.test_encoded_writes  s     H,,.C""3":AGGDMGGDMFF1IQVVXtax0FF1IQVVXtax0S\\^dQh->->x-HI r    c                      " S SU R                   5      nU R                  U" 5       SS9nU R                  [        UR                  5        g )Nc                       \ rS rSrS rSrg)5TextIOWrapperTest.test_unreadable.<locals>.UnReadablei  c                     gr   r#   r>   s    r   ra   >TextIOWrapperTest.test_unreadable.<locals>.UnReadable.readable  rZ  r    r#   Nr[  r#   r    r   
UnReadablerJ    r]  r    rM  rW  r0   )r  r  r=  r   r   )r?   rM  r  s      r   test_unreadable!TextIOWrapperTest.test_unreadable  s?    	 	    @'388,r    c                     U R                  U R                  S5      SS9nSn UR                  S5      nU(       d  OX#-  nM  U R                  US5        g )Ns   AA
BBrW  r0   r  r=   zAA
BBr  r  r   r;  r?   r  readsr  s       r   test_read_one_by_one&TextIOWrapperTest.test_read_one_by_one  sY      k!:W MAJE	 
 	)r    c                 V   U R                  U R                  S5      SS9nU R                  UR                  5       / SQ5        UR	                  S5        U R                  UR                  S 5      / SQ5        UR	                  S5        U R                  UR                  S5      SS/5        g )	Ns   AA
BB
CCrW  r0   )AA
BB
CCr   r   rW  rX  )r  r  r;  r  ri   r?   r  s     r   rZ   TextIOWrapperTest.test_readlines  s      m!<w O*@At,.DEq)FF+;<r    c                     U R                  U R                  S5      SS9nSn UR                  S5      nU(       d  OX#-  nM  U R                  US5        g )Ns   AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BrW  r0   r  r1  zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BrQ  rR  s       r   test_read_by_chunk$TextIOWrapperTest.test_read_by_chunk%  sZ      .C!Dw WAJE	 
 	.r    c                     / SQnU R                  5       nU R                  USS9nUR                  U5        UR                  5         U R	                  UR                  5       S5        g N)r  cdefrW  r0   r  )r  r  r^  r   r;  r  r?   r  rq   r  s       r   r  !TextIOWrapperTest.test_writelines0  sR    lln  w 7q		3r    c                     [        / SQ5      nU R                  5       nU R                  USS9nUR                  U5        UR	                  5         U R                  UR                  5       S5        g r`  )r   r  r  r^  r   r;  r  rc  s       r   r  *TextIOWrapperTest.test_writelines_userlist8  sX    '(lln  w 7q		3r    c                 
   U R                  U R                  5       SS9nU R                  [        UR                  / SQ5        U R                  [        UR                  S 5        U R                  [        UR                  S5        g )NrW  r0   r  r|  )r  r  r=  r>  r^  rZ  s     r   r  'TextIOWrapperTest.test_writelines_error@  s_      ' B)S^^Y?)S^^T:)S^^V<r    c                     U R                  U R                  U R                  5      SS9nSn UR                  S5      nU(       d  OX#-  nM  U R	                  X R
                  5        g )Nr  r0   r  r=   )r  r  rn  r   r;  ro  rR  s       r   test_issue1395_1"TextIOWrapperTest.test_issue1395_1F  sa      dmm!<w O AJE	 
 	0r    c                     U R                  U R                  U R                  5      SS9nSUl        Sn UR	                  S5      nU(       d  OX#-  nM  U R                  X R                  5        g )Nr  r0   r  r  r  r  rn  r4   r   r;  ro  rR  s       r   test_issue1395_2"TextIOWrapperTest.test_issue1395_2R  sf      dmm!<w OAJE	 
 	0r    c                 N   U R                  U R                  U R                  5      SS9nSUl        UR	                  S5      nX!R	                  S5      -  nX!R                  5       -  nX!R                  5       -  nX!R                  5       -  nU R                  X R                  5        g Nr  r0   r  )r  r  rn  r4   r   r]  r;  ro  r?   r  rS  s      r   test_issue1395_3"TextIOWrapperTest.test_issue1395_3^  s      dmm!<w O!0r    c                     U R                  U R                  U R                  5      SS9nSUl        UR	                  S5      nX!R	                  5       -  nU R                  X R                  5        g rq  rm  rr  s      r   test_issue1395_4"TextIOWrapperTest.test_issue1395_4i  sX      dmm!<w O0r    c                 ,   U R                  U R                  U R                  5      SS9nSUl        UR	                  S5      nUR                  5       nUR                  S5        UR                  U5        U R                  UR	                  S5      S5        g )Nr  r0   r  r   zBBB
)r  r  rn  r4   r   rm   ri   r;  )r?   r  rS  r   s       r   test_issue1395_5"TextIOWrapperTest.test_issue1395_5q  sq      dmm!<w Ohhj!g.r    c                     U R                  U R                  5      nU R                  USS9nU R                  UR	                  5       UR	                  5       5        g Nr  r0   )r  rn  r  r;  rd   )r?   r?  r  s      r   test_issue2282 TextIOWrapperTest.test_issue2282{  sF    dmm,  ' :*CLLN;r    c                    [         R                  nS H  nU R                  USUS9 nUR                  S5        UR	                  5       nS S S 5        U R                  US5       nU R                  UR                  5       SR                  U5      5        S S S 5        U R                  USUS9 nUR                  S5        S S S 5        U R                  US5       nU R                  UR                  5       SR                  U5      5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       GME  = f)	N	utf-8-sigr  r  rV  r0   aaar[  r  xxxaaaxxx)r   r-  r2   rT   rm   r;  r   rZ  r?   filenamecharsetr5   r   s        r   test_append_bom!TextIOWrapperTest.test_append_bom  s    ##8G8S7;qffh < 8T*a  5<<+@A + 8S7;q <8T*a  8??7+CD +* 9;; +* <;**s/   "D#0D&,D70E
D#	&
D4	7
E	
E	c                 f   [         R                  nS H  nU R                  USUS9 nUR                  S5        UR	                  5       nS S S 5        U R                  USUS9 nUR                  W5        UR                  S5        UR                  S5        UR                  S5        S S S 5        U R                  US	5       nU R                  UR                  5       S
R                  U5      5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       Nn= f! , (       d  f       GM  = f)Nr  rV  r0   r  r  zzzr   bbbr[  bbbzzz)	r   r-  r2   rT   rm   ri   r;  r   rZ  r  s        r   test_seek_bomTextIOWrapperTest.test_seek_bom  s    ##8G8S7;qffh < 8TG<sq		 =
 8T*a  8??7+CD +* 9;; =<
 +*s$   "C>"AD0D >
D	
D	 
D0	c                 :   [         R                  nS H  nU R                  USUS9 nUR                  S5        S S S 5        U R                  USUS9 nUR	                  S5        UR	                  SU R
                  5        UR                  S5        S S S 5        U R                  US5       nU R                  UR                  5       S	R                  U5      5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       Nn= f! , (       d  f       GM  = f)
Nr  rV  r0   r  r  r   r  r[  r  )	r   r-  r2   rT   ri   r`  r;  r   rZ  )r?   r  r  r5   s       r   test_seek_append_bom&TextIOWrapperTest.test_seek_append_bom  s    ##8G8S7;q <8S7;qq	q$--( < 8T*a  8??7+CD +* 9;;;; +*s#   C(?C9+0D
(
C6	9
D	

D	c                 Z   U R                  [        R                  SSS9 nU R                  UR                  S5        S S S 5        U R                  [        R                  SSSS9 nU R                  UR                  S5        S S S 5        g ! , (       d  f       NT= f! , (       d  f       g = f)NrV  rW  r0   rV  r  r{  )r2   r   r-  r;  rx  rR  s     r   test_errors_property&TextIOWrapperTest.test_errors_property  s    YYy''wY?1QXXx0 @YYy''wyYQUVQXXy1 RQ @?QQs   B%B
B
B*c           	        ^^ [         R                  " 5       mU R                  [        R                  SSSS9 mUU4S jn[        S5       Vs/ s H  n[         R                  " X4S9PM     nn[        R                  " UTR                  5         [        R                  " S5        S S S 5        S S S 5        U R                  [        R                  SS	9 mTR                  5       n[        S5       H'  nU R                  UR                  S
U-  5      S5        M)     S S S 5        g s  snf ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NrV  rW  r=   r  c                 R   > SU -  nTR                  5         TR                  U5        g )NThread%03d
)r  rT   )rs   texteventr5   s     r   run1TextIOWrapperTest.test_threads_write.<locals>.run  s!    %)

r    rD  rp  r|  r0   r  )r   r   r2   r   r-  r<  rs  r   r#  r   r   r   r   r;  r   )r?   r  r  r  contentrs   r  r5   s         @@r   test_threads_write$TextIOWrapperTest.test_threads_write  s
    !YYy''w!YLPQ
 !&b	+ )1 !''s> )  +!//C

4  D M YYy'''Y:affhG2Y  ~/A!BAF  ;:	+CC ML ;:sB   D:D$,#D:D)&D:AE$D:)
D7	3D::
E
Ec                   ^^ U R                  U R                  U R                  5      SS9m/ mUU4S jnUTl        U R	                  [
        TR                  5        U R                  TR                  5        U R                  TR                  R                  5        U R                  T5        U R                  TS   5        U R                  TS   5        S Tl        g )Nr  r0   c                  b   > TR                   TR                  R                   /T S S & [        5       erQ   )r   r?  r   )r   r  s   r   rg  >TextIOWrapperTest.test_flush_error_on_close.<locals>.bad_flush  s&    SZZ%6%67F1I)Or    r   r=   c                      g rQ   r#   r#   r    r   rj  =TextIOWrapperTest.test_flush_error_on_close.<locals>.<lambda>  r  r    )r  r  rn  r   r=  r   r   rm  r   r?  rn  )r?   rg  r   r  s     @@r   rv  +TextIOWrapperTest.test_flush_error_on_close  s       dmm!<w O	 	'399-

#

))*## 	r    c                 R   U R                  U R                  5      nS nS nX1l        U R                  USS9nX$l        U R                  [        5       nUR                  5         S S S 5        U R                  WR                  R                  S5        U R                  UR                  R                  [        5        U R                  UR                  R                  R                  S5        U R                  UR                  5        S Ul        S Ul        g ! , (       d  f       N= f)	Nc                      [        S5      er  r  r#   r    r   rg  >TextIOWrapperTest.test_close_error_on_close.<locals>.bad_flush  r  r    c                      [        S5      er  r  r#   r    r   r  >TextIOWrapperTest.test_close_error_on_close.<locals>.bad_close  r  r    r  r0   r  r  c                      g rQ   r#   r#   r    r   rj  =TextIOWrapperTest.test_close_error_on_close.<locals>.<lambda>  r  r    c                      g rQ   r#   r#   r    r   rj  r    r  r    )r  rn  r   r  r   r=  r   r;  r  r   r  r  rn  r   r?   r?  rg  r  r  r  s         r   r  +TextIOWrapperTest.test_close_error_on_close  s    dmm,	#	#   ' :	w'3IIK (++Z8cmm77A2277D$ $ 	 ('s   D
D&c                 N   U R                  U R                  5      nS nS nX1l        U R                  USS9nX$l        U R                  [        5       nUR                  5         S S S 5        U R                  S[        WR                  5      5        U R                  UR                  R                  [        5        U R                  S[        UR                  R                  5      5        U R                  UR                  5        S Ul        S Ul        g ! , (       d  f       N= f)	Nc                      [         erQ   r  r#   r    r   rg  LTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.bad_flush  r  r    c                      [         erQ   r  r#   r    r   r  LTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.bad_close  r  r    r  r0   r  r  c                      g rQ   r#   r#   r    r   rj  KTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.<lambda>  r  r    c                      g rQ   r#   r#   r    r   rj  r    r  r    )r  rn  r   r  r   r=  r  r  r  r  r  r  rn  r   r  s         r   r  9TextIOWrapperTest.test_nonnormalized_close_error_on_close  s    dmm,	%	%   ' :	y)SIIK **C,>?cmm77C*C0I0I,JK$ $ 	 *)s   D
D$c                     U R                  U R                  U R                  5      SS9nUR                  5         UR                  5         UR                  5         U R	                  [
        UR                  5        g r|  )r  r  rn  r   r=  r   r   rZ  s     r   ry  "TextIOWrapperTest.test_multi_close  sS      dmm!<w O						*cii0r    c                     U R                  U R                  U R                  5      SS9nU R                  U R                  UR
                  5        U R                  U R                  UR                  S5        g )NrW  r0   r   )r  r   rn  r=  r   rm   ri   rZ  s     r   r  !TextIOWrapperTest.test_unseekable  s]      !6!6t}}!EPW X$33SXX>$33SXXqAr    c                     U R                  U R                  U R                  5      SS9nU R                  U R                  5      nU R                  [        5         X!l        S S S 5        g ! , (       d  f       g = fr|  )r  r  rn  r=  r  r?  )r?   r  rq   s      r   r  *TextIOWrapperTest.test_readonly_attributes  sU      dmm!<w Oll4==)~.J /..s   A**
A8c                    U R                  / SQ5      nU R                  USSS9nU R                  UR                  S5      S5        U R                  UR	                  5       S5        U R                  [        U5      SS	/5        g )
Nr|  r  s   ghi
jkl
opq
r  r  r  r  abcdzefghi
zjkl
zopq
)r   r  r;  r   r]  rH   r?   rQ  r  s      r   
test_rawioTextIOWrapperTest.test_rawio  sq     nnAB  w E!f-3cWg$67r    c                 
   U R                  / SQ5      nU R                  USSSS9nUR                  S5        UR                  S5        UR                  S5        U R                  S	R	                  UR
                  5      S
5        g )Nr  r  r  T)r1   r  r  1z23
45r    s   123
45)r   r  rT   r;  r  rJ   r  s      r   test_rawio_write_through*TextIOWrapperTest.test_rawio_write_through  sp    nnAB  w/3 ! 5		#		'		##"2"23Z@r    c                   ^^ / / smm " UU4S jSU R                   5      nU R                  5       nSnU" U[        U5      S-  5      nU R                  USSS9nUR	                  S5      nUR                  U5        U R                  T5        U R                  T5        U R                  UR                  5       S5        / mUR                  US	-  5        U R                  T5        U R                  UR                  5       US
-  5        g )Nc                   :   >^  \ rS rSrU U4S jrU U4S jrSrU =r$ )BTextIOWrapperTest.test_bufio_write_through.<locals>.BufferedWriteri*  c                 F   > TR                  S5        [        TU ]  " U0 UD6$ rW   r  )r?   r   ro  r   flush_calleds      r   r   HTextIOWrapperTest.test_bufio_write_through.<locals>.BufferedWriter.flush+  %    ##D)w}d5f55r    c                 F   > TR                  S5        [        TU ]  " U0 UD6$ rW   )rR   r   rT   )r?   r   ro  r   write_calleds      r   rT   HTextIOWrapperTest.test_bufio_write_through.<locals>.BufferedWriter.write.  r  r    r#   )r%   r&   r'   r(   r   rT   r)   r   )r   r  r  s   @r   r~  r  *  s    66 6r    r~  r8  r   r  T)r1   r  r    rG  r  )
r~  r  r   r  rO  rT   rn  rm  r;  r  )	r?   r~  r  r   r  r  r  r  r  s	          @@r   test_bufio_write_through*TextIOWrapperTest.test_bufio_write_through&  s     &("l	6 	6T00 	6 uc$ik2##EG26 $ 8 {{7#T 	&%)3/TBY%)4"95r    c                    U R                  / 5      nU R                  USSS9nUR                  S5        UR                  SS9  U R	                  UR
                  S5        U R	                  SR                  UR                  5      S5        UR                  S	5        U R	                  SR                  UR                  5      S
5        UR                  SS9  U R	                  UR
                  S5        UR                  S5        UR                  5         U R	                  SR                  UR                  5      S5        UR                  5         UR                  S S9  U R	                  UR
                  S5        UR                  SS9  UR                  5         UR                  S S9  U R	                  UR
                  S5        g )Nr  r  r  r  Tr  r    r  23r  F45r  )	r   r  rT   r  r;  r  r  rJ   r   r  s      r   test_reconfigure_write_through0TextIOWrapperTest.test_reconfigure_write_throughF  sV   nnR sWdC		D)$/#"2"23T:	#"2"23V<	E*%0			#"2"23X>		D)%0	D)		D)$/r    c                    U R                  U R                  S5      SS9nU R                  [        UR                  S5        U R                  U R                  S5      SS9nU R                  [        UR
                  5        U R                  U R                  S5      SS9nU R                  [        UR                  5        g )Nr  rW  r0   r=   )r  r  r=  r>  r   r]  r  s     r   test_read_nonbytes$TextIOWrapperTest.test_read_nonbytes]  s     t}}S1GD)QVVQ/t}}S1GD)QZZ0t}}S1GD)QVV,r    c                    [         R                  " S5      n[        R                  " USS5         U R	                  U R                  S5      SS9nS S S 5        U R                  [        WR                  S5        g ! , (       d  f       N0= f)Nrot13_is_text_encodingT   foor0   rN  )	r6  r_  r   r  r  r  r=  r>  rT   )r?   r  r;  s      r   test_illegal_encoder&TextIOWrapperTest.test_illegal_encoderg  si     g&u&94@""4<<#7'"JA A)QWWe4 A@s    A99
Bc                   ^ ^ U 4S jmT" 5       nT R                  [        UR                  S5        T" 5       nT R                  [        UR                  5        T" 5       nT R                  [        UR                  5        U4S jnU" S5      nT R                  [        UR                  S5        U" S5      nT R                  [        UR                  S5        U" S5      nT R                  [        UR                  S5        g )Nc                     > [         R                  " S5      n SU l         TR                  TR	                  S5      SSS9nSU l        U$ ! SU l        f = f)NquopriTs   aaaaaar  r  F)r6  r_  r  r  r  )r  r;  r?   s     r   _make_illegal_wrapperETextIOWrapperTest.test_illegal_decoder.<locals>._make_illegal_wrapperr  s_    ]]8,F'+F$1&&t||I'>/3h ' H ,1(H ,1(s    A	 		Ar=   c                    >^ ^  " U 4S jS5      mU4S jn[         R                  " S5      n[        R                  " USU5         T" 5       sS S S 5        $ ! , (       d  f       g = f)Nc                   "   > \ rS rSrU 4S jrSrg)^TextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper.<locals>.BadDecoderi  c                    > T$ rQ   r#   )r?   getstate_ret_vals    r   rB  gTextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper.<locals>.BadDecoder.getstate  s	    ++r    r#   N)r%   r&   r'   r(   rB  r)   )r  s   r   
BadDecoderr    s    , ,r    r  c                    > T" 5       $ rQ   r#   )r  r  s    r   _get_bad_decoderdTextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper.<locals>._get_bad_decoder  s    !|#r    r  r^  )r6  r_  r   r  )r  r  r  r  r  s   `  @r   _make_very_illegal_wrapperJTextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper  sL    , ,$]]8,F""6+?#35,.5 5 5s   A
A$r]   r#   )r=   r   )r=  r>  r   r]  )r?   r;  r  r  s   `  @r   test_illegal_decoder&TextIOWrapperTest.test_illegal_decodero  s    	 "#)QVVQ/!#)QZZ0!#)QVV,
		/ 'r*)QVVR0&r*)QVVR0&v.)QVVR0r    c                 d    U R                   R                  nSR                  X!S9n[        SU5      $ )NaO  if 1:
            import codecs
            import {iomod} as io

            # Avoid looking up codecs at shutdown
            codecs.lookup('utf-8')

            class C:
                def __del__(self):
                    io.TextIOWrapper(io.BytesIO(), **{kwargs})
                    print("ok")
            c = C()
            )iomodro  -c)r   r%   r^  r   )r?   ro  r  codes       r   _check_create_at_shutdown+TextIOWrapperTest._check_create_at_shutdown  s:        U2 	  d++r    c                     U R                  5       u  pnU(       a+  U R                  U R                  UR                  5       5        g U R	                  SUR                  5       R                  5       5        g )Nok)r  r  shutdown_errorrO  r;  stripr?   rcoutr  s       r   (test_create_at_shutdown_without_encoding:TextIOWrapperTest.test_create_at_shutdown_without_encoding  sR    557 MM$--szz|<T3::<#5#5#78r    c                     U R                  SSS9u  pnU R                  U5        U R                  SUR                  5       R	                  5       5        g )NrW  rV  r{  r  )r  rn  r;  rO  r  r  s       r   %test_create_at_shutdown_with_encoding7TextIOWrapperTest.test_create_at_shutdown_with_encoding  sN    55w=E 6 Gszz|1134r    c                     [        S5      nU R                  US5      n[        UR                  5       5      R	                  5       nU R                  UR                  S5      UR                  S5      5        g )Ns   Just some random string
rW  r   )MemviewBytesIOr  _to_memoryviewr  r=  r;  r   rO  )r?   r.   r;  	bytes_vals       r   test_read_byteslike%TextIOWrapperTest.test_read_byteslike  s]    78q'*
 $AJJL199;	i&6&6w&?@r    c                      " S S[         5      n[        S5       H  n U R                  U" 5       SS9  M     S Ul        U R                  U" 5       SS9ng ! [         a     MH  f = f)Nc                   &    \ rS rSrS rS rS rSrg),TextIOWrapperTest.test_issue22849.<locals>.Fi  c                     grW   r#   r>   s    r   ra   5TextIOWrapperTest.test_issue22849.<locals>.F.readable      tr    c                     grW   r#   r>   s    r   rX   5TextIOWrapperTest.test_issue22849.<locals>.F.writable  r  r    c                     grW   r#   r>   s    r   rd   5TextIOWrapperTest.test_issue22849.<locals>.F.seekable  r  r    r#   N)r%   r&   r'   r(   ra   rX   rd   r)   r#   r    r   Fr    s    +++r    r  rG  rW  r0   c                     grG   r#   r  s    r   rj  3TextIOWrapperTest.test_issue22849.<locals>.<lambda>  s    1r    )objectr<  r  rv  rm   )r?   r  r8  r;  s       r   test_issue22849!TextIOWrapperTest.test_issue22849  sl    	, 	,
 rA""13"9  qsW5	  s   A
A$#A$c                 b    U R                  U R                  S5      5      nUR                  SS9  g )N   testr  r0   )r  r  r  )r?   wrappers     r   test_reconfigure_locale)TextIOWrapperTest.test_reconfigure_locale  s,    $$T\\'%:;X.r    c                    SR                  S5      SR                  S5      -   nU R                  U5      nU R                  USSS9nU R                  UR	                  5       S5        U R                  U R                  5         UR                  SS9  S S S 5        U R                  U R                  5         UR                  S S	9  S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)
N   abcé
ra     déf
utf8r  r  rW  r0   r  )rZ  r  r  r;  r]  r=  r   r  )r?   r   rQ  r  s       r   test_reconfigure_encoding_read0TextIOWrapperTest.test_reconfigure_encoding_read  s     !!(+j.?.?.GGll4   x F5t889OOWO- :t889OODO) :9 :999s   C4C
C
C,c                    U R                  5       nU R                  USSS9nUR                  S5        UR                  SS9  UR                  S5        UR	                  5         U R                  UR                  5       S5        g )	Nr  r  r  foo
r  r0   ry  s   foo
é
)r  r  rT   r  r   r;  r  r  s      r    test_reconfigure_write_fromascii2TextIOWrapperTest.test_reconfigure_write_fromascii  sl     lln  w E		'-		(		);<r    c                 L   U R                  5       nU R                  USSS9nUR                  S5        UR                  SS9  U R	                  UR                  5       S5        UR                  S5        UR                  5         U R	                  UR                  5       S	5        U R                  5       nU R                  US
SS9nUR                  S5        UR                  SS9  UR                  S5        UR                  5         U R	                  UR                  5       S5        g )Nra  r  r  r'  rW  r0   s   abc
r(  s
   abc
déf
r  abc
r  s	   abc
déf
)r  r  rT   r  r;  r  r   r  s      r   test_reconfigure_write(TextIOWrapperTest.test_reconfigure_write  s    lln  x F		+)6		*		)AB lln  w E		'-		*		)=>r    c                 &   U R                  5       nS Ul        S Ul        U R                  USSS9nUR	                  S5        UR                  SS9  UR	                  S5        UR                  5         U R                  UR                  5       S	5        g )
Nc                      gr   r#   r#   r    r   rj  GTextIOWrapperTest.test_reconfigure_write_non_seekable.<locals>.<lambda>  s    ur    r  r  r  r2  r  r0   r(  s   abc
﻿déf
)	r  rd   ri   r  rT   r  r   r;  r  r  s      r   #test_reconfigure_write_non_seekable5TextIOWrapperTest.test_reconfigure_write_non_seekable  sz    lln$  w E		'-		*		 	*JKr    c                 L   U R                  U R                  5       SSS5      nUR                  S S9  U R                  UR                  S5        U R                  UR
                  S5        UR                  S5        UR                  SS9  U R                  UR                  S5        U R                  UR
                  S5        UR                  SS	9  U R                  UR                  S5        U R                  UR
                  S5        UR                  S
5        UR                  SS S9  U R                  UR
                  S5        UR                  S5        U R                  UR                  5       S5        U R                  UR                  5       R                  5       S5        g )Nr  r  r  r0   LF
rw  r*  r  rx  CRLF
rW  r  rV  r   zLF
CRLF
s	   LF
CRLF
)r  r  r  r;  r1   rx  rT   ri   r   r  r  rZ  s     r   test_reconfigure_defaults+TextIOWrapperTest.test_reconfigure_defaults  s<     )TJ&w/Y/		&'w/Y/x(w/X.		($7X.\2..0/Br    c                 	   U R                  U R                  5       SSS5      nU R                  [        5         UR	                  SS9  S S S 5        U R
                  (       aZ  U R                  [        5         UR	                  SS9  S S S 5        U R                  [        5         UR	                  SS9  S S S 5        U R                  [        5         UR	                  SS9  S S S 5        U R
                  (       a-  U R                  [        5         UR	                  SS9  S S S 5        U R                  [        5         UR	                  SS	9  S S S 5        U R                  [        5         UR	                  SS	9  S S S 5        U R                  [        5         UR	                  S
S	9  S S S 5        U R
                  (       d-  U R                  [        5         UR	                  SS	9  S S S 5        U R
                  (       Ga  U R                  [        5         UR	                  [        5       S9  S S S 5        U R                  [        5         UR	                  SS-  S9  S S S 5        U R                  [        5         UR	                  [        5       S9  S S S 5        U R                  [        5         UR	                  SS-  S9  S S S 5        U R                  [        5         UR	                  [        5       [        5       S9  S S S 5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                   S5        U R                  UR"                  S5        UR	                  SSSSSS9  U R                  UR                  S5        U R                  UR                  S5        U R                  UR                   S5        U R                  UR"                  S5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNq= f! , (       d  f       GNV= f! , (       d  f       GN*= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNx= f! , (       d  f       GNZ= f! , (       d  f       GN7= f! , (       d  f       GN= f! , (       d  f       GN= f)Nr  r  r  r]   r0   rz  zlocale r<  r*  xyzr|  r  r   rs  r  )rx  r  Fra  r  rw  T)r1   rx  r  rx  r  )r  r  r=  r>  r  r}  r~  r  r   r  r9   rP  r;  r1   rx  r  rx  r  rZ  s     r   test_reconfigure_errors)TextIOWrapperTest.test_reconfigure_errors(  s[     )TJy)OORO( *99""#562 7"";/4 0 y)OO2O& *99""#56x0 7 y)OOBO' *z*OOHO- +z*OOEO* +yy"":./ /999""#45xz: 6""=1q$w7 2""#45hj9 6""=1ag6 2""#45xz.6j   : 6 	w/Y/c((%0c''/(F'+4 	 	Ax0X.c(($/c''.c *) 76// *) 76 *)**** /. 6511551155s   O96P#PP/Q;Q(Q%Q7R	RR-7R?,S!S#9
P
P
P,/
P>
Q
Q"%
Q47
R	
R
R*-
R<?
S
S #
S2c                 R   U R                  S5      nU R                  USSS9nUR                  S S9  U R                  UR	                  5       S5        U R                  S5      nU R                  USSS9nUR                  SS9  U R                  UR	                  5       S5        U R                  S5      nU R                  USS	S9nUR                  SS9  U R                  UR	                  5       S
5        U R                  S5      nU R                  USSS9nUR                  S	S9  U R                  UR	                  5       S5        U R                  S5      nU R                  USS	S9nUR                  SS9  U R                  UR	                  5       S5        U R                  U R                  5       SS	S9nUR                  S S9  UR                  S5        UR                  SS9  UR                  S5        UR                  SS9  UR                  S5        UR                  S	S9  UR                  S5        UR                  SS9  UR                  S5        S[        R                  -   S-   nU R                  UR                  5       R                  5       R                  S5      U5        g )Ns   CREOFr  r  r*  zCR
r  zCRs	   CRLF
EOFr  zCRLF
s	   LF
CREOFzLF
CRs   CRCRLF
EOFrw  z	CRCRLF
zlinesep
r;  r=  r  zLF
LF
CRCRLF
)r  r  r  r;  r]  rT   rj  r  r  r  rO  )r?   rQ  r  r  s       r   test_reconfigure_newline*TextIOWrapperTest.test_reconfigure_newline]  sM   ll:&  gt <%0ll:&  gt <#0ll>*  gt <%4ll>*  gt <%4ll-.  gt <'8  $ G%		+#		&%		&%		&'		(rzz),BB..077@(Kr    c                 F   U R                  U R                  S5      SS9nUR                  S5        UR                  5         UR                  5         U R                  U R                  S5      SS9nUR                  S5        UR	                  S5        UR                  5         g )Nr"  r  r0   r=   r  )r  r  r   rm   rT   r  s     r   test_issue25862!TextIOWrapperTest.test_issue25862  sz    t||G4wG	q			t||G4wG	q			r    c                 .   U R                  U R                  S5      U R                  5       5      nU R                  U5      nUR                  5       nU R	                  US5        UR                  U5        U R	                  X2R                  5       -   S5        g )Ns   foo
bar
r.  zfoo
bar
)r  r  r  r]  r;  rT   )r?   pr5   r   s       r   test_issue35928!TextIOWrapperTest.test_issue35928  sr    ] ;T\\^Lq!jjlg&	zz|+\:r    c                   ^   " U 4S jST R                   5      qT R                  S5      n[        US5      n[        [        R
                  S-   5       H  nT R                  US9   [        R                  " X#5      n[        R                  " U5      nT R                  UR                  R                  5       S5        T R                  UR                  S5        S S S 5        M     Bg ! , (       d  f       M  = f)Nc                   <   >^  \ rS rSrU 4S jrS rU4S jrSrU =r$ )r  i  c                 0   > [         TU ]  U5        X l        g rQ   r  r  s      r   rN   MyTextIO.__init__  r  r    c                 N    U R                   U R                  R                  5       4$ rQ   )r  r?  r  r>   s    r   r  MyTextIO.__getstate__  s    xx!5!5!777r    c                 P   > Uu  p#U R                  TR                  U5      U5        g rQ   r  r   s       r   rp  MyTextIO.__setstate__  r  r    r  r  r  s   @r   r  r    s    87 7r    r  r  r	  r=   r
  )r  r  r  r<  r  r  r  r  r  r;  r?  r  r  )r?   rQ  r  r  r  newtxts   `     r   r  (TextIOWrapperTest.test_pickling_subclass  s    	7t)) 	7 ll7#sE"622Q67Eu- ,,s2g.  !7!7!97C  U3	 .- 8  .-s   %A3C&&
C5	)ro  rn  N)[r%   r&   r'   r(   r.  r2  r+  r1  r  r  r  r  r  r  r  r,  r-  r  r  	utf8_moder  r  r  r  r  r  r  r  r  r  r  r  r!  r+  r.  r  r=  rB  rF  rN  rT  rZ  r]  r  r  r  rj  rn  rs  rv  ry  r}  r  r  r  r  r   
no_tracingr   r0  r  rv  r  r  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r+  r/  r3  r8  r>  rB  rE  rH  rL  r  r)   r#   r    r   rl  rl  
  s   >+!=F	(2*((6	516 __SYY((*AB+ C+(	"4$50(IT< 7$&,.>:),(5"	-8^J(-*=	/44=
1
1	11/<EEE2 002G 3 G"!"!(!*1B
	8A6@0.-5&1P,&95	A6/
*
=?*LC.3/j"LH	;r    rl  c                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )r  i  c                 4   > [        [        TU ]	  U5      5      $ rQ   )r  r   r  r?   len_r   s     r   r  MemviewBytesIO.read1  s    egmD122r    c                 4   > [        [        TU ]	  U5      5      $ rQ   )r  r   r   r\  s     r   r   MemviewBytesIO.read  s    egl4011r    r#   )r%   r&   r'   r(   r  r   r)   r   r   s   @r   r  r    s    32 2r    r  c                     [         R                   " S5      n[        U 5      [        U 5      UR                  -  -
  nUR                  U S U 5        [	        U5      $ )Nr8  )r,   r   itemsize	frombytesr   )rq   arridxs      r   r  r    sI     ++c
C
c(SX,
,CMM#ds)c?r    c                   @    \ rS rSr\rSrS rS rS rS r	S r
S rS	rg
)CTextIOWrapperTesti  $LookupError: unknown encoding: asciic                 l   U R                  S5      nU R                  US5      nU R                  USS9nU R                  [        UR
                  USSS9  U R                  [        UR                  5        U R                  R                  U R                  5      nU R                  [        [        U5        g )Nrv  rs  rW  r0   r  r  )
r  ry  r  r=  r   rN   r   r0  rv  r  r  s       r   r  &CTextIOWrapperTest.test_initialization  s    LL)4(q73*ajj!gwW*aff-&&t'9'9:)T1-r    c                 Z   [         R                  " S[        45         U R                  [        R
                  S5      nU R                  U5      nU R                  USS9nUR                  S5        X3l	        [        R                  " U5      nA[        R                  " 5         S S S 5        U R                  W" 5       U5        U R                  [        R
                  S5       nU R!                  UR#                  5       S5        S S S 5        g ! , (       d  f       No= f! , (       d  f       g = f)Nr  rX  r  r0   456defr[  s   456def)r   r  r  rk  r   r-  r~  r  rT   r  rU  rV  r   r  rW  r2   r;  r   )r?   r  r+   r;  rX  r5   s         r   rY  *CTextIOWrapperTest.test_garbage_collection  s     ++R,ABKK	 0 0$7E##E*A""1w"7AGGHCQB  C 	"$#YYy''.!QVVXy1 /. CB /.s   BD!!D
D
D*c                 b   [        S5       H  nU R                  U R                  5       U R                  5       5      nU R                  USS9nU R                  U R                  5       U R                  5       5      nU R                  USS9nXSl        X5l        M     [
        R                  " 5         g )Nrs  r  r0   )r<  r  r   r  buddyr   r  )r?   r8  b1t1b2t2s         r   !test_rwpair_cleared_before_textio4CTextIOWrapperTest.test_rwpair_cleared_before_textio  s     tA$$T^^%5t~~7GHB##B#9B$$T^^%5t~~7GHB##B#9BHH  	r    c                     U R                  U R                  5       SS9nU R                  [        5         U?S S S 5        g ! , (       d  f       g = fr|  )r  r  r=  r  r4   r  s     r    test_del__CHUNK_SIZE_SystemError3CTextIOWrapperTest.test_del__CHUNK_SIZE_SystemError  s<    t||~@~. /..s   A  
Ac                 P  ^ Sm " U4S jSU R                   5      nU" 5       nU R                  USS9nUR                  mUR                  S5        UR                  S5        U R	                  / UR
                  5        U R                  [        5         UR                  STS	-   -  5        S S S 5        U R	                  S
/UR
                  5        UR                  S5        UR                  ST-  5        U R	                  S
SST-  /UR
                  5        g ! , (       d  f       Ns= f)Nr  c                   ,   >^  \ rS rSrU U4S jrSrU =r$ )<CTextIOWrapperTest.test_internal_buffer_size.<locals>.MockIOi  c                 L   > [        U5      T:  a  [        e[        TU ]  U5      $ rQ   )r   r  r   rT   )r?   r   r   r%  s     r   rT   BCTextIOWrapperTest.test_internal_buffer_size.<locals>.MockIO.write  s$    t9z)&&w}T**r    r#   )r%   r&   r'   r(   rT   r)   r   )r   r%  s   @r   MockIOr{    s    + +r    r~  r  r0   r  r  r  r=   r  ghir  rF  )r   r  r4   rT   r;  rJ   r=  r  )r?   r~  rq   r;  r%  s       @r   test_internal_buffer_size,CTextIOWrapperTest.test_internal_buffer_size  s     
	+T^^ 	+ hsW5]]
		S--.|,GGCA&' - 	)c&6&67		J)VT*_=s?O?OP -,s   D
D%c                 :  ^ Sn " U4S jSU R                   5      nU" 5       nU R                  U5      mTR                  S5        TR                  S5        TR                  SU-  5        TR                  5         U R	                  SSS	U-  /UR
                  5        g )
Nr  c                   0   >^  \ rS rSrSrU U4S jrSrU =r$ )3CTextIOWrapperTest.test_issue119506.<locals>.MockIOi  Fc                 t   > U R                   (       d  SU l         TR                  S5        [        TU ]  U5      $ )NTmiddle)r   rT   r   )r?   r   r   r;  s     r   rT   9CTextIOWrapperTest.test_issue119506.<locals>.MockIO.write  s,    ||#'DLGGH%w}T**r    )r   )r%   r&   r'   r(   r   rT   r)   r   )r   r;  s   @r   r~  r    s    G+ +r    r~  r  r  gr  s   middler  )r   r  rT   r   r;  rJ   )r?   r%  r~  rq   r;  s       @r   test_issue119506#CTextIOWrapperTest.test_issue119506  s    
	+T^^ 	+ hs#			j !		)YZ@))	+r    r#   N)r%   r&   r'   r(   r   r   r  rY  rt  rw  r  r  r)   r#   r    r   rg  rg    s+    	B;N.2"
Q6+r    rg  c                       \ rS rSr\rSrSrg)PyTextIOWrapperTesti"  rh  r#   N)r%   r&   r'   r(   r   r   r   r)   r#   r    r   r  r  "  s    	B;Nr    r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	IncrementalNewlineDecoderTesti'  c                   ^ ^ UU 4S jnU" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        T R                  [        TR                  SS	S
9  TR                  5         U" SS5        U" SS5        U" SSS	S
9  U" SSS	S
9  U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        g )Nc                    > TR                  5       nTR                  TR                  " U 40 UD6U5        TR                  U5        TR                  TR                  " U 40 UD6U5        g rQ   )rB  r;  rO  rF  )r+   r  ro  r  decoderr?   s       r   _check_decodePIncrementalNewlineDecoderTest.check_newline_decoding_utf8.<locals>._check_decode+  s[    $$&EW^^A88!<U#W^^A88!<r    s   袈u   袈   r        r    T)rM  r(  r  r  r8  z
a   
z

s   
as   袈
r$  s   袈)r=  UnicodeDecodeErrorrO  r8  )r?   r  r  s   `` r   check_newline_decoding_utf89IncrementalNewlineDecoderTest.check_newline_decoding_utf8)  s   	= 	ox0gr"gr"gx(gr"gr"gx(gr",gnncNeT"eR c4t,eT.eR dE"i(eR eT"fe$):6ox0eT"'2eT"r    c                   ^^^ / mUb$  [         R                  " U5      " 5       mUUU4S jnO	S mUU4S jnU R                  TR                  S 5        U" S5        U R                  TR                  S5        U" S5        U R                  TR                  S5        U" S5        U R                  TR                  S5        U" S5        U R                  TR                  S	5        U" S5        U R                  S
R	                  T5      S5        TR                  5         SnTb!  TR                  5         TR                  U5      nU R                  TR                  U5      S5        U R                  TR                  S 5        g )Nc                    > TR                  U 5       H-  nTR                  TR                  [        U/5      5      5        M/     g rQ   )rZ  rR   rO  r   )r  r+   r  encoderr  s     r   _decode_bytewiseNIncrementalNewlineDecoderTest.check_newline_decoding.<locals>._decode_bytewiseW  s1     *AMM'..s"<= +r    c                 X   > U  H#  nTR                  TR                  U5      5        M%     g rQ   )rR   rO  )r  r  r  r  s     r   r  r  ]  s"    AMM'.."34 r    zabc
r  z
abc)r  rw  zabcr  )r  r  rw  r  zabc

abcabc
abcabc)r6  getincrementalencoderr;  newlinesr  r8  rZ  rO  )r?   r  r1   r  rL  r  r  s    `   @@r   check_newline_decoding4IncrementalNewlineDecoderTest.check_newline_decodingS  sC   228<>G> >
 G5 	))40#))40!))>:!))>:))+?@!*ABMMONN5)E.6))40r    c                 ^   SnU HH  nU=(       a    [         R                  " U5      " 5       nU R                  USS9nU R                  X25        MJ     [         R                  " S5      " 5       nU R                  USS9nU R	                  U5        U R                  [        UR                  S5        g )N)	NrW  r/   r  r  r  r  r  r  T	translaterW  r]   )r6  getincrementaldecoderrA  r  r  r=  r>  rF  )r?   r  r  r  s       r   test_newline_decoder2IncrementalNewlineDecoderTest.test_newline_decodert  s    
	 CAf::3?AG44W4MG''5  ..w7900D0I((1)W%5%5r:r    c                 r   ^  U 4S jnT R                  S SS9nU" U5        T R                  S SS9nU" U5        g )Nc                 2  > TR                  U R                  S 5        TR                  U R                  S5      S5        TR                  U R                  S 5        TR                  U R                  S5      S5        TR                  U R                  S 5        g )Nu   ഀu   ਀)r;  r  rO  )decr?   s    r   _check@IncrementalNewlineDecoderTest.test_newline_bytes.<locals>._check  sq    S\\40SZZ18<S\\40SZZ18<S\\40r    Fr  T)rA  )r?   r  r  s   `  r   test_newline_bytes0IncrementalNewlineDecoderTest.test_newline_bytes  sB    	1 ,,TU,Cs,,TT,Bsr    c                 (   S H@  n[         R                  " S5      " 5       nU R                  X!5      nU R                  U5        MB     [         R                  " S5      " 5       nU R                  USS9nU R	                  UR                  S5      S5        g )N)r  r  r=   r   rW  r   r  r  z
)r6  r  rA  r  r;  rO  )r?   r  r  s      r   test_translate,IncrementalNewlineDecoderTest.test_translate  s    'I227;=G44WHG,,W5 ( ..w7900A0F	2H=r    r#   N)
r%   r&   r'   r(   r  r  r  r  r  r)   r#   r    r   r  r  '  s    (#T1B;">r    r  c                   8    \ rS rSr\R
                  S 5       rSrg)CIncrementalNewlineDecoderTesti  c                 R   U R                   R                  U R                   5      nU R                  [        UR                  S5        U R                  [        UR
                  5        U R                  [        UR                  S5        U R                  [        UR                  5        g )N   bar)r  r   )rA  r0  r=  r   rO  rB  rF  r8  )r?   uninitializeds     r   r1  1CIncrementalNewlineDecoderTest.test_uninitialized  s}    66>>**,*m&:&:FC*m&<&<=*m&<&<kJ*m&9&9:r    r#   N)r%   r&   r'   r(   r   r$  r1  r)   r#   r    r   r  r    s    ; ;r    r  c                       \ rS rSrSrg)PyIncrementalNewlineDecoderTesti  r#   Nr$   r#   r    r   r  r    r|   r    r  c                   ^   \ rS rSrSrSrSrS rS rS r	S r
\R                  " \R                  S5      \R                  " \" \S	5      S
5      S 5       5       rS rS rS rS rS rS rS rS rS r\R                  " \" \S	5      S
5      S 5       rS r\R                  " \R                  S5      S 5       r\R                  " \R                  S5      S 5       r\R                  " \" \S5      S5      \R                  " \" \S	5      S
5      S 5       5       r S r!S r"S r#S r$S  r%S! r&Sr'g)"
MiscIOTesti  Nr#   c                 L    [         R                  " [         R                  5        g rQ   r+  r>   s    r   r2  MiscIOTest.tearDown  r0  r    c                     [         R                  " X R                  U R                  U R                  U R
                  S9  g )N)extranot_exported)r   check__all__r   name_of_moduleextra_exportedr  r>   s    r   test___all__MiscIOTest.test___all__  s0    T77D,?,?#'#6#6*.*;*;	=r    c                 z   U R                  [        R                  SSS9nU R                  UR                  S5        UR                  5         U R                  [        R                  SSS9nU R                  UR                  S5        U R                  UR                  R                  S5        U R                  UR                  R                  R                  S5        U R                  UR                  5       SSS	9nU R                  UR                  S5        U R                  UR                  R                  S5        U R                  UR                  UR                  5       5        U R                  UR                  R                  UR                  5       5        UR                  5         UR                  5         g )
NrX  r   rY  r   rW  r0   r  FrH  )
r2   r   r-  r;  r  r   r?  rQ  r^   r  )r?   r5   r  s      r   test_attributesMiscIOTest.test_attributes  s-   IIi&&I:&		IIi&&wI?D1E2**E2IIahhj$I6T*T*QXXZ0QXXZ0				r    c                     S Hf  nU R                  [        5       nU R                  [        R                  U5        S S S 5        U R                  S[        WR                  5      5        Mh     g ! , (       d  f       N8= f)N)UrUzr+Uzinvalid mode)r=  r   r2   r   r-  r  r  r  )r?   r  r  s      r   test_removed_u_modeMiscIOTest.test_removed_u_mode  sS    &D"":."		)**D1 /MM.#bll*;< '..s   !A..
A<	re  rf  rg  c                 2   [         R                  " 5       u  pU R                  [         R                  U5        U R	                  USSS9nU R                  UR                  5        [
        R                  S:w  a   U R                  UR                  5       5        g g )Nr  rW  r0   r?  )	rj  rf  rr  r   r2   r  r  rn  rd   )r?   r.   rV  r5   s       r   test_open_pipe_with_append%MiscIOTest.test_open_pipe_with_append  sn     wwy!$IIawI/  <<7"QZZ\* #r    c                    SS0SS0SSS.SSS.SSS.SS0SS	0SSS.SSS.S	SS.SS
0SS0S
SS.S
SS.SSS.4 GH8  nSUS   ;  a  SUS'   U R                   " [        R                  40 UD6nUR                  5         U R	                  [
        UR                  5        U R	                  [
        UR                  5        U R	                  [
        UR                  5        U R	                  [
        UR                  5        [        US5      (       a!  U R	                  [
        UR                  S5        U R	                  [
        UR                  5        [        US5      (       aA  U R	                  [
        UR                  S5        U R	                  [
        UR                  5        [        US5      (       a   U R	                  [
        UR                  5        [        US5      (       a*  U R	                  [
        UR                  [!        S5      5        [        US5      (       a*  U R	                  [
        UR"                  [!        S5      5        U R	                  [
        UR$                  5        U R	                  [
        UR&                  5        U R	                  [
        UR&                  S5        U R	                  [
        UR(                  S5        U R	                  [
        UR*                  5        U R	                  [
        UR,                  5        U R	                  [
        UR.                  SUS   ;   a  SOS5        U R	                  [
        UR0                  / 5        U R	                  [
        [2        U5        GM;     g )Nr  rV  rX  r=   r  rZ  r   r   r.   r[  r   r  r+   rW  r1   rG  r  r(  r  rt   rH  r    r  )r2   r   r-  r   r=  r   r   r^   r  __iter__r  rG  r   r  r  rt   r<  rH  r]  r  ri   rm   rw   rT   r^  r  )r?   ro  r5   s      r   test_io_after_closeMiscIOTest.test_io_after_close  s   1-1-A.1-1-A.A.A.Q/F" &.(%,z"		)**5f5AGGIj!''2j!((3j!((3j!**5q&!!!!*affa8j!&&1q'""!!*aggt<!!*agg6q)$$!!*aii8q*%%!!*ajj)D/Jq+&&!!*akk9T?Kj!**5j!++6j!++q9j!&&!4j!&&1j!**5j!''%(F6N%:cDj!,,;j$2]r    c                      " S S[         5      nU" S5      nU R                  SU5      nX2l        X#l        [        R
                  " U5      nAA[        R                  " 5         U R                  U" 5       U5        g )Nc                       \ rS rSrSrg)*MiscIOTest.test_blockingioerror.<locals>.Ci  r#   Nr$   r#   r    r   Cr    r  r    r  r  r=   )	r  r%  r+   r  rU  rV  r   r  rW  )r?   r  r  r+   rX  s        r   test_blockingioerrorMiscIOTest.test_blockingioerror  sc    	 	bE  A&[[^q"$#r    c                 T   U R                  U R                  [        R                  5        U R                  U R                  [        R                  5        U R                  U R
                  [        R                  5        U R                  U R                  [        R                  5        g rQ   )r  r  r  ABCMetar  r  r  r>   s    r   	test_abcsMiscIOTest.test_abcs"  sd    dkk3;;7dnnckk:d113;;?doos{{;r    c                    U R                  [        R                  SSS9 nU R                  X!R                  5        U R                  X!R
                  5        U R                  X!R                  5        U R                  X!R                  5        S S S 5        U R                  [        R                  S5       nU R                  X!R                  5        U R                  X!R
                  5        U R                  X!R                  5        U R                  X!R                  5        S S S 5        U R                  [        R                  SSS9 nU R                  X!R                  5        U R                  X!R
                  5        U R                  X!R                  5        U R                  X!R                  5        S S S 5        g ! , (       d  f       GN9= f! , (       d  f       N= f! , (       d  f       g = fNrX  r   rY  rV  rW  r0   )	r2   r   r-  r  r  r  assertNotIsInstancer  r  )r?   	abcmoduler5   s      r   _check_abc_inheritance!MiscIOTest._check_abc_inheritance)  so   YYy''Y;q!!!%5%56!!!%8%89$$Q(@(@A$$Q(<(<=	 <
 YYy''.!!!!%5%56$$Q(;(;<!!!%=%=>$$Q(<(<=	 /
 YYy''wY?1!!!%5%56$$Q(;(;<$$Q(@(@A!!!%9%9:	 @? <;
 /.
 @?s&   A-F?5A-G	A-G"?
G
G"
G0c                 &    U R                  U 5        g rQ   )r  r>   s    r   test_abc_inheritanceMiscIOTest.test_abc_inheritance:  s    ##D)r    c                 .    U R                  [        5        g rQ   )r  r   r>   s    r   test_abc_inheritance_official(MiscIOTest.test_abc_inheritance_official>  s     	##B'r    c                 .   U R                   " U0 UD6n[        U5      nU R                  [        5       nS n[        R
                  " 5         S S S 5        U R                  U[        WR                  R                  S   5      5        g ! , (       d  f       NA= frG   )
r2   r  assertWarnsr  r   r  r  r  warningr   )r?   r   ro  r5   r.   r  s         r   _check_warn_on_dealloc!MiscIOTest._check_warn_on_deallocC  so    IIt&v&Go."A  / 	aRZZ__Q/01 /.s   B
Bc                     U R                  [        R                  SSS9  U R                  [        R                  S5        U R                  [        R                  SSS9  g r  )r  r   r-  r>   s    r   test_warn_on_deallocMiscIOTest.test_warn_on_deallocK  sN    ##I$4$4da#H##I$4$4d;##I$4$4cG#Lr    c                 h  ^ / mU4S jnU R                  U5        [        R                  " 5       u  pETXE4-  mU R                  " U/UQ70 UD6  [        R                  " 5       u  pETXE4-  m[        R
                  " U 5         U R                  " U/UQ7SS0UD6  S S S 5        g ! , (       d  f       g = f)Nc                     > T H  n  [         R                  " U 5        M     g ! [         a*  nUR                  [        R                  :w  a  e  S nAMN  S nAff = frQ   )rj  r   r   r  r  )ru  rw  fdss     r   cleanup_fds9MiscIOTest._check_warn_on_dealloc_fd.<locals>.cleanup_fdsR  sG    HHRL   ww%++- .s   #
AAArB  F)rr  rj  rf  r  r   r  r2   )r?   r   ro  r  r.   rV  r  s         @r   _check_warn_on_dealloc_fd$MiscIOTest._check_warn_on_dealloc_fdP  s    	 	$wwyqt##A777wwyqt66t<IIa8$888 =<<s   B##
B1c                 f    U R                  SSS9  U R                  S5        U R                  SSS9  g )Nr[  r   rY  r.   rW  r0   )r  r>   s    r   test_warn_on_dealloc_fd"MiscIOTest.test_warn_on_dealloc_fdc  s6    &&tq&9&&t,&&sW&=r    c                    SnSS0SS0SSS.SS0SS0SSS.SS	0SS
0S
SS.4	 H  nSUS   ;  a  SUS'   [        [        R                  S-   5       Hz  nU R                  X2S9   U R                  " [
        R                  40 UD6 nU R                  [        U5         [        R                  " XC5        S S S 5        S S S 5        S S S 5        M|     M     g ! , (       d  f       N'= f! , (       d  f       N0= f! , (       d  f       M  = f)Nzcannot pickler  rV  rX  r   r  r.   r[  r   r  r+   rW  r1   r=   )r  ro  )
r<  r  r  r  r2   r   r-  r  r>  r  )r?   rh  ro  r  r5   s        r   test_picklingMiscIOTest.test_picklingj  s    A.A.Q/
F &.(%,z"!&"9"9A"=>\\8\C9#3#3>v>!!33IsC"LL5 D ? DC ?
  DC ?> DCs<   ""C5C$	C2C$	:C5
C!C$	$
C2.C55
Dc                 &    U R                  S5        g )Ni @  _test_nonblock_pipe_writer>   s    r   test_nonblock_pipe_write_bigbuf*MiscIOTest.test_nonblock_pipe_write_bigbuf  s     	&&w/r    c                 &    U R                  S5        g )Nr(  r	  r>   s    r   !test_nonblock_pipe_write_smallbuf,MiscIOTest.test_nonblock_pipe_write_smallbuf  s     	&&t,r    set_blockingz(os.set_blocking() required for this testc                    / n/ n[         R                  " 5       u  pE[         R                  " US5        [         R                  " US5        U R                  USSUS9nU R                  USSUS9nU   U   S HC  n Sn	 [	        U	S-  S	-   /5      U-  n
UR                  U
5        UR                  U
5        U	S
-  n	M>       UR                  5          U[        UR                  S 5      -  nS S S 5        S S S 5        SR!                  U5      SR!                  U5      p2U R                  X#5        U R#                  UR$                  5        U R#                  UR$                  5        g ! U R                   a  nU R                  UR                  S   [        R                  5        U R                  UR                  S   UR                  5        US   S UR                   US'   UR                  UR                  5       5        Sn
UR                  U
5        UR                  U
5         S nAGM  S nAff = f! U R                   a  nU R                  UR                  S   [        R                  5        U R                  UR                  S   UR                  5        U R                  UR                  S5        UR                  UR                  5       5         S nAOS nAff = fGM"  ! , (       d  f       GN= f! , (       d  f       GN= f)NFr[  T)r  rB  rZ  rX  )r  I   i  r      a   r=   r   r  s   BLOCKEDr    )rj  rf  r	  r2   r   rR   rT   r%  r;  r   r  EAGAINr  r   r   iterr  rm  r   )r?   r  sentreceivedr.   rV  rfwfr  r8  rh  rw  s               r   r	  $MiscIOTest._test_nonblock_pipe_write  sg    wwy
5!
5! YYqtTWYEYYqtTWYE#%A#QVb[M2Q6C(Q	  $$ /HHJ RWWd++H; R> $();h(		"		"1 ++ %$$QVVAY=$$QVVAY0D0DE#Bx(=)=)=>DHOOBGGI.$CHHSMKK$$% ++ /$$QVVAY=$$QVVAY0D0DE$$Q%9%91=OOBGGI..	/	 ' RRs{   0K23K :AE";K ?H/K )K2"H,	2B.H'	 K 'H,	,K /K?BKK KK  
K/	*K22
Lc                     U R                  [        R                  SSS9    S S S 5        U R                  [        U R                   [        R                  SSS9  g ! , (       d  f       N>= f)NrV  rW  r0   r  )r2   r   r-  r=  FileExistsErrorr>   s    r   test_create_failMiscIOTest.test_create_fail  sQ    YYy''wY? @/499i6F6FV]^ @?s   A
A(c                 N   U R                  [        R                  S5       nUR                  S5        S S S 5        U R                  [        R                  S5       nU R	                  SUR                  5       5        S S S 5        g ! , (       d  f       NX= f! , (       d  f       g = f)Nxbr7  r[  r3  rR  s     r   test_create_writesMiscIOTest.test_create_writes  sm    YYy''.!GGG /YYy''.!Waffh/ /. /...r6  c                 b    U R                  [        U R                  [        R                  SSS9  g )Nzrwax+rW  r0   rC  r>   s    r   test_open_allargsMiscIOTest.test_open_allargs  s&    *dii1A1A7U\]r    c                    U R                   R                  n[        nSn[        R                  " SU SU< SU< SU< SU< SU< SU< S	U< S
35      n[        SSSU5      nU R                  UR                  SU5        g )NzBoom, Shaka Laka, Boom!z)
            import sys
            from zC import open, TextIOWrapper

            try:
                open(z, encoding=z)
            except LookupError:
                pass
            else:
                sys.exit(21)

            try:
                open(z	, errors=z})
            except LookupError:
                pass
            else:
                sys.exit(22)

            fp = open(za, "rb")
            with fp:
                try:
                    TextIOWrapper(fp, encoding=z)
                except LookupError:
                    pass
                else:
                    sys.exit(23)

                try:
                    TextIOWrapper(fp, errors=z)
                except LookupError:
                    pass
                else:
                    sys.exit(24)

            sys.exit(10)
        -Xdevr  rG  )r   r%   r3   textwrapdedentr	   r;  r  )r?   modr  r  r  procs         r   test_check_encoding_errors%MiscIOTest.test_check_encoding_errors  s     gg+ $  \WK 8 \7+ 6  l #0 18{ ;. /6[ 9	9#  #H %T5$="d+r    c           	         U R                   R                  n[        n[        R                  " SU SU< SU< S35      n[        SSSU5      nUR                  R                  5       nU R                  [        U5      S5        U R                  US	   R                  S
5      5        U R                  US   R                  S5      5        g )Nz(            import sys
            from zN import open, TextIOWrapper
            import pathlib

            with open(zJ) as f:           # line 5
                pass

            pathlib.Path(z ).read_text()  # line 8
        r$	  warn_default_encodingr  r   r   s   <string>:5: EncodingWarning: r=   s   <string>:8: EncodingWarning: )r   r%   r3   r&	  r'	  r   r  r  r;  r   rm  r  )r?   r(	  r  r  r)	  r  s         r   test_check_encoding_warning&MiscIOTest.test_check_encoding_warning  s     gg $   l # # &		  	  &=tTJ88&&(X*QK""#CD	FQK""#CD	Fr    c                     Sn[        SSSU5      nU R                  SUR                  R                  5       5        [        SSSU5      nU R                  SUR                  R                  5       5        g )Nz(import io; print(io.text_encoding(None))r$	  zutf8=0r  s   localezutf8=1s   utf-8)r   r;  r  r  )r?   r  r)	  s      r   test_text_encodingMiscIOTest.test_text_encoding  s_     :hd;DHHNN$45hd;488>>#34r    )(r%   r&   r'   r(   r  r  r  r2  r  r  r  r,  r-  r   r.  r/  r  rj  r  r  r  r  r  r  r  r  r  r  r  r	  r	  r
	  r	  r	  r	  r!	  r*	  r.	  r1	  r)   r#   r    r   r  r    s    NNL+=
$= __F V,.BC	+ D	+/3b$<;"*(
2M
9& V,.BC> D>6, __F00 __F-- ^4CEV,.BC0# DE0#d_0^+,ZF.	5r    r  c                       \ rS rSr\rSrSrS rS r\	R                  " 5       \R                  " S5      S 5       5       r\	R                  " 5       \R                  " S5      S 5       5       rS	rg
)CMiscIOTesti"  )r   r>  )r%  c                      " S SU R                   R                  5      nU" 5       n[        S5      nU R                  [        UR
                  U5        g )Nc                       \ rS rSrSS jrSrg)<CMiscIOTest.test_readinto_buffer_overflow.<locals>.BadReaderi)  c                     SS-  $ )NrF  i@B r#   r   s     r   r   ACMiscIOTest.test_readinto_buffer_overflow.<locals>.BadReader.read*  s    e|#r    r#   Nr  r   r#   r    r   	BadReaderr7	  )  s    $r    r:	  r   )r   r  r<  r=  r   rt   )r?   r:	  r  r+   s       r   test_readinto_buffer_overflow)CMiscIOTest.test_readinto_buffer_overflow'  s@    	$.. 	$ aL*enna8r    c                 <   SR                  [        5       5      n[        SU5      u  p4UR                  R	                  5       nUR
                  S:w  a+  SR                  [        5       5      nU R                  XV5        g U R                  UR                  S5      5        g )Na  if 1:
            import sys
            import time
            import threading
            from test.support import SuppressCrashReport

            file = sys.{stream_name}

            def run():
                while True:
                    file.write('.')
                    file.flush()

            crash = SuppressCrashReport()
            crash.__enter__()
            # don't call __exit__(): the crash occurs at Python shutdown

            thread = threading.Thread(target=run)
            thread.daemon = True
            thread.start()

            time.sleep(0.5)
            file.write('!')
            file.flush()
            r  r   zFatal Python error: _enter_buffered_busy: could not acquire lock for <(_io\.)?BufferedWriter name='<{stream_name}>'> at interpreter shutdown, possibly due to daemon threadsz.!)	
format_maplocalsr
   r  rO  r  r  rn  r  )r?   stream_namer  r   r  r  patterns          r   &check_daemon_threads_shutdown_deadlock2CMiscIOTest.check_daemon_threads_shutdown_deadlock0  s    0 
68$1 	2 &dD1ggnn66Q;) *4FH)=	 
 S*SYYt_-r    walltimec                 &    U R                  S5        g )NstdoutrB	  r>   s    r   ,test_daemon_threads_shutdown_stdout_deadlock8CMiscIOTest.test_daemon_threads_shutdown_stdout_deadlockY       	33H=r    c                 &    U R                  S5        g )NstderrrG	  r>   s    r   ,test_daemon_threads_shutdown_stderr_deadlock8CMiscIOTest.test_daemon_threads_shutdown_stderr_deadlock^  rJ	  r    r#   N)r%   r&   r'   r(   r   r  r  r;	  rB	  r   r0  r   r  rH	  rM	  r)   r#   r    r   r4	  r4	  "  s|    	B N'N9'.R 002z*> + 3> 002z*> + 3>r    r4	  c                   $    \ rS rSr\rSrSrSrSr	g)PyMiscIOTestid  )_pyior   )r%  	open_code)valid_seek_flagsr#   N)
r%   r&   r'   r(   r   r   r  r  r  r)   r#   r    r   rP	  rP	  d  s    	B"N4N&Lr    rP	  ntz%POSIX signals required for this test.c                   B   \ rS rSrS rS rS rS r\\	R                  " \" \S5      S5      S 5       5       r\\	R                  " \" \S5      S5      S	 5       5       r\\	R                  " \" \S5      S5      S
 5       5       r\R"                  S 5       r\S 5       r\S 5       rS r\\R,                  " S5      S 5       5       r\\R,                  " S5      S 5       5       rS r\\R,                  " S5      S 5       5       r\\R,                  " S5      S 5       5       rSrg)SignalsTestik  c                 l    [         R                   " [         R                  U R                  5      U l        g rQ   )signalSIGALRMalarm_interruptoldalrmr>   s    r   r.  SignalsTest.setUpn  s    }}V^^T5I5IJr    c                 b    [         R                   " [         R                  U R                  5        g rQ   )rX	  rY	  r[	  r>   s    r   r2  SignalsTest.tearDownq  s    fnndll3r    c                     SS-    g r<   r#   )r?   sigframes      r   rZ	  SignalsTest.alarm_interruptt  rB   r    c                   ^
^ [         R                  " 5         / mU
U4S jn[        R                  " US9nSUl        [
        R                  " 5       u  m
nSUS'   U[         R                  [        U5      -  S-   -  n U R                  R                  " U40 UD6n[        [        S5      (       ay  [        R                  " [        R                  [        R                  /5        UR!                  5         [        R                  " [        R"                  [        R                  /5        OUR!                  5         [        R$                  " S5         U R'                  [(        UR*                  U5        [        R$                  " S5        UR-                  5         TR/                  [
        R0                  " T
S5      5        U R3                  TUSS USS	 /5        [
        R4                  " U5        [
        R4                  " T
5         UR5                  5         g ! [        R$                  " S5        UR-                  5         f = f! [6         a)  n	U	R8                  [8        R:                  :w  a  e  S n	A	g S n	A	ff = f! [
        R4                  " U5        [
        R4                  " T
5         WR5                  5         f ! [6         a)  n	U	R8                  [8        R:                  :w  a  e  S n	A	f S n	A	ff = f= f)
Nc                  V   > [         R                  " TS5      n TR                  U 5        g r   )rj  r   rR   )r  r.   read_resultss    r   r  2SignalsTest.check_interrupted_write.<locals>._read  s     1A"r    r{  TFrB  r=   pthread_sigmaskr   r   )r   r  r   rs  daemonrj  rf  PIPE_MAX_SIZEr   r   r2   r  rX	  rg	  	SIG_BLOCKrY	  rt  SIG_UNBLOCKr7   r=  r  rT   r  rR   r   r;  r   r   r  r  )r?   itemr   fdopen_kwargsr  r;  rV  
large_datawiorw  r.   re	  s             @@r   check_interrupted_write#SignalsTest.check_interrupted_writew  s   6 		# E*wwy1#(i W22c$i?!CD
$	'',,q2M2Cv011&&v'7'7&..9IJ	&&v'9'9FNN;KL	 LLO!!"3SYY
KQ 1.\E!AJa
+CDHHQKHHQK		 Q  77ekk) * HHQKHHQK		 77ekk) *sh   <CI4 !H /A&I4 H> (H;;I4 >
I1I,,I14-K)"J32K)3
K&=K!K)!K&&K)rf  rg  c                 (    U R                  SSSSS9  g )Nr  rX  r   r  rp	  r>   s    r   !test_interrupted_write_unbuffered-SignalsTest.test_interrupted_write_unbuffered  s     	$$UE$Jr    c                 &    U R                  SSSS9  g Nr  rX  r  rs	  r>   s    r   test_interrupted_write_buffered+SignalsTest.test_interrupted_write_buffered  s     	$$UE$=r    c                 (    U R                  SSSSS9  g )Nxyr  rV  r  r  r1   rs	  r>   s    r   test_interrupted_write_text'SignalsTest.test_interrupted_write_text  s     	$$T5sW$Mr    c                   ^^	 UU	4S jn[         R                   " [         R                  U5        [        R                  " 5       u  pEU R                  R
                  " U40 UD6m	 [         R                  " S5        U R                  [        [        45       n [        S5       H$  nT	R                  T5        T	R                  5         M&     [        R                  " U[        T5      S-  5        MX  ! , (       d  f       O= fWR                  n[!        U[        5      (       a3  U R#                  [%        U5      R'                  S5      [%        U5      5        [         R                  " S5        T	R)                  5         [        R(                  " U5        g ! [         R                  " S5        T	R)                  5         [        R(                  " U5        f = f)Nc                  2   > TR                  T5        SS-    g r<   )rT   )r   r   ro	  s    r   on_alarm3SignalsTest.check_reentrant_write.<locals>.on_alarm  s    IIdOaCr    r=   ro  zreentrant callr   )rX	  rY	  rj  rf  r   r2   r7   r=  r  r  r<  rT   r   r   r   r  r  rm  r  r  r   )
r?   r   rm	  r	  r.   rV  r  r8  ra  ro	  s
    `       @r   check_reentrant_write!SignalsTest.check_reentrant_write  s0   	 	fnnh/wwyggll1..	LLO ""$5|#DE"3Z		$		 ( GGAs4y3/  FE ,,C#|,,C 3 34D Es3xPLLOIIKHHQK LLOIIKHHQKs    $1F AC//
C=9AF >Gc                 $    U R                  SSS9  g rw	  r	  r>   s    r   test_reentrant_write_buffered)SignalsTest.test_reentrant_write_buffered  s    ""5t"4r    c                 &    U R                  SSSS9  g )Nr|	  rV  r  r}	  r	  r>   s    r   test_reentrant_write_text%SignalsTest.test_reentrant_write_text  s    ""4cG"Dr    c                   ^ [         R                  " 5       u  nmSUS'   U4S jn[        R                  " [        R                  U5         U R                  R
                  " U40 UD6n[         R                  " TS5        [        R                  " S5        U R                  U" UR                  S5      5      S5        [        R                  " S5        UR                  5         [         R                  " T5        [         R                  " U5        g ! [        R                  " S5        WR                  5         [         R                  " T5        [         R                  " U5        f = f)	NFrB  c                 4   > [         R                  " TS5        g )Nr  )rj  rT   )r`	  ra	  rV  s     r   alarm_handler?SignalsTest.check_interrupted_read_retry.<locals>.alarm_handler  s    HHQr    r  r=   r5  foobarr   )rj  rf  rX	  rY	  r   r2   rT   r7   r;  r   r   )r?   rO  rm	  r.   r	  riorV  s         @r   check_interrupted_read_retry(SignalsTest.check_interrupted_read_retry  s     wwy1#(i 	 fnnm4	'',,q2M2CHHQLLO
 VCHHQK0(;LLOIIKHHQKHHQK LLOIIKHHQKHHQKs   A1D AE#rD	  c                 &    U R                  S SS9  g )Nc                 $    U R                  S5      $ )Nra  )rO  r  s    r   rj  BSignalsTest.test_interrupted_read_retry_buffered.<locals>.<lambda>  s    AHHX4Fr    r[  rx	  r	  r>   s    r   $test_interrupted_read_retry_buffered0SignalsTest.test_interrupted_read_retry_buffered  s     	))*F/3 	* 	5r    c                 (    U R                  S SSS9  g )Nc                     U $ rQ   r#   r  s    r   rj  >SignalsTest.test_interrupted_read_retry_text.<locals>.<lambda>  s    Ar    r.   ra  r}	  r	  r>   s    r    test_interrupted_read_retry_text,SignalsTest.test_interrupted_read_retry_text  s     	))+/2X 	* 	Gr    c                   ^^^^^^^ [         R                  " S5      m[        R                  n[        R
                  " 5       u  mnSUS'   / mSmS mUUUUU4S jn[        R                  " US9mSTl        U4S jnU4S jmX-  n[        R                  " [        R                  U5         U R                  R                  " U40 UD6n[        R                  " S	5        UR                  U5      n	U R                  X95        UR!                  5         SmTR#                  5         U R%                  T5        U R                  U['        S
 T 5       5      5        [        R                  " S5        Sm[        R(                  " U5        [        R(                  " T5         UR)                  5         g ! [*         a)  n
U
R,                  [,        R.                  :w  a  e  S n
A
g S n
A
ff = f! [        R                  " S5        Sm[        R(                  " U5        [        R(                  " T5         WR)                  5         f ! [*         a)  n
U
R,                  [,        R.                  :w  a  e  S n
A
f S n
A
ff = f= f)NselectFrB  c                     >  T(       dl  TTR                  T// / S5      S   ;   aF  [        R                  " TS5      n TR                  U 5        TTR                  T// / S5      S   ;   a  MF  T(       d  Mk  g g ! [         a  nUm S nAg S nAff = f)Ng      ?r   r(  )r	  rj  r   rR   BaseException)r  ra  errorr.   re	  r	  write_finisheds     r   r  8SignalsTest.check_interrupted_write_retry.<locals>._read-  s    (v}}aS"b#>qAAGGAt,$++A. v}}aS"b#>qAA ). ! s   A'A7 ,A7 7
BBBr{  Tc                 |   > [         R                   " [         R                  T5        [         R                  " S5        g r   )rX	  rY	  r7   )r`	  ra	  alarm2s     r   alarm19SignalsTest.check_interrupted_write_retry.<locals>.alarm18  s     MM&..&1LLOr    c                 &   > TR                  5         g rQ   )rt  )r`	  ra	  r;  s     r   r	  9SignalsTest.check_interrupted_write_retry.<locals>.alarm2;  s    GGIr    r=   c              3   8   #    U  H  n[        U5      v   M     g 7frQ   )r   ).0r  s     r   	<genexpr><SignalsTest.check_interrupted_write_retry.<locals>.<genexpr>P  s     #ALqCFFLs   r   )r   r@  r   ri	  rj  rf  r   rs  rh	  rX	  rY	  r   r2   r7   rT   r;  r   r  rW  sumr   r   r  r  )r?   rl	  rm	  r  rV  r  r	  rn	  ro	  r   rw  r	  r	  r.   re	  r	  r;  r	  s              @@@@@@@r   check_interrupted_write_retry)SignalsTest.check_interrupted_write_retry  s    ,,X6 !!wwy1#(i 
 	 	 E*		 X
fnnf-	'',,q2M2CLLO ii
+GQ(IIK!NFFHe$Q#AL#A ABLLO!NHHQKHHQK		 77ekk) * LLO!NHHQKHHQK		 77ekk) *sP   ,B*G" F, ,
G6GG"AI/(H98I/9
I,I'"I/'I,,I/c                 $    U R                  SSS9  g )NrF  rX  rx	  r	  r>   s    r   %test_interrupted_write_retry_buffered1SignalsTest.test_interrupted_write_retry_buffered_  s     	**4d*;r    c                 &    U R                  SSSS9  g )Nr  rV  ra  r}	  r	  r>   s    r   !test_interrupted_write_retry_text-SignalsTest.test_interrupted_write_retry_textd  s     	**3S8*Lr    )r[	  N)r%   r&   r'   r(   r.  r2  rZ	  rp	  requires_alarmr,  r/  r  rj  rt	  ry	  r~	  r   rY  r	  r	  r	  r	  r  r	  r	  r	  r	  r	  r)   r#   r    r   rV	  rV	  k  s   K4KZ V,.BCK D K V,.BC> D > V,.BCN D N  6 5 5 E E0 z*5 + 5 z*G + GBH z*< + < z*M + Mr    rV	  c                       \ rS rSr\rSrg)CSignalsTestij  r#   N)r%   r&   r'   r(   r   r)   r#   r    r   r	  r	  j  s    	Br    r	  c                        \ rS rSr\rSrSrSrg)PySignalsTestim  Nr#   )	r%   r&   r'   r(   r   r   r	  r	  r)   r#   r    r   r	  r	  m  s    	B %)! $r    r	  c                 ,  ^ [         [        [        [        [        [
        [        [        [        [        [        [        [        [        [        [        [         ["        [$        [&        [(        4n[*        [,        [.        [0        [2        [4        [6        [8        [:        4	n[<        R>                  nU Vs0 s H  oU[A        [<        U5      _M     nnU Vs0 s H  oU[A        [B        U5      _M     nn[E        5       mURG                  U4S jU 5       5        URG                  U4S jU 5       5        U H  nURH                  RK                  S5      (       a.  URM                  5        H  u  pY[O        XU	5        M     SUl(        MQ  URH                  RK                  S5      (       d  Ms  URM                  5        H  u  pY[O        XU	5        M     SUl(        M     U RS                  5       n
U H#  nU
RU                  U RW                  U5      5        M%     U
$ s  snf s  snf )Nc              3   ^   >#    U  H"  oR                   TS UR                   -      4v   M$     g7f)r  Nr%   r	  r  globss     r   r	  load_tests.<locals>.<genexpr>  s&     H%QJJcAJJ&6 78%   *-c              3   ^   >#    U  H"  oR                   TS UR                   -      4v   M$     g7f)PyNr	  r	  s     r   r	  r	    s&     JEqZZtajj'8!9:Er	  r  Tr	  F),r2  rt  rv  r  r  r?  rG  r  r  r,  r2  rd  r  r  rg  r  r4	  rP	  r	  r	  r<  r   r   r   r   r  r   rD   r   r   r   __all__r  r   globalsr  r%   r  rW  setattrr}  
suiteClassaddTestloadTestsFromTestCase)loaderr  rA	  mocksall_membersr  c_io_nspy_io_nsr  r   suiter	  s              @r   
load_testsr	  v  s   h "6 "6 "6 "6++-L!4,=,
E ^!#35I46E **K4?@KDgb$''KG@7BC{twtT**{HCIENNH%HHOOJEJJ==##C(($]]_	C( -DI]]%%d++%^^-	C( .DI  Ef22489 L% ACs   0HH__main__)zr  r,   r  r  rj  r  r~  rX	  r  r&	  r   r   r,  r  rU  collectionsr   r   	itertoolsr   r   r  r   test.support.script_helperr   r	   r
   test.supportr   r   r   r   r   test.support.os_helperr   r6  r   rQ	  r   r   r   	Structurer   ImportErrorr6   r/  r  r	  r9   rD   r  rz   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'  TestCaser)  r2  r$  r<  rt  rv  r  r  r&  r  r  r  r?  rG  rI  r  r  r  r,  r2  r7  r4  rb  rd  rl  r  r  rg  r  r  r  r  r  r4	  rP	  r-  r  rV	  r	  r	  r	  r%   mainr#   r    r   <module>r	     s   ,     	    
       ' " C C  ,  	 
f&& 
 $$FG<
 6 6p	0",, 		14>> 	$ 	BLL 		)T^^ 	i "	 		 	Y 	nbll 		~t~~ 	Y 	nbll 		~t~~ 	  	*bjj 		:t|| 	8 83("** 35)4<< 5j 	6

 		 7 	. .`)0",, )+14>> +^5X ^5B$f $( 	e-8$$ e- e-N	v 	 	hh'' h h{ {|5 5,L6**,? L6^
4A,j 4An- d**,? dP	!6,j !6H- N** N`, - |&+-? |&~
6,j 
6- I!:!: I\;)4X%6%6 )4VF)) FR&2RZZ 2a+* a+H<+ <
s>H$5$5 s>j;%B ;	&C 	r5"" r5j?>* ?>D': ' 
D"IJ{M(## {M K{M|; %K %%N zMMO Q[  333s   >T 	TT