
    /hhR                        S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
JrJrJrJrJrJr  S SKJrJrJrJr  S SKJr  S SKJr  S S	KJr  S SKrS SKr " S
 S5      r " S S\\R>                  5      r  " S S\\R>                  5      r! " S S5      r" " S S\"\R>                  5      r# " S S\"\R>                  5      r$S r%\&S:X  a  \RN                  " 5         gg)    N)array)proxywraps)cpython_only	swap_attr
gc_collectis_emscriptenis_wasiinfinite_recursion)TESTFNTESTFN_ASCIITESTFN_UNICODEmake_bad_fd)check_warnings)import_module)UserListc                      \ rS rSrS rS rS rS rS 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5      S 5       rS rS rS r\	R                  " \R<                  S:H  S5      S 5       rS r S r!\!S 5       r"\!S 5       r#\!S  5       r$\!S! 5       r%\!S" 5       r&\ S# 5       r'\ S$ 5       r(\ S% 5       r)\ S& 5       r*\ S' 5       r+S( r,\!S) 5       r-\!S* 5       r.\!S+ 5       r/S,r0g-).AutoFileTests   c                 :    U R                  [        S5      U l        g Nw)FileIOr   fselfs    9/opt/python-3.13.8/usr/lib/python3.13/test/test_fileio.pysetUpAutoFileTests.setUp   s    VS)    c                     U R                   (       a  U R                   R                  5         [        R                  " [        5        g N)r   closeosremover   r   s    r   tearDownAutoFileTests.tearDown!   s"    66FFLLN
		&r!   c                 r   [        U R                  5      nUR                  [        [	        S5      5      5        U R                  U R                  R                  5       UR                  5       5        U R                  R                  5         S U l        [        5         U R                  [        [        US5        g )N
   tell)r   r   writebytesrangeassertEqualr+   r$   r	   assertRaisesReferenceErrorgetattr)r   ps     r   testWeakRefsAutoFileTests.testWeakRefs&   sq    $&&M	eBi !1.'1f=r!   c                 j   U R                   R                  [        [        S5      5      5        U R	                  U R                   R                  5       S5        U R                   R                  S5        U R	                  U R                   R                  5       S5        U R                   R                  S5        U R	                  U R                   R                  5       S5        U R                   R                  SS5        U R	                  U R                   R                  5       S5        U R                   R                  SS5        U R	                  U R                   R                  5       S5        U R                   R                  SS5        U R	                  U R                   R                  5       S5        g )	N   r   r*               )r   r,   r-   r.   r/   r+   seekr   s    r   testSeekTellAutoFileTests.testSeekTell0   s   U59%&+A*B+Aq+B+B+r!   c                     U R                   nU R                  UR                  S5        U R                  UR                  S5        S H%  nU R	                  [
        [        4[        XS5        M'     g )NwbF)modeclosedoops)r   r/   rB   rC   r0   AttributeError	TypeErrorsetattr)r   r   attrs      r   testAttributesAutoFileTests.testAttributes>   s[    FF&5) %D~y9%q8 %r!   z WASI does not expose st_blksize.c                    [         R                  n[        [        S5      (       a;  [        R                  " U R
                  R                  5       5      n[        USU5      nU R                  U R
                  R                  U5        g )Nfstat
st_blksize)
ioDEFAULT_BUFFER_SIZEhasattrr%   rL   r   filenor2   r/   _blksize)r   blksizefsts      r   testBlksizeAutoFileTests.testBlksizeJ   sZ     ((2w((466==?+Cc<9G'2r!   c                 d   U R                   R                  [        / SQ5      5        U R                   R                  5         [	        S5      nU R                  [        S5       nUR                  U5      nS S S 5        U R                  US5        U R                  WS5        g ! , (       d  f       N3= f)Nr9   r<   r         abcdefghr    efgh   )	r   r,   r-   r$   	bytearrayr   r   readintor/   )r   bar   ns       r   testReadintoByteArray#AutoFileTests.testReadintoByteArrayU   sz    U>*+{#[[%

2A &45A &%s   "B!!
B/c                    U R                   R                  [        / SQ5      5        U R                   R                  5         [	        [        S5      5      nU R                  [        S5       nUR                  U5      nS S S 5        U R                  US5        U R                  WS5        [	        [        S5      5      R                  SSS/S9nU R                  [        S5       nUR                  U5      nS S S 5        U R                  [        U5      S5        U R                  US5        g ! , (       d  f       N= f! , (       d  f       NM= f)	NrX   rZ   r[   r\   r]   Hr<   )shape)r   r,   r-   r$   
memoryviewr^   r   r   r_   r/   cast)r   mr   ra   s       r   _testReadintoMemoryview%AutoFileTests._testReadintoMemoryview_   s    U>*+y-.[[%

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

1A &q#:;A &% &%s   +D+#D<+
D9<
E
c                 p   U R                   R                  [        / SQ5      5        U R                   R                  5         [	        SS5      nU R                  [        S5       nUR                  U5      nS S S 5        U R                  U[	        S/ SQ5      5        U R                  WS5        [	        SS5      nU R                  [        S5       nUR                  U5      nS S S 5        U R                  U[	        S/ SQ5      5        U R                  US5        [	        S	S5      nU R                  [        S5       nUR                  U5      nS S S 5        U R                  U[	        S	S
5      5        U R                  US5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N`= f)NrX   BrZ   r[   )r9   r<   r   rY   e   f   g   h   r]   b)r9   r<   r   rn   ro   rp   rq   Ir\   )	r   r,   r-   r$   r   r   r   r_   r/   )r   ar   ra   s       r   _testReadintoArray AutoFileTests._testReadintoArrayo   sA   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$'
F5c                    SS/nU R                   R                  U5        U R                   R                  5         U R                  [        S5      U l         U R                   R                  5       nU R                  US5        g Ns   123s   456rbs   123456)r   
writelinesr$   r   r   readr/   r   lbufs      r   testWritelinesList AutoFileTests.testWritelinesList   s\    V!VT*ffkkmi(r!   c                    [        SS/5      nU R                  R                  U5        U R                  R                  5         U R	                  [
        S5      U l        U R                  R                  5       nU R                  US5        g ry   )r   r   r{   r$   r   r   r|   r/   r}   s      r   testWritelinesUserList$AutoFileTests.testWritelinesUserList   sa    ff%&!VT*ffkkmi(r!   c                 
   U R                  [        U R                  R                  / SQ5        U R                  [        U R                  R                  S 5        U R                  [        U R                  R                  S5        g )N)r9   r<      abc)r0   rF   r   r{   r   s    r   testWritelinesError!AutoFileTests.testWritelinesError   sV    )TVV%6%6	B)TVV%6%6=)TVV%6%6>r!   c                    U R                   R                  S5        U R                   R                  5         U R                  [        S5      U l         U R                  U R                   R                  S 5      S5        U R                   R                  S5        U R                  U R                   R                  S 5      S5        U R                  U R                   R                  S 5      SS/5        g )Ns
   hi
bye
abcr[   r   s   hi
s   bye
   abc)
r   r,   r$   r   r   r/   r|   r=   readline	readlinesr   s    r   test_none_argsAutoFileTests.test_none_args   s    _%VS)T*O<A.8))$/(F1CDr!   c                 Z    U R                  [        U R                  R                  S5        g )NzHello!)r0   rF   r   r,   r   s    r   test_rejectAutoFileTests.test_reject   s    )TVV\\8<r!   c           
      P   U R                  [        U R                  5      SU R                  < SU R                  R                  < SU R                  R
                  < S35        U R                  ?U R                  [        U R                  5      SU R                  < SU R                  R                  5       < SU R                  R
                  < S35        U R                  R                  5         U R                  [        U R                  5      SU R                  < S35        g )N<.FileIO name= mode=z closefd=True>z.FileIO fd=z.FileIO [closed]>)r/   reprr   
modulenamenamerB   rQ   r$   r   s    r   testReprAutoFileTests.testRepr   s    dff//466;;E	F FFKdff//466==?DFFKKI	J 	dff37??D	Fr!   c                     " S SU R                   5      nU" [        5      nU   U R                  UR                  [	        U5      5        S S S 5        U R                  UR                  [	        U5      5        g ! , (       d  f       N4= f)Nc                       \ rS rSrSrg)6AutoFileTests.test_subclass_repr.<locals>.TestSubclass    N__name__
__module____qualname____firstlineno____static_attributes__r   r!   r   TestSubclassr      s    r!   r   )r   r   assertInr   r   )r   r   r   s      r   test_subclass_repr AutoFileTests.test_subclass_repr   s`    	4;; 	  MM,//a9  	l++T!W5 Qs   &A88
Bc                    [         R                  " [        [         R                  5      n U R	                  USSS9 nU R                  [        U5      SU R                  < SUR                  < SUR                  < S35        S S S 5        [         R                  " U5        g ! , (       d  f       N%= f! [         R                  " U5        f = f)Nr[   Fclosefdr   r   r   z closefd=False>)r%   openr   O_RDONLYr   r/   r   r   r   rB   r$   )r   fdr   s      r   testReprNoCloseFDAutoFileTests.testReprNoCloseFD   s    WWVR[[)	Re4  a"&//166166"CD 5
 HHRL 54
 HHRLs#   B3 AB"B3 "
B0,B3 3C   c                    [        U R                  S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   )r   r   r0   RuntimeErrorr   r   s    r   testRecursiveReprAutoFileTests.testRecursiveRepr   sN     tvvvtvv.""<0TVV 1 /.00 /.s"   A0AA0
A-	)A00
A>c                 "   U R                   nU R                  UR                  5       5        U R                  UR                  5        U R	                  [
        UR                  S5        UR                  5         U R                  UR                  5        U R                  [        S5      nU R	                  [        UR                  S5        U R                  UR                  5        UR                  5         U R                  UR                  5        g )Nr*   r[    )r   assertFalseisattyrC   r0   
ValueErrorr|   r$   
assertTruer   r   rF   r_   r   r   s     r   
testErrorsAutoFileTests.testErrors   s    FF$"*affb1		!KK$)QZZ4"		!r!   c                    / SQnU R                   R                  5         U R                  U R                   R                  5        U H/  n[	        U R                   U5      nU R                  [        U5        M1     U R                  [        U R                   R                  5        U R                  [        U R                   R                  [        S5      5        U R                  [        U R                   R                  5        U R                  [        U R                   R                  S5        U R                  [        U R                   R                  5        U R                  [        U R                   R                  S5        U R                  [        U R                   R                  5        U R                  [        U R                   R                  S5        g )N)rQ   r   seekablereadablewritabler|   readallr   r   r+   truncateflushr9   r   r!   )r   r$   r   rC   r2   r0   r   rF   r_   r^   r=   r,   r{   )r   methods
methodnamemethods       r   testMethodsAutoFileTests.testMethods   s(   0 	&!JTVVZ0Fj&1 "
 	)TVV__5*dffooy|D)TVV[[1*dffkk15)TVV\\2*dffllC8)TVV%6%67*dff&7&7=r!   c                      U R                  SS5        U R                  S5        g ! [         aB  nU R                  UR                  S5        U R                  UR                  S5         S nAg S nAff = f)N.r[   Should have raised OSErrorr   )r   failOSErrorassertNotEqualerrnor/   filename)r   es     r   testOpendirAutoFileTests.testOpendir   sa    	4KKS!
 II23	  	.+QZZ--	.s   & 
A28A--A2ntz&test only works on a POSIX-like systemc                 d   [         R                  " S[         R                  5      nU R                  [        5       nU R                  US5        S S S 5        [         R                  " U5        U R                  WR                  R                  [        R                  5        g ! , (       d  f       NY= f)Nr   r[   )r%   r   r   r0   r   r   r$   r/   	exceptionr   EISDIR)r   r   cms      r   testOpenDirFDAutoFileTests.testOpenDirFD   sk    WWS"++&w'2KKC  (
++U\\: ('s   B!!
B/c                 0   ^  [        T 5      U 4S j5       nU$ )Nc                 .  > U R                   n[        R                  " UR                  5       5         T" X5         U R                   R                  5         g ! [         a     g f = f!  U R                   R                  5         f ! [         a     f f = f= fr#   )r   r%   r$   rQ   r   )r   r   funcs     r   wrapper'AutoFileTests.ClosedFD.<locals>.wrapper  st     AHHQXXZ TFFLLN FFLLN s@   A' A 
A$#A$'B)BB
BBBBr   r   r   s   ` r   ClosedFDAutoFileTests.ClosedFD  s     	t
	 

	 r!   c                 0   ^  [        T 5      U 4S j5       nU$ )Nc                   > U R                   n[        R                  " UR                  5       5         T" X5        U R	                  S5         U R                   R                  5         g ! [
         a4  nU R                  UR                  [        R                  5         S nANUS nAff = f! [
         a     g f = f!  U R                   R                  5         f ! [
         a     f f = f= f)Nr   )	r   r%   r$   rQ   r   r   r/   r   EBADF)r   r   r   r   s      r   r   -AutoFileTests.ClosedFDRaises.<locals>.wrapper  s     AHHQXXZ 
T 		67FFLLN  7  %++667  FFLLN sd   A( B9 B) (
B&2*B!B9 !B&&B9 )
B65B69C&;CC&
C# C&"C##C&r   r   s   ` r   ClosedFDRaisesAutoFileTests.ClosedFDRaises  s     	t	 
	 r!   c                 $    UR                  5         g r#   )r$   r   s     r   testErrnoOnCloseAutoFileTests.testErrnoOnClose)  s    		r!   c                 &    UR                  S5        g )N   a)r,   r   s     r   testErrnoOnClosedWrite$AutoFileTests.testErrnoOnClosedWrite-  s    	r!   c                 &    UR                  S5        g Nr   )r=   r   s     r   testErrnoOnClosedSeek#AutoFileTests.testErrnoOnClosedSeek1  s    	q	r!   c                 $    UR                  5         g r#   )r+   r   s     r   testErrnoOnClosedTell#AutoFileTests.testErrnoOnClosedTell5  s    	r!   c                 &    UR                  S5        g r   )r   r   s     r   testErrnoOnClosedTruncate'AutoFileTests.testErrnoOnClosedTruncate9  s    	

1r!   c                 $    UR                  5         g r#   )r   r   s     r   testErrnoOnClosedSeekable'AutoFileTests.testErrnoOnClosedSeekable=      	

r!   c                 $    UR                  5         g r#   )r   r   s     r   testErrnoOnClosedReadable'AutoFileTests.testErrnoOnClosedReadableA  r  r!   c                 $    UR                  5         g r#   )r   r   s     r   testErrnoOnClosedWritable'AutoFileTests.testErrnoOnClosedWritableE  r  r!   c                 $    UR                  5         g r#   )rQ   r   s     r   testErrnoOnClosedFileno%AutoFileTests.testErrnoOnClosedFilenoI  s    	
r!   c                 D    U R                  UR                  5       S5        g )NF)r/   r   r   s     r   testErrnoOnClosedIsatty%AutoFileTests.testErrnoOnClosedIsattyM  s    U+r!   c                     U R                   R                  5         U R                  [        S5      U l         [
        R                  " U R                   R                  5       5        U R                   $ ! [         a     Naf = f)Nr[   )r   r$   r   r   r   r%   rQ   r   s    r   ReopenForReadAutoFileTests.ReopenForReadQ  s[    	FFLLN VS)
!vv	  		s   A1 1
A>=A>c                 F    U R                  5       nUR                  S5        g )Nr9   )r  r|   r   s     r   testErrnoOnClosedRead#AutoFileTests.testErrnoOnClosedReadZ  s     	q	r!   c                 D    U R                  5       nUR                  5         g r#   )r  r   r   s     r   testErrnoOnClosedReadall&AutoFileTests.testErrnoOnClosedReadall_  s     			r!   c                 ^    U R                  5       n[        SS5      nUR                  U5        g )Nrr   s
   xxxxxxxxxx)r  r   r_   )r   r   ru   s      r   testErrnoOnClosedReadinto'AutoFileTests.testErrnoOnClosedReadintod  s'     #w	

1r!   )r   N)1r   r   r   r   r   r'   r4   r>   rI   unittestskipIfr   rU   rb   rj   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r%   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r  r   r   r!   r   r   r      s   *
>,
8 __W@A3 B3 ,))?
E=
F6  ">,
4 __RWW_&NO; P;&                   , ,      r!   r   c                   0    \ rS rSr\R
                  rSrSrg)CAutoFileTestsij  _ior   N)r   r   r   r   r  r   r   r   r   r!   r   r  r  j  s    ZZFJr!   r  c                   0    \ rS rSr\R
                  rSrSrg)PyAutoFileTestsin  _pyior   N)r   r   r   r   r!  r   r   r   r   r!   r   r   r   n  s    \\FJr!   r   c                       \ rS rSrS rS rS rS rS r\	R                  " \R                  " 5       S:g  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g)OtherFileTestsis  c                     U 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                  5         U 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                  5         U 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R                  5       S5        UR                  5         [        R                  S:w  a  [        (       d   U R                  SS5      nU R                  UR                  5       S5        U R                  UR	                  5       S5        [        R                  S	:w  aX  S
[        R                  ;  aD  [        R                  R                  S5      (       d   U R                  UR                  5       S5        U R                  UR                  5       S5        UR                  5         [        R                  " [        5        g ! [         a     N'f = f! [        R                  " [        5        f = f)Nr   FTr[   za+win32z/dev/ttyru   darwinbsd)sunosaix)r   r   r/   r   r   r   r$   r   sysplatformr
   
startswithr   r%   unlinkr   s     r   	testAblesOtherFileTests.testAblesu  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D((u=$$QXXZ6GGIIIf!   	  IIfs1   GK- K &CK- 
K*'K- )K**K- -L	c                     S H>  n U R                  [        U5      nUR                  5         U R                  SU-  5        M@     g ! [         a     MP  f = f)N)r   aUzwU+rwrtz%r is an invalid file mode)r   r   r$   r   r   )r   rB   r   s      r   testInvalidModeStrings%OtherFileTests.testInvalidModeStrings  sR    1D?KK- 			6=> 2  s   A
AAc                     S HD  nU R                  [        US   5       nU R                  UR                  US   5        S S S 5        MF     [        R
                  R                  [        5      (       a  [        R                  " [        5        g g ! , (       d  f       M  = f! [        R
                  R                  [        5      (       a  [        R                  " [        5        f f = f)N))r   rA   )rA   rA   )zwb+rb+)zw+br7  )ru   ab)r8  r8  )ab+r9  )za+br9  )r[   rz   )rz   rz   )r7  r7  )zr+br7  r   r9   )r   r   r/   rB   r%   pathexistsr-  )r   modesr   s      r   testModeStringsOtherFileTests.testModeStrings  s    
	"H
 [[q2a$$QVVU1X6 32H ww~~f%%		&! & 32 ww~~f%%		&! &s#   B"  B B" 
B	B" "AC'c                     U R                  [        [        5      S5      nUR                  5         [        R
                  " [        5        g r   )r   strr   r$   r%   r-  r   s     r   testUnicodeOpenOtherFileTests.testUnicodeOpen  s+    KKFS)		
		&r!   c                    [         R                  " S5      nU R                  US5      n UR                  S5        UR	                  5         U R                  [         S5       nU R                  UR                  5       S5        S S S 5        [        R                  " [         5        g ! , (       d  f       N)= f! [        R                  " [         5        f = f)Nasciir   r   rz   )
r   encoder   r,   r$   r   r/   r|   r%   r-  r   fnr   s      r   testBytesOpenOtherFileTests.testBytesOpen  s      )KKC 	$GGFOGGI<.!  62 / IIl# /. IIl#s#   7B6 !!B%B6 %
B3/B6 6Cutf-8z%test only works for utf-8 filesystemsc                     [         R                  " S5      nU R	                  WS5      n UR                  S5        UR                  5         U R                  [         S5       nU R                  UR                  5       S5        S S S 5        [        R                  " [         5        g ! [         a    U R                  S[         -  5         Nf = f! , (       d  f       NQ= f! [        R                  " [         5        f = f)NrJ  zcould not encode %r to utf-8r   r   rz   )r   rE  UnicodeEncodeErrorskipTestr   r,   r$   r   r/   r|   r%   r-  rF  s      r   testUtf8BytesOpen OtherFileTests.testUtf8BytesOpen  s    	K&&w/B KKC 	&GGFOGGI>40A  62 1 IIn% " 	KMM8>IJ	K 10 IIn%s4   B& 7C "!CC &"C
C
CC C;c                     SnU R                  [        U R                  US5        U R                  [        U R                  [        US5      S5        g )Nzfoo barr   rD  )r0   r   r   r-   )r   fn_with_NULs     r   testConstructorHandlesNULChars-OtherFileTests.testConstructorHandlesNULChars  s?     *dkk;D*dkk5g3NPSTr!   c                    U R                  [        U R                  S5        U R                  [        U R                  [	        5       5        [
        R                  S:X  a.  SS KnU R                  [        UR                  [	        5       5        g g )Nir%  r   )	r0   r   r   r   r   r*  r+  msvcrtget_osfhandle)r   rU  s     r   testInvalidFdOtherFileTests.testInvalidFd  s^    *dkk37'4;;><<7"gv';';[]K #r!   c                     S Hb  nU R                  [        S5       nU R                  USS9nS S S 5        WR                  5         U R	                  WR
                  [        5        Md     g ! , (       d  f       NC= f)N)FTz!bool is used as a file descriptorFr   )assertWarnsRegexRuntimeWarningr   r$   r/   r   __file__)r   r   r   r   s       r   testBooleanFdOtherFileTests.testBooleanFd  sc    B&&~79<>KKEK29 GGIR[[(3 9 9s   A**
A8	c                 B   Sn U R                  [        U5      nUR                  5         U R                  SU-  5        g ! [         aU  nUR
                  S   S:w  a8  [        U5      n[        U;   d  X;  a  U R                  SU-  5         S nAg  S nAg  S nAg S nAff = f)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   testBadModeArgument"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	ABBc           	      l   U R                  [        S5      nUR                  [        [	        [        S5      5      5      5        U R                  UR                  5       S5        UR                  S5        U R                  UR                  5       S5        U R                  UR                  S[        R                  5      S5        UR                  S5        U R                  UR                  5       S5        U R                  UR                  S[        R                  5      S5        UR                  5         g )Nr   r*   r8   r   r:   )r   r   r,   r-   r^   r.   r/   r+   r   r=   rN   SEEK_ENDr$   r   s     r   testTruncateOtherFileTests.testTruncate   s    KK$	ib	*+,2&	

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

21%2;;/4		r!   c                    ^  U 4S jn U" 5         [         R                  " [        5        g ! [         R                  " [        5        f = f)Nc                    > TR                  [        S5      n U R                  [        [	        S5      5      5        U R                  5         TR                  [        S5      n U R                  S5      nU[        [	        S5      5      :w  a  TR                  SU-  5        U R                  5       S:w  a"  TR                  SU R                  5       -  5        U R                  5         U R                  5       S:w  a"  TR                  SU R                  5       -  5        U R                  5         [        R                  R                  [        5      nUS:w  a  TR                  SU-  5        g g )	Nr      zr+r8   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$   r|   r   r+   r   r%   r:  getsize)r   datasizer   s      r   	bug8016317OtherFileTests.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   rq  s   ` r   testTruncateOnWindows$OtherFileTests.testTruncateOnWindows  s,    	G.	KIIfBIIfs	   + Ac                     U R                  [        S5      nUR                  S5        UR                  5         U R                  [        S5      nUR                  S5        UR                  5         U R                  [        S5      nUR	                  5       nUR                  5         U R                  US5         [        R                  " [        5        g !    g = f!  [        R                  " [        5        f !    f = f= f)NrA   s   spamr8  s   eggsrz   s   spameggs)r   r   r,   r$   r|   r/   r%   r-  )r   r   ds      r   
testAppendOtherFileTests.testAppend)  s    	FD)AGGGGGIFD)AGGGGGIFD)AAGGIQ,		&!		&!s0   B6C 9C CC?C87C?8C<:C?c                 J    U R                  [        U R                  SSS5        g )N1r   )r0   rF   r   r   s    r   testInvalidInitOtherFileTests.testInvalidInit;  s    )T[[#q!<r!   c                 x   [        SS9 nU R                  UR                  / 5        U R                  [        U R
                  / 5        U R                  UR                  / 5        U R                  [        U R
                  SS5        U R                  UR                  / 5        S S S 5        g ! , (       d  f       g = f)NTquietz/some/invalid/namer3  )r   r/   warningsr0   rF   r   r   )r   r   s     r   testWarningsOtherFileTests.testWarnings>  s    $'1QZZ,ib9QZZ,j$++7KTRQZZ, (''s   BB++
B9c                    ^^  " S S[         5      m " UU4S jSU R                  5      m[        R                  " [        [        R
                  5      nU R                  TTU5        [        R                  " U5        g )Nc                       \ rS rSrSrg)=OtherFileTests.testUnclosedFDOnException.<locals>.MyExceptioniG  r   Nr   r   r!   r   MyExceptionr  G  s    dr!   r  c                   .   >^  \ rS rSrUUU 4S jrSrU =r$ ):OtherFileTests.testUnclosedFDOnException.<locals>.MyFileIOiH  c                 >   > US:X  a  T" S5      e[         TU ]  X5      $ )Nr   zblocked setting name)super__setattr__)r   r   valuer  MyFileIO	__class__s      r   r  FOtherFileTests.testUnclosedFDOnException.<locals>.MyFileIO.__setattr__I  s(    6>%&<==Xt8EEr!   r   )r   r   r   r   r  r   __classcell__)r  r  r  s   @r   r  r  H  s    F Fr!   r  )	Exceptionr   r%   r   r\  r   r0   r$   )r   r   r  r  s     @@r   testUnclosedFDOnException(OtherFileTests.testUnclosedFDOnExceptionF  sV    *)*	F 	Ft{{ 	F
 WWXr{{++x4
r!   r   N)r   r   r   r   r.  r4  r=  rA  rH  r  r  r*  getfilesystemencodingrN  rR  rW  r]  re  ri  rs  rw  r{  r  r  r   r   r!   r   r#  r#  s  s    (T	?"
$ __S..0G;<>&>&U
L4B 
:$=-	r!   r#  c                   ^    \ rS rSr\R
                  rSr\R                  r\S 5       r	S r
Srg)COtherFileTestsiR  r  c                     [        S5      nU R                  [        U R                  UR                  S-   5        U R                  [        U R                  UR
                  S-
  5        g )N	_testcapir9   )r   r0   rF   r   INT_MAXINT_MIN)r   r  s     r   testInvalidFd_overflow&COtherFileTests.testInvalidFd_overflowW  sP     "+.	)T[[)2C2Ca2GH)T[[)2C2Ca2GHr!   c                 0   U R                  [        S5       nUR                  5       nS S S 5        [        R                  " [        5       nUR                  5       nS S S 5        U R                  WW5        g ! , (       d  f       NT= f! , (       d  f       N2= f)Nrz   )r   r\  r|   r  	open_coder/   )r   r   expectedactuals       r   test_open_codeCOtherFileTests.test_open_code^  sb     [[4(AvvxH )]]8$VVXF %6*	 )($$s   A6
B6
B
Br   N)r   r   r   r   r  r   r   r   r   r  r  r   r   r!   r   r  r  R  s2    ZZFJ88DI I+r!   r  c                   N    \ rS rSr\R
                  rSr\R                  rS rSr	g)PyOtherFileTestsih  r!  c                    U R                  [        S5       nUR                  5       nS S S 5        [        SS9 n[        R
                  " [        5       nUR                  5       nS S S 5        U R                  WW5        U R                  UR                  / 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NV= f! , (       d  f       g = f)Nrz   Tr~  )	r   r\  r|   r   r!  _open_code_with_warningr/   r   r  )r   r   r  r   r  s        r   r  PyOtherFileTests.test_open_codem  s     [[4(AvvxH )$'1..x8A 9Xv.

B/ (' )( 98 ('s.   B$CB5%6C$
B25
C	?C
Cr   N)
r   r   r   r   r!  r   r   r   r  r   r   r!   r   r  r  h  s    \\FJ::D
0r!   r  c                      [         R                  R                  [        5      (       a  [         R                  " [        5        g g r#   )r%   r:  r;  r   r-  r   r!   r   tearDownModuler  z  s(     
ww~~f
		& r!   __main__)(r*  r%   rN   r   r  r   weakrefr   	functoolsr   test.supportr   r   r	   r
   r   r   test.support.os_helperr   r   r   r   test.support.warnings_helperr   test.support.import_helperr   collectionsr   r  r!  r   TestCaser  r   r#  r  r  r  r   mainr   r!   r   <module>r     s     	 	        8 4   
 M M^
]H$5$5 mX%6%6 
\ \~+nh&7&7 +,0~x'8'8 0$ zMMO r!   