
    ;eO                        d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZ d dlmZmZmZmZ d dlmZ d dlmZ d dlZd dlZ G d	 d
          Z G d deej                  Z G d deej                  Z G d d          Z G d deej                  Z  G d deej                  Z!d Z"e#dk    r ej$                     dS dS )    N)array)proxywraps)cpython_only	swap_attr
gc_collectis_emscriptenis_wasi)TESTFNTESTFN_ASCIITESTFN_UNICODEmake_bad_fd)check_warnings)UserListc                   *   e Zd Zd Zd Zd Zd Zd Z ej	        e
d          d             Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ej	        ej        dk    d          d             Zd Zd Zed             Zed             Z ed             Z!ed             Z"ed             Z#ed              Z$ed!             Z%ed"             Z&ed#             Z'ed$             Z(d% Z)ed&             Z*ed'             Z+ed(             Z,d)S )*AutoFileTestsc                 F    |                      t          d          | _        d S Nw)FileIOr   fselfs    '/usr/lib/python3.11/test/test_fileio.pysetUpzAutoFileTests.setUp   s    VS))    c                 x    | j         r| j                                          t          j        t                     d S N)r   closeosremover   r   s    r   tearDownzAutoFileTests.tearDown   s1    6 	FLLNNN
	&r   c                    t          | j                  }|                    t          t	          d                               |                     | j                                        |                                           | j                                         d | _        t                       | 	                    t          t          |d           d S )N
   tell)r   r   writebytesrangeassertEqualr&   r    r	   assertRaisesReferenceErrorgetattr)r   ps     r   testWeakRefszAutoFileTests.testWeakRefs$   s    $&MM	eBii  !!!111.'1f=====r   c                    | j                             t          t          d                               |                     | j                                         d           | j                             d           |                     | j                                         d           | j                             d           |                     | j                                         d           | j                             dd           |                     | j                                         d           | j                             dd           |                     | j                                         d           | j                             dd           |                     | j                                         d           d S )	N   r   r%               )r   r'   r(   r)   r*   r&   seekr   s    r   testSeekTellzAutoFileTests.testSeekTell.   sN   U599%%&&&+++A***B+++Aq+++B+++B+++++r   c                     | j         }|                     |j        d           |                     |j        d           dD ],}|                     t
          t          ft          ||d           -d S )NwbF)modeclosedoops)r   r*   r;   r<   r+   AttributeError	TypeErrorsetattr)r   r   attrs      r   testAttributeszAutoFileTests.testAttributes<   s    F&&&5))) % 	8 	8D~y9%q$8 8 8 8	8 	8r   z WASI does not expose st_blksize.c                     t           j        }t          t          d          r<t          j        | j                                                  }t          |d|          }|                     | j        j	        |           d S )Nfstat
st_blksize)
ioDEFAULT_BUFFER_SIZEhasattrr!   rD   r   filenor-   r*   _blksize)r   blksizefsts      r   testBlksizezAutoFileTests.testBlksizeH   sh     (2w 	:(46==??++Cc<99G'22222r   c                    | j                             t          g d                     | j                                          t	          d          }|                     t          d          5 }|                    |          }d d d            n# 1 swxY w Y   |                     |d           |                     |d           d S )Nr3   r6   r         abcdefghr    efgh   )	r   r'   r(   r    	bytearrayr   r   readintor*   )r   bar   ns       r   testReadintoByteArrayz#AutoFileTests.testReadintoByteArrayS   s    U>>>**+++{##[[%% 	

2A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	4555As   -BBBc                    | j                             t          g d                     | j                                          t	          t          d                    }|                     t          d          5 }|                    |          }d d d            n# 1 swxY w Y   | 	                    |d           | 	                    |d           t	          t          d                    
                    dddg          }|                     t          d          5 }|                    |          }d d d            n# 1 swxY w Y   | 	                    t          |          d           | 	                    |d           d S )	NrO   rQ   rR   rS   rT   Hr6   )shape)r   r'   r(   r    
memoryviewrU   r   r   rV   r*   cast)r   mr   rX   s       r   _testReadintoMemoryviewz%AutoFileTests._testReadintoMemoryview]   s   U>>>**+++y--..[[%% 	

1A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3444Ay--..33C1v3FF[[%% 	

1A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	q#:;;;As$   :BB #B !EE
Ec                    | j                             t          g d                     | j                                          t	          dd          }|                     t          d          5 }|                    |          }d d d            n# 1 swxY w Y   |                     |t	          dg d                     |                     |d           t	          dd          }|                     t          d          5 }|                    |          }d d d            n# 1 swxY w Y   |                     |t	          dg d                     |                     |d           t	          d	d          }|                     t          d          5 }|                    |          }d d d            n# 1 swxY w Y   |                     |t	          d	d
                     |                     |d           d S )NrO   BrQ   rR   )r3   r6   r   rP   e   f   g   h   rT   b)r3   r6   r   rc   rd   re   rf   IrS   )	r   r'   r(   r    r   r   r   rV   r*   )r   ar   rX   s       r   _testReadintoArrayz AutoFileTests._testReadintoArraym   st   U>>>**+++#{##[[%% 	

1A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	E#'I'I'IJJKKKA#{##[[%% 	

1A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	E#'H'H'HIIJJJA#{##[[%% 	

1A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	E#'>??@@@As6   .BBBD$$D(+D(F88F<?F<c                    ddg}| j                             |           | j                                          |                     t          d          | _         | j                                         }|                     |d           d S Ns   123s   456rbs   123456)r   
writelinesr    r   r   readr*   r   lbufs      r   testWritelinesListz AutoFileTests.testWritelinesList   sq    V!VT**fkkmmi(((((r   c                 ,   t          ddg          }| j                            |           | j                                         |                     t
          d          | _        | j                                        }|                     |d           d S rm   )r   r   ro   r    r   r   rp   r*   rq   s      r   testWritelinesUserListz$AutoFileTests.testWritelinesUserList   sy    ff%&&!VT**fkkmmi(((((r   c                     |                      t          | j        j        g d           |                      t          | j        j        d            |                      t          | j        j        d           d S )N)r3   r6      abc)r+   r?   r   ro   r   s    r   testWritelinesErrorz!AutoFileTests.testWritelinesError   sc    )TV%6			BBB)TV%6===)TV%6>>>>>r   c                    | j                             d           | j                                          |                     t          d          | _         |                     | j                             d           d           | j                             d           |                     | j                             d           d           |                     | j         	                    d           ddg           d S )Ns
   hi
bye
abcrR   r   s   hi
s   bye
   abc)
r   r'   r    r   r   r*   rp   r7   readline	readlinesr   s    r   test_none_argszAutoFileTests.test_none_args   s    _%%%VS))T**O<<<A..888))$//(F1CDDDDDr   c                 R    |                      t          | j        j        d           d S )NzHello!)r+   r?   r   r'   r   s    r   test_rejectzAutoFileTests.test_reject   s$    )TV\8<<<<<r   c           
         |                      t          | j                  d| j        d| j        j        d| j        j        d           | j        `|                      t          | j                  d| j        d| j                                        d| j        j        d           | j                                         |                      t          | j                  d| j        d           d S )N<.FileIO name= mode=z closefd=True>z.FileIO fd=z.FileIO [closed]>)r*   reprr   
modulenamenamer;   rI   r    r   s    r   testReprzAutoFileTests.testRepr   s    df///46;;;E	F 	F 	F FKdf///46==????DFKKKI	J 	J 	J 	df37???D	F 	F 	F 	F 	Fr   c                    t          j        t          t           j                  }	 |                     |dd          5 }|                     t          |          d| j        d|j        d|j	        d           d d d            n# 1 swxY w Y   t          j
        |           d S # t          j
        |           w xY w)NrR   F)closefdr   r   r   z closefd=False>)r!   openr   O_RDONLYr   r*   r   r   r   r;   r    )r   fdr   s      r   testReprNoCloseFDzAutoFileTests.testReprNoCloseFD   s    WVR[))	Re44 D  a"&///16661666"CD D DD D D D D D D D D D D D D D D
 HRLLLLLBHRLLLLs.   B( =B;B( BB( BB( (B>c                     t          | j        d| j                  5  |                     t                    5  t	          | j                   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r+   RuntimeErrorr   r   s    r   testRecursiveReprzAutoFileTests.testRecursiveRepr   s    tvvtv.. 	 	""<00  TV              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s4   A0AA0A	A0A	 A00A47A4c                 <   | j         }|                     |                                           |                     |j                   |                     t
          |j        d           |                                 |                     |j                   | 	                    t          d          }|                     t          |j        d           |                     |j                   |                                 |                     |j                   d S )Nr%   rR    )r   assertFalseisattyr<   r+   
ValueErrorrp   r    
assertTruer   r   r?   rV   r   r   s     r   
testErrorszAutoFileTests.testErrors   s    F$$$"""*afb111				!!!KK$$)QZ444"""				!!!!!r   c                 Z   g d}| j                                          |                     | j         j                   |D ]2}t	          | j         |          }|                     t          |           3|                     t          | j         j                   |                     t          | j         j        t          d                     |                     t          | j         j
                   |                     t          | j         j
        d           |                     t          | j         j                   |                     t          | j         j        d           |                     t          | j         j                   |                     t          | j         j        d           d S )N)rI   r   seekablereadablewritablerp   readallr}   r~   r&   truncateflushr3   r   r   )r   r    r   r<   r-   r+   r   r?   rV   rU   r7   r'   ro   )r   methods
methodnamemethods       r   testMethodszAutoFileTests.testMethods   sY   0 0 0 	&&&! 	2 	2JTVZ00Fj&1111)TV_555*dfoy||DDD)TV[111*dfk1555)TV\222*dflC888)TV%6777*df&7=====r   c                     	 |                      dd           |                     d           d S # t          $ rA}|                     |j        d           |                     |j        d           Y d }~d S d }~ww xY w)N.rR   Should have raised OSErrorr   )r   failOSErrorassertNotEqualerrnor*   filename)r   es     r   testOpendirzAutoFileTests.testOpendir   s    	4KKS!!!
 II233333	  	. 	. 	.+++QZ---------	.s   / 
A:6A55A:ntz&test only works on a POSIX-like systemc                 P   t          j        dt           j                  }|                     t                    5 }|                     |d           d d d            n# 1 swxY w Y   t          j        |           |                     |j        j	        t          j
                   d S )Nr   rR   )r!   r   r   r+   r   r   r    r*   	exceptionr   EISDIR)r   r   cms      r   testOpenDirFDzAutoFileTests.testOpenDirFD   s    WS"+&&w'' 	!2KKC   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!
+U\:::::s   AA!$A!c                 <     t                      fd            }|S )Nc                 0   | j         }t          j        |                                           	  | |           	 | j                                          d S # t          $ r Y d S w xY w# 	 | j                                          w # t          $ r Y w w xY wxY wr   )r   r!   r    rI   r   )r   r   funcs     r   wrapperz'AutoFileTests.ClosedFD.<locals>.wrapper   s     AHQXXZZ   T1FLLNNNNN   DDFLLNNNN   Ds@   A) A 
A&%A&)B+BB
BBBBr   r   r   s   ` r   ClosedFDzAutoFileTests.ClosedFD   s3    	t
	 
	 
	 
	 

	 r   c                 <     t                      fd            }|S )Nc                    | j         }t          j        |                                           	  | |           |                     d           n<# t
          $ r/}|                     |j        t          j                   Y d }~nd }~ww xY w	 | j                                          d S # t
          $ r Y d S w xY w# 	 | j                                          w # t
          $ r Y w w xY wxY w)Nr   )	r   r!   r    rI   r   r   r*   r   EBADF)r   r   r   r   s      r   r   z-AutoFileTests.ClosedFDRaises.<locals>.wrapper
  s    AHQXXZZ   
T1 		67777  7 7 7  %+666666667
FLLNNNNN   DDFLLNNNN   Dsd   A B; 
B%BB; BB; B* *
B87B8;C'=CC'
C$!C'#C$$C'r   r   s   ` r   ClosedFDRaiseszAutoFileTests.ClosedFDRaises	  s3    	t	 	 	 	 
	 r   c                 .    |                                  d S r   )r    r   s     r   testErrnoOnClosezAutoFileTests.testErrnoOnClose  s    						r   c                 0    |                     d           d S )N   a)r'   r   s     r   testErrnoOnClosedWritez$AutoFileTests.testErrnoOnClosedWrite   s    	r   c                 0    |                     d           d S Nr   )r7   r   s     r   testErrnoOnClosedSeekz#AutoFileTests.testErrnoOnClosedSeek$  s    	q					r   c                 .    |                                  d S r   )r&   r   s     r   testErrnoOnClosedTellz#AutoFileTests.testErrnoOnClosedTell(  s    	r   c                 0    |                     d           d S r   )r   r   s     r   testErrnoOnClosedTruncatez'AutoFileTests.testErrnoOnClosedTruncate,  s    	

1r   c                 .    |                                  d S r   )r   r   s     r   testErrnoOnClosedSeekablez'AutoFileTests.testErrnoOnClosedSeekable0      	

r   c                 .    |                                  d S r   )r   r   s     r   testErrnoOnClosedReadablez'AutoFileTests.testErrnoOnClosedReadable4  r   r   c                 .    |                                  d S r   )r   r   s     r   testErrnoOnClosedWritablez'AutoFileTests.testErrnoOnClosedWritable8  r   r   c                 .    |                                  d S r   )rI   r   s     r   testErrnoOnClosedFilenoz%AutoFileTests.testErrnoOnClosedFileno<  s    	




r   c                 V    |                      |                                d           d S )NF)r*   r   r   s     r   testErrnoOnClosedIsattyz%AutoFileTests.testErrnoOnClosedIsatty@  s&    U+++++r   c                     	 | j                                          n# t          $ r Y nw xY w|                     t          d          | _         t          j        | j                                                    | j         S )NrR   )r   r    r   r   r   r!   rI   r   s    r   ReopenForReadzAutoFileTests.ReopenForReadD  sn    	FLLNNNN 	 	 	D	VS))
!!!vs    
))c                 X    |                                  }|                    d           d S )Nr3   )r   rp   r   s     r   testErrnoOnClosedReadz#AutoFileTests.testErrnoOnClosedReadM  s&      	q					r   c                 V    |                                  }|                                 d S r   )r   r   r   s     r   testErrnoOnClosedReadallz&AutoFileTests.testErrnoOnClosedReadallR  s$      			r   c                 x    |                                  }t          dd          }|                    |           d S )Nrg   s
   xxxxxxxxxx)r   r   rV   )r   r   rj   s      r   testErrnoOnClosedReadintoz'AutoFileTests.testErrnoOnClosedReadintoW  s5      #w	

1r   N)-__name__
__module____qualname__r   r#   r/   r8   rB   unittestskipIfr   rM   rY   r`   rk   rt   rv   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   r    r   r   r   r      s!       * * *  
> > >, , ,
8 
8 
8 X_W@AA3 3 BA3       ,) ) )) ) )? ? ?
E E E= = =
F 
F 
F    " " "> > >,
4 
4 
4 X_RW_&NOO; ; PO;    &   ^   ^   ^   ^   ^   X   X   X   X , , X,     ^   ^   ^  r   r   c                        e Zd Zej        ZdZdS )CAutoFileTests_ioN)r   r   r   r   r   r   r   r   r   r   r   ]  s        ZFJJJr   r   c                        e Zd Zej        ZdZdS )PyAutoFileTests_pyioN)r   r   r   r   r   r   r   r   r   r   r   a  s        \FJJJr   r   c                       e Zd Zd Zd Zd Zd Zd Z ej	         e
j                    dk    d          d             Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd ZdS )OtherFileTestsc                    	 |                      t          d          }|                     |                                d           |                     |                                d           |                     |                                d           |                                 |                      t          d          }|                     |                                d           |                     |                                d           |                     |                                d           |                                 |                      t          d          }|                     |                                d           |                     |                                d           |                     |                                d           |                     |                                d           |                                 t          j	        dk    r!t          s	 |                      dd          }|                     |                                d           |                     |                                d           t          j	        d	k    rUd
t          j	        vrGt          j	                            d          s(|                     |                                d           |                     |                                d           |                                 n# t          $ r Y nw xY wt          j        t                     d S # t          j        t                     w xY w)Nr   FTrR   za+win32z/dev/ttyrj   darwinbsd)sunosaix)r   r   r*   r   r   r   r    r   sysplatformr
   
startswithr   r!   unlinkr   s     r   	testAbleszOtherFileTests.testAblesh  s   '	FC((AQZZ\\5111QZZ\\4000QZZ\\4000GGIIIFC((AQZZ\\4000QZZ\\5111QZZ\\4000GGIIIFD))AQZZ\\4000QZZ\\4000QZZ\\4000QXXZZ///GGIII|w&&}&J44A $$QZZ\\5999$$QZZ\\4888|x//CL00<223CDD 1 ((u===$$QXXZZ666GGIIII     D	  IfBIfs1   H6M, 9M C2M, 
MM, MM, ,Nc                     dD ]Z}	 |                      t          |          }|                                 |                     d|z             K# t          $ r Y Ww xY wd S )N)r   aUzwU+rwrtz%r is an invalid file mode)r   r   r    r   r   )r   r;   r   s      r   testInvalidModeStringsz%OtherFileTests.testInvalidModeStrings  s    1 	? 	?D?KK-- 					6=>>>>	    	? 	?s   A
AAc                    	 dD ]\}|                      t          |d                   5 }|                     |j        |d                    d d d            n# 1 swxY w Y   ]	 t          j                            t                    rt	          j        t                     d S d S # t          j                            t                    rt	          j        t                     w w xY w)N))r   r:   )r:   r:   )zwb+rb+)zw+br   )rj   ab)r   r   )ab+r   )za+br   )rR   rn   )rn   rn   )r   r   )zr+br   r   r3   )r   r   r*   r;   r!   pathexistsr   )r   modesr   s      r   testModeStringszOtherFileTests.testModeStrings  s   
	"H 7 7
 [[q22 7a$$QVU1X6667 7 7 7 7 7 7 7 7 7 7 7 7 7 77 w~~f%% "	&!!!!!" "rw~~f%% "	&!!!!"s/   %B# "A	B# A	B# A	B# #A C#c                     |                      t          t                    d          }|                                 t	          j        t                     d S r   )r   strr   r    r!   r   r   s     r   testUnicodeOpenzOtherFileTests.testUnicodeOpen  s>    KKFS))				
	&r   c                    t          j        d          }|                     |d          }	 |                    d           |                                 t          t           d          5 }|                     |                                d           d d d            n# 1 swxY w Y   t          j	        t                      d S # t          j	        t                      w xY w)Nasciir   r|   rn   )
r   encoder   r'   r    r   r*   rp   r!   r   r   fnr   s      r   testBytesOpenzOtherFileTests.testBytesOpen  s     ))KKC  	$GGFOOOGGIIIlD)) 3Q  62223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Il#####BIl####s/   >C *)BC B##C &B#'C C utf-8z%test only works for utf-8 filesystemsc                 $   	 t          j        d          }n-# t          $ r  |                     dt           z             Y nw xY w|                     |d          }	 |                    d           |                                 t          t           d          5 }|                     |	                                d           d d d            n# 1 swxY w Y   t          j        t                      d S # t          j        t                      w xY w)Nr  zcould not encode %r to utf-8r   r|   rn   )r   r
  UnicodeEncodeErrorskipTestr   r'   r    r   r*   rp   r!   r   r  s      r   testUtf8BytesOpenz OtherFileTests.testUtf8BytesOpen  s9   	K&w//BB! 	K 	K 	KMM8>IJJJJJ	KKKC  	&GGFOOOGGIIInd++ 3q  62223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 In%%%%%BIn%%%%s?    'A A>C4 )CC4 CC4 CC4 4Dc                     d}|                      t          | j        |d           |                      t          | j        t          |d          d           d S )Nzfoo barr   r	  )r+   r   r   r(   )r   fn_with_NULs     r   testConstructorHandlesNULCharsz-OtherFileTests.testConstructorHandlesNULChars  sP     *dk;DDD*dk5g3N3NPSTTTTTr   c                 (   |                      t          | j        d           |                      t          | j        t	                                 t
          j        dk    r3dd l}|                      t          |j        t	                                 d S d S )Nir   r   )	r+   r   r   r   r   r   r   msvcrtget_osfhandle)r   r  s     r   testInvalidFdzOtherFileTests.testInvalidFd  s}    *dk3777'4;>>><7""MMMgv';[]]KKKKK #"r   c                 l   d}	 |                      t          |          }|                                 |                     d|z             d S # t          $ r\}|j        d         dk    r:t          |          }t          |v s||vr$|                     d|z             Y d }~d S Y d }~d S Y d }~d S d }~ww xY w)Nqwertyzno error for invalid mode: %sr   z&bad error message for invalid mode: %s)r   r   r    r   r   argsr  )r   bad_moder   msgss        r   testBadModeArgumentz"OtherFileTests.testBadModeArgument  s    	BFH--A GGIIIII5@AAAAA  	L 	L 	Lx{aHHQ;;(!"3"3IIFJKKKKKKKKK  "3"3"3"3"3"3	Ls   A 
B3AB..B3c           	         |                      t          d          }|                    t          t	          t          d                                         |                     |                                d           |                    d           |                     |                                d           |                     |	                    dt          j                  d           |                    d           |                     |                                d           |                     |	                    dt          j                  d           |                                 d S )Nr   r%   r2   r   r4   )r   r   r'   r(   rU   r)   r*   r&   r   r7   rF   SEEK_ENDr    r   s     r   testTruncatezOtherFileTests.testTruncate  s   KK$$	ib		**++,,,2&&&	

12&&&2;//333	

21%%%2;//444						r   c                       fd}	  |             t          j        t                     d S # t          j        t                     w xY w)Nc                  t                        t          d          } |                     t          t	          d                               |                                                       t          d          } |                     d          }|t          t	          d                    k    r                    d|z             |                                 dk    r*                    d|                                 z             | 	                                 |                                 dk    r*                    d|                                 z             |                                  t          j                            t                    }|dk    r                    d|z             d S d S )	Nr      zr+r2   z(Read on file opened for update failed %rzFile pos after read wrong %dz!File pos after ftruncate wrong %dz"File size after ftruncate wrong %d)r   r   r'   r(   r)   r    rp   r   r&   r   r!   r  getsize)r   datasizer   s      r   	bug801631z7OtherFileTests.testTruncateOnWindows.<locals>.bug801631  sS    FC((AGGE%))$$%%%GGIIIF4((A66!99DuU1XX&&		DtKLLLvvxx1}}		816688CDDDJJLLLvvxx1}}		=HIIIGGIII7??6**Dqyy		>EFFFFF yr   )r!   r   r   )r   r*  s   ` r   testTruncateOnWindowsz$OtherFileTests.testTruncateOnWindows  s]    	G 	G 	G 	G 	G.	IKKKIfBIfs	   
- Ac                 6   	 t          t          d          }|                    d           |                                 t          t          d          }|                    d           |                                 t          t          d          }|                                }|                                 |                     |d           	 t          j        t                     d S #  Y d S xY w# 	 t          j        t                     w #  Y w xY wxY w)Nr:   s   spamr   s   eggsrn   s   spameggs)r   r   r'   r    rp   r*   r!   r   )r   r   ds      r   
testAppendzOtherFileTests.testAppend  s    	VT""AGGGGGIIIVT""AGGGGGIIIVT""AAGGIIIQ,,,	&!!!!!	&!!!!s0   CC5 C- -C25D7DDDDc                 L    |                      t          | j        ddd           d S )N1r   )r+   r?   r   r   s    r   testInvalidInitzOtherFileTests.testInvalidInit&  s&    )T[#q!<<<<<r   c                    t          d          5 }|                     |j        g            |                     t          | j        g            |                     |j        g            |                     t          | j        dd           |                     |j        g            d d d            d S # 1 swxY w Y   d S )NTquietz/some/invalid/namer   )r   r*   warningsr+   r?   r   r   )r   r   s     r   testWarningszOtherFileTests.testWarnings)  s    $''' 	-1QZ,,,ib999QZ,,,j$+7KTRRRQZ,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   BB33B7:B7c                      G d dt                      G fdd| j                  t          j        t          t          j                  }|                     |           t          j        |           d S )Nc                       e Zd ZdS )=OtherFileTests.testUnclosedFDOnException.<locals>.MyExceptionN)r   r   r   r   r   r   MyExceptionr9  2  s          r   r:  c                   $     e Zd Z fdZ xZS ):OtherFileTests.testUnclosedFDOnException.<locals>.MyFileIOc                 n    |dk    r d          t          |                               ||          S )Nr   zblocked setting name)super__setattr__)r   r   valuer:  MyFileIO	__class__s      r   r?  zFOtherFileTests.testUnclosedFDOnException.<locals>.MyFileIO.__setattr__4  s=    6>>%+&<===Xt,,88uEEEr   )r   r   r   r?  __classcell__)rB  r:  rA  s   @r   rA  r<  3  sN        F F F F F F F F F F Fr   rA  )	Exceptionr   r!   r   __file__r   r+   r    )r   r   r:  rA  s     @@r   testUnclosedFDOnExceptionz(OtherFileTests.testUnclosedFDOnException1  s    *****)***	F 	F 	F 	F 	F 	F 	F 	Ft{ 	F 	F 	F
 WXr{+++x444
r   N)r   r   r   r   r   r  r  r  r   r   r   getfilesystemencodingr  r  r  r   r#  r+  r.  r1  r6  rF  r   r   r   r   r   f  s2       ( ( (T	? 	? 	?" " "  
$ 
$ 
$ X_.S.00G;<> >& &> >&U U U
L L LB B B 
 
 
  :  $= = =- - -	 	 	 	 	r   r   c                   <    e Zd Zej        ZdZed             Zd ZdS )COtherFileTestsr   c                     dd l }|                     t          | j        |j        dz              |                     t          | j        |j        dz
             d S )Nr   r3   )	_testcapir+   r?   r   INT_MAXINT_MIN)r   rK  s     r   testInvalidFd_overflowz&COtherFileTests.testInvalidFd_overflowA  sZ     	)T[)2Ca2GHHH)T[)2Ca2GHHHHHr   c                 J   |                      t          d          5 }|                                }d d d            n# 1 swxY w Y   t          j        t                    5 }|                                }d d d            n# 1 swxY w Y   |                     ||           d S )Nrn   )r   rE  rp   r   	open_coder*   )r   r   expectedactuals       r   test_open_codezCOtherFileTests.test_open_codeH  s    [[4(( 	 AvvxxH	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ]8$$ 	VVXXF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	6*****s!   =AA!BB	BN)	r   r   r   r   r   r   r   rN  rS  r   r   r   rI  rI  =  sK        ZFJI I \I+ + + + +r   rI  c                   &    e Zd Zej        ZdZd ZdS )PyOtherFileTestsr   c                    |                      t          d          5 }|                                }d d d            n# 1 swxY w Y   t          d          5 }t	          j        t                    5 }|                                }d d d            n# 1 swxY w Y   |                     ||           |                     |j        g            d d d            d S # 1 swxY w Y   d S )Nrn   Tr3  )	r   rE  rp   r   r   _open_code_with_warningr*   r   r5  )r   r   rQ  r   rR  s        r   rS  zPyOtherFileTests.test_open_codeV  s    [[4(( 	 AvvxxH	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 $''' 	01.x88 "A" " " " " " " " " " " " " " "Xv...
B///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0sE   =AAC2BCB	CB	4CC #C N)r   r   r   r   r   r   rS  r   r   r   rU  rU  R  s/        \FJ
0 
0 
0 
0 
0r   rU  c                      t           j                            t                    rt          j        t                     d S d S r   )r!   r  r  r   r   r   r   r   tearDownModulerY  c  s:     
w~~f 
	& r   __main__)%r   r!   rF   r   r   r   weakrefr   	functoolsr   test.supportr   r   r	   r
   r   test.support.os_helperr   r   r   r   test.support.warnings_helperr   collectionsr   r   r   r   TestCaser   r   r   rI  rU  rY  r   mainr   r   r   <module>rc     sw   


 				 				                                             8 7 7 7 7 7             



 B B B B B B B BH
    ]H$5       mX%6   
T T T T T T T Tn+ + + + +nh&7 + + +*0 0 0 0 0~x'8 0 0 0"   zHMOOOOO r   