
    dafO                        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j8                        Z G d deej8                        Z G d d      Z G d deej8                        Z  G d deej8                        Z!d Z"e#dk(  r ejH                          yy)    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j6                  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,y))*AutoFileTestsc                 :    | j                  t        d      | _        y Nw)FileIOr   fselfs    +/root/Python-3.12.4/Lib/test/test_fileio.pysetUpzAutoFileTests.setUp   s    VS)    c                     | j                   r| j                   j                          t        j                  t               y N)r   closeosremover   r   s    r   tearDownzAutoFileTests.tearDown   s"    66FFLLN
		&r   c                 r   t        | j                        }|j                  t        t	        d                   | j                  | j                  j                         |j                                | j                  j                          d | _        t                | j                  t        t        |d       y )N
   tell)r   r   writebytesrangeassertEqualr&   r    r	   assertRaisesReferenceErrorgetattr)r   ps     r   testWeakRefszAutoFileTests.testWeakRefs$   sq    $&&M	eBi !1.'1f=r   c                 j   | j                   j                  t        t        d                   | j	                  | j                   j                         d       | j                   j                  d       | j	                  | j                   j                         d       | j                   j                  d       | j	                  | j                   j                         d       | j                   j                  dd       | j	                  | j                   j                         d       | j                   j                  dd       | j	                  | j                   j                         d       | j                   j                  dd       | j	                  | j                   j                         d       y )	N   r   r%               )r   r'   r(   r)   r*   r&   seekr   s    r   testSeekTellzAutoFileTests.testSeekTell.   s   U59%&+A*B+Aq+B+B+r   c                     | j                   }| j                  |j                  d       | j                  |j                  d       dD ]%  }| j	                  t
        t        ft        ||d       ' y )NwbF)modeclosedoops)r   r*   r;   r<   r+   AttributeError	TypeErrorsetattr)r   r   attrs      r   testAttributeszAutoFileTests.testAttributes<   sb    FF&5) % 	8D~y9%q$8	8r   z WASI does not expose st_blksize.c                    t         j                  }t        t        d      r:t        j                  | j
                  j                               }t        |d|      }| j                  | j
                  j                  |       y )Nfstat
st_blksize)
ioDEFAULT_BUFFER_SIZEhasattrr!   rD   r   filenor-   r*   _blksize)r   blksizefsts      r   testBlksizezAutoFileTests.testBlksizeH   sW     ((2w((466==?+Cc<9G'2r   c                 Z   | j                   j                  t        g d             | j                   j                          t	        d      }| j                  t        d      5 }|j                  |      }d d d        | j                  |d       | j                  d       y # 1 sw Y   .xY w)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A	 	s   "B!!B*c                    | j                   j                  t        g d             | j                   j                          t	        t        d            }| j                  t        d      5 }|j                  |      }d d d        | j                  |d       | j                  d       t	        t        d            j                  dddg      }| j                  t        d      5 }|j                  |      }d d d        | j                  t        |      d       | j                  |d       y # 1 sw Y   xY w# 1 sw Y   CxY w)	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Ay-.33C1v3F[[% 	

1A	q#:;A	 		 	s   +D.&D:.D7:Ec                 R   | j                   j                  t        g d             | j                   j                          t	        dd      }| j                  t        d      5 }|j                  |      }d d d        | j                  |t	        dg d             | j                  d       t	        dd      }| j                  t        d      5 }|j                  |      }d d d        | j                  |t	        dg d             | j                  |d       t	        d	d      }| j                  t        d      5 }|j                  |      }d d d        | j                  |t	        d	d
             | j                  |d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   QxY w)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   sV   U>*+#{#[[% 	

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

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

1A	E#'>?@A	 		 		 	s$   #FF;FFFF&c                    ddg}| j                   j                  |       | j                   j                          | j                  t        d      | _         | j                   j                         }| j                  |d       y Ns   123s   456rbs   123456)r   
writelinesr    r   r   readr*   r   lbufs      r   testWritelinesListz AutoFileTests.testWritelinesList   s\    V!VT*ffkkmi(r   c                    t        ddg      }| j                  j                  |       | j                  j                          | j	                  t
        d      | _        | j                  j                         }| j                  |d       y rm   )r   r   ro   r    r   r   rp   r*   rq   s      r   testWritelinesUserListz$AutoFileTests.testWritelinesUserList   sa    ff%&!VT*ffkkmi(r   c                 
   | j                  t        | j                  j                  g d       | j                  t        | j                  j                  d        | j                  t        | j                  j                  d       y )N)r3   r6      abc)r+   r?   r   ro   r   s    r   testWritelinesErrorz!AutoFileTests.testWritelinesError   sV    )TVV%6%6	B)TVV%6%6=)TVV%6%6>r   c                    | j                   j                  d       | j                   j                          | j                  t        d      | _         | j                  | j                   j                  d       d       | j                   j                  d       | j                  | j                   j                  d       d       | j                  | j                   j                  d       ddg       y )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))$/(F1CDr   c                 Z    | j                  t        | j                  j                  d       y )NzHello!)r+   r?   r   r'   r   s    r   test_rejectzAutoFileTests.test_reject   s    )TVV\\8<r   c           
      B   | j                  t        | j                        d| j                  d| j                  j                  d| j                  j
                  d       | j                  `| j                  t        | j                        d| j                  d| j                  j                         d| j                  j
                  d       | j                  j                          | j                  t        | j                        d| j                  d       y )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    dff//466;;E	F FFKdff//466==?DFFKKI	J 	dff37??D	Fr   c                    t        j                  t        t         j                        }	 | j	                  |dd      5 }| j                  t        |      d| j                  d|j                  d|j                  d       d d d        t        j                  |       y # 1 sw Y   xY w# 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    WWVR[[)	Re4 D  a"&//166166"CDD
 HHRLD D
 HHRLs#   B, AB B,  B)%B, ,Cc                     t        | j                  d| j                        5  | j                  t              5  t	        | j                         d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   )r   r   r+   RuntimeErrorr   r   s    r   testRecursiveReprzAutoFileTests.testRecursiveRepr   s^    tvvvtvv. 	""<0 TVV	 	 	 	s"   A+AA+A(	$A++A4c                 "   | j                   }| j                  |j                                | j                  |j                         | j	                  t
        |j                  d       |j                          | j                  |j                         | j                  t        d      }| j	                  t        |j                  d       | j                  |j                         |j                          | j                  |j                         y )Nr%   rR    )r   assertFalseisattyr<   r+   
ValueErrorrp   r    
assertTruer   r   r?   rV   r   r   s     r   
testErrorszAutoFileTests.testErrors   s    FF$"*affb1		!KK$)QZZ4"		!r   c                    g d}| j                   j                          | j                  | j                   j                         |D ].  }t	        | j                   |      }| j                  t        |       0 | j                  t        | j                   j                         | j                  t        | j                   j                  t        d             | j                  t        | j                   j                         | j                  t        | j                   j                  d       | j                  t        | j                   j                         | j                  t        | j                   j                  d       | j                  t        | j                   j                         | j                  t        | j                   j                  d       y )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   s-   0 	&! 	2JTVVZ0Fj&1	2
 	)TVV__5*dffooy|D)TVV[[1*dffkk15)TVV\\2*dffllC8)TVV%6%67*dff&7&7=r   c                     	 | j                  dd       | j                  d       y # t        $ rB}| j                  |j                  d       | j                  |j                  d       Y d }~y d }~ww xY w)N.rR   Should have raised OSErrorr   )r   failOSErrorassertNotEqualerrnor*   filename)r   es     r   testOpendirzAutoFileTests.testOpendir   sa    	4KKS!
 II23	  	.+QZZ--	.s   & 	A18A,,A1ntz&test only works on a POSIX-like systemc                 V   t        j                  dt         j                        }| j                  t              5 }| j                  |d       d d d        t        j                  |       | j                  j                  j                  t        j                         y # 1 sw Y   SxY w)Nr   rR   )r!   r   r   r+   r   r   r    r*   	exceptionr   EISDIR)r   r   cms      r   testOpenDirFDzAutoFileTests.testOpenDirFD   sr    WWS"++&w' 	!2KKC 	!
++U\\:	! 	!s   BB(c                 .     t                fd       }|S )Nc                 *   | j                   }t        j                  |j                                	  | |       	 | j                   j                          y # t        $ r Y y w xY w# 	 | j                   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   sv     AHHQXXZ T1FFLLN FFLLN s@   	A& A 	A#"A#&B(BB	BBBBr   r   r   s   ` r   ClosedFDzAutoFileTests.ClosedFD   s     	t
	 

	 r   c                 .     t                fd       }|S )Nc                    | j                   }t        j                  |j                                	  | |       | j	                  d       	 | j                   j                          y # t
        $ r4}| j                  |j                  t        j                         Y d }~Td }~ww xY w# t
        $ r Y y w xY w# 	 | j                   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HHQXXZ 
T1 		67FFLLN  7  %++667  FFLLN sd   	A( B7 B( (	B%1*B B7  B%%B7 (	B43B47C#9CC#	C C#C  C#r   r   s   ` r   ClosedFDRaiseszAutoFileTests.ClosedFDRaises	  s     	t	 
	 r   c                 $    |j                          y r   )r    r   s     r   testErrnoOnClosezAutoFileTests.testErrnoOnClose  s    		r   c                 &    |j                  d       y )N   a)r'   r   s     r   testErrnoOnClosedWritez$AutoFileTests.testErrnoOnClosedWrite   s    	r   c                 &    |j                  d       y Nr   )r7   r   s     r   testErrnoOnClosedSeekz#AutoFileTests.testErrnoOnClosedSeek$  s    	q	r   c                 $    |j                          y r   )r&   r   s     r   testErrnoOnClosedTellz#AutoFileTests.testErrnoOnClosedTell(  s    	r   c                 &    |j                  d       y r   )r   r   s     r   testErrnoOnClosedTruncatez'AutoFileTests.testErrnoOnClosedTruncate,  s    	

1r   c                 $    |j                          y r   )r   r   s     r   testErrnoOnClosedSeekablez'AutoFileTests.testErrnoOnClosedSeekable0      	

r   c                 $    |j                          y r   )r   r   s     r   testErrnoOnClosedReadablez'AutoFileTests.testErrnoOnClosedReadable4  r   r   c                 $    |j                          y r   )r   r   s     r   testErrnoOnClosedWritablez'AutoFileTests.testErrnoOnClosedWritable8  r   r   c                 $    |j                          y r   )rI   r   s     r   testErrnoOnClosedFilenoz%AutoFileTests.testErrnoOnClosedFileno<  s    	
r   c                 D    | j                  |j                         d       y )NF)r*   r   r   s     r   testErrnoOnClosedIsattyz%AutoFileTests.testErrnoOnClosedIsatty@  s    U+r   c                     	 | j                   j                          | j                  t        d      | _         t        j                  | j                   j                                | j                   S # t        $ r Y _w xY w)NrR   )r   r    r   r   r   r!   rI   r   s    r   ReopenForReadzAutoFileTests.ReopenForReadD  s[    	FFLLN VS)
!vv	  		s   A0 0	A<;A<c                 F    | j                         }|j                  d       y )Nr3   )r   rp   r   s     r   testErrnoOnClosedReadz#AutoFileTests.testErrnoOnClosedReadM  s     	q	r   c                 D    | j                         }|j                          y r   )r   r   r   s     r   testErrnoOnClosedReadallz&AutoFileTests.testErrnoOnClosedReadallR  s     			r   c                 ^    | j                         }t        dd      }|j                  |       y )Nrg   s
   xxxxxxxxxx)r   r   rV   )r   r   rj   s      r   testErrnoOnClosedReadintoz'AutoFileTests.testErrnoOnClosedReadintoW  s'     #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 X__W@A3 B3 ,))?
E=
F">,
4 X__RWW_&NO; P;&                   , ,      r   r   c                   (    e Zd Zej                  ZdZy)CAutoFileTests_ioN)r   r   r   r   r   r   r   r   r   r   r   ]  s    ZZFJr   r   c                   (    e Zd Zej                  ZdZy)PyAutoFileTests_pyioN)r   r   r   r   r   r   r   r   r   r   r   a  s    \\FJr   r   c                       e Zd Zd Zd Zd Zd Zd Z ej                   e
j                         dk7  d      d        Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)OtherFileTestsc                    	 | j                  t        d      }| j                  |j                         d       | j                  |j	                         d       | j                  |j                         d       |j                          | j                  t        d      }| j                  |j                         d       | j                  |j	                         d       | j                  |j                         d       |j                          | j                  t        d      }| j                  |j                         d       | j                  |j	                         d       | j                  |j                         d       | j                  |j                         d       |j                          t        j                  dk7  rt        s	 | j                  dd      }| j                  |j                         d       | j                  |j	                         d       t        j                  d	k7  rQd
t        j                  vr?t        j                  j                  d      s | j                  |j                         d       | j                  |j                         d       |j                          t        j                  t               y # t        $ r Y %w xY w# 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QZZ\40QZZ\40GGIFC(AQZZ\40QZZ\51QZZ\40GGIFD)AQZZ\40QZZ\40QZZ\40QXXZ/GGI||w&}J4A $$QZZ\59$$QZZ\48||x/CLL0<<223CD((u=$$QXXZ6GGIIIf!   	  IIfs1   GK K  CK 	KK KK K8c                     dD ]=  }	 | j                  t        |      }|j                          | j                  d|z         ? y # t        $ r Y Lw xY w)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  sW    1 	?D?KK- 			6=>	?  s   A	AAc                    	 dD ]C  }| j                  t        |d         5 }| j                  |j                  |d          d d d        E 	 t        j
                  j                  t              rt	        j                  t               y y # 1 sw Y   xY w# t        j
                  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
 [[q2 7a$$QVVU1X67 77 ww~~f%		&! &7 7 ww~~f%		&! &s"   B  B	 
B 	B	B ?Cc                     | j                  t        t              d      }|j                          t	        j
                  t               y r   )r   strr   r    r!   r   r   s     r   testUnicodeOpenzOtherFileTests.testUnicodeOpen  s+    KKFS)		
		&r   c                    t        j                  d      }| j                  |d      }	 |j                  d       |j	                          t        t         d      5 }| j                  |j                         d       d d d        t        j                  t                y # 1 sw Y   #xY w# 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 	$GGFOGGIlD) 3Q  623 IIl#3 3 IIl#s#   1B) !B;B) B&"B) )Cutf-8z%test only works for utf-8 filesystemsc                    	 t        j                  d      }| j	                  d      }	 |j                  d       |j                          t        t         d      5 }| j                  |j                         d       d d d        t        j                  t                y # t        $ r | j                  dt         z         Y w xY w# 1 sw Y   JxY w# 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  s    	K&&w/B KKC 	&GGFOGGInd+ 3q  623 IIn% " 	KMM8>IJ	K3 3 IIn%s4   B 1C !C<C !CCC
C C,c                     d}| j                  t        | j                  |d       | j                  t        | j                  t        |d      d       y )Nzfoo barr   r	  )r+   r   r   r(   )r   fn_with_NULs     r   testConstructorHandlesNULCharsz-OtherFileTests.testConstructorHandlesNULChars  s?     *dkk;D*dkk5g3NPSTr   c                    | j                  t        | j                  d       | j                  t        | j                  t	                      t
        j                  dk(  r.dd l}| j                  t        |j                  t	                      y y )Nir   r   )	r+   r   r   r   r   r   r   msvcrtget_osfhandle)r   r  s     r   testInvalidFdzOtherFileTests.testInvalidFd  s^    *dkk37'4;;><<7"gv';';[]K #r   c                 8   d}	 | j                  t        |      }|j                          | j                  d|z         y # t        $ rQ}|j
                  d   dk7  r5t        |      }t        |v s||vr| j                  d|z         Y d }~y Y d }~y Y d }~y 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 GGIII5@A  	Lxx{aHQ;(!"3IIFJKK #4  	Ls   ? 	B=BBc           	      l   | j                  t        d      }|j                  t        t	        t        d                         | j                  |j                         d       |j                  d       | j                  |j                         d       | j                  |j                  dt        j                        d       |j                  d       | j                  |j                         d       | j                  |j                  dt        j                        d       |j                          y )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	

21%2;;/4		r   c                       fd}	  |        t        j                  t               y # t        j                  t               w xY w)Nc                     j                  t        d      } | j                  t        t	        d                   | j                          j                  t        d      } | j                  d      }|t        t	        d            k7  rj                  d|z         | j                         dk7  r"j                  d| j                         z         | j                          | j                         dk7  r"j                  d| j                         z         | j                          t        j                  j                  t              }|dk7  rj                  d|z         y y )	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  s     FC(AGGE%)$%GGIF4(A66!9DuU1X&		DtKLvvx1}		81668CDJJLvvx1}		=HIGGI77??6*Dqy		>EF r   )r!   r   r   )r   r*  s   ` r   testTruncateOnWindowsz$OtherFileTests.testTruncateOnWindows  s,    	G.	KIIfBIIfs	   ) Ac                    	 t        t        d      }|j                  d       |j                          t        t        d      }|j                  d       |j                          t        t        d      }|j	                         }|j                          | j                  |d       	 t        j                  t               y #  Y y 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GGIVT"AGGGGGIVT"AAGGIQ,		&!		&!s0   B$C 'C CC+
C$#C+$C(&C+c                 J    | j                  t        | j                  ddd       y )N1r   )r+   r?   r   r   s    r   testInvalidInitzOtherFileTests.testInvalidInit&  s    )T[[#q!<r   c                 t   t        d      5 }| j                  |j                  g        | j                  t        | j
                  g        | j                  |j                  g        | j                  t        | j
                  dd       | j                  |j                  g        d d d        y # 1 sw Y   y xY w)NTquietz/some/invalid/namer   )r   r*   warningsr+   r?   r   r   )r   r   s     r   testWarningszOtherFileTests.testWarnings)  s    $' 	-1QZZ,ib9QZZ,j$++7KTRQZZ,	- 	- 	-s   BB..B7c                      G d dt                G fdd| j                        t        j                  t        t        j
                        }| j                  |       t        j                  |       y )Nc                       e Zd Zy)=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                 >    |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uEEr   )r   r   r   r?  __classcell__)rB  r:  rA  s   @r   rA  r<  3  s    F Fr   rA  )	Exceptionr   r!   r   __file__r   r+   r    )r   r   r:  rA  s     @@r   testUnclosedFDOnExceptionz(OtherFileTests.testUnclosedFDOnException1  sP    *)*	Ft{{ 	F
 WWXr{{++x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  s    (T	?"
$ X__.S..0G;<>&>&U
LB 
:$=-	r   r   c                   >    e Zd Zej                  ZdZed        Zd Zy)COtherFileTestsr   c                     dd l }| j                  t        | j                  |j                  dz          | j                  t        | j                  |j
                  dz
         y )Nr   r3   )	_testcapir+   r?   r   INT_MAXINT_MIN)r   rK  s     r   testInvalidFd_overflowz&COtherFileTests.testInvalidFd_overflowA  sI     	)T[[)2C2Ca2GH)T[[)2C2Ca2GHr   c                    | j                  t        d      5 }|j                         }d d d        t        j                  t              5 }|j                         }d d d        | j                         y # 1 sw Y   NxY w# 1 sw Y   (xY w)Nrn   )r   rE  rp   r   	open_coder*   )r   r   expectedactuals       r   test_open_codezCOtherFileTests.test_open_codeH  sr     [[4( 	 AvvxH	 ]]8$ 	VVXF	6*		  	 	 	s   A5	B5A>B
N)	r   r   r   r   r   r   r   rN  rS  r   r   r   rI  rI  =  s)    ZZFJI I+r   rI  c                   .    e Zd Zej                  ZdZd Zy)PyOtherFileTestsr   c                    | j                  t        d      5 }|j                         }d d d        t        d      5 }t	        j
                  t              5 }|j                         }d d d        | j                         | j                  |j                  g        d d d        y # 1 sw Y   xY w# 1 sw Y   LxY w# 1 sw Y   y xY w)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vvxH	 $' 	01..x8 "A"Xv.

B/	0 	0	  	 " "	0 	0s.   B&B>B2'6B>&B/2B;	7B>>CN)r   r   r   r   r   r   rS  r   r   r   rU  rU  R  s    \\FJ
0r   rU  c                  ~    t         j                  j                  t              rt        j                  t               y y r   )r!   r  r  r   r   r   r   r   tearDownModulerY  c  s%     
ww~~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     s     	 	        8   
 B BH
]H$5$5 mX%6%6 
T Tn+nh&7&7 +*0~x'8'8 0" zHMMO r   