
    9bh                     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mZm	Z	  ej                  d      Z ej                  d      ZdZdZ eed      5 Z ee      j'                         Zddd       ej+                         dz   Z G d	 d
ej.                        Zedk(  r ej4                          yy# 1 sw Y   IxY w)    N)support)import_helper	os_helperwarnings_helper	_testcapi_io   rb
c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	CAPIFileTestc                    t         j                  }t        }t        |d      5 }|j	                         }|j                  d        |||ddt        t        t        d      }	 | j                  |t        j                         | j                  |j                         t        j                                |j                          |j                  d        |||ddt        t        t        d      }	 | j                  |t        j                         | j                  |j                         t        j                                |j                          |j                  d        |||ddddt        d      }	 | j                  |t        j                          | j                  |j"                  d       | j                  |j$                  d       | j                  |j                         t&               |j                          	 d d d        y # |j                          w xY w# |j                          w xY w# |j                          w xY w# 1 sw Y   y xY w)Nr
   r   i   rr	   utf-8replace)r   pyfile_fromfd__file__openfilenoseekNULLassertIsInstancer   FileIOassertEqualreadline
FIRST_LINEencodecloseBufferedReaderTextIOWrapperencodingerrorsFIRST_LINE_NORM)selfr   filenamefpfdobjs         B/opt/python-3.12.12/usr/lib/python3.12/test/test_capi/test_file.pytest_pyfile_fromfdzCAPIFileTest.test_pyfile_fromfd   s   !//(D!RB GGAJHdAtT4KC%%c3::6  1B1B1DE		 GGAJHdD$dANC%%c3+=+=>  1B1B1DE		 GGAJHc1 'D!=C%%c3+<+<=  w7  Y7  A		? "! 		 		 		? "!sV   =I!AH3<I0AH"4I7A<H73IHI"H44I7I		IIc                 |   t         j                  }t        t        d      5 }|j	                  d       | j                   ||d      t        j                  d             |j	                  d       | j                   ||d      t               |j	                  d       | j                   ||d      t        d d        d d d        t        t        d      5 }|j	                  d       | j                   ||d      t        j                  d      j                                |j	                  d       | j                   ||d      t        j                                |j	                  d       | j                   ||d      t        j                         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
   )
r   pyfile_getliner   r   r   r   r#   rstripr   r   )r$   r.   r&   s      r)   test_pyfile_getlinez CAPIFileTest.test_pyfile_getline9   sg    #11 (C BGGAJ^B3,33D9;GGAJ^B2,.GGAJ^B2,Ra02 ! (D!RGGAJ^B3'..t4;;=?GGAJ^B2'..02GGAJ^B2'..0!46 "! !  "!s   BF&CF2&F/2F;c                 b   t         j                  }t        j                         5 }| j	                   |dj                         |      d       | j                  t              5   |d|       d d d        | j                  t              5   |dj                  dd      |       d d d        |j                         }| j	                  |d       d d d        | j                  t              5   |dt               d d d        y # 1 sw Y   xY w# 1 sw Y   kxY w# 1 sw Y   MxY w# 1 sw Y   y xY w)Nu
   aé€􏿿r      u   r   surrogatepasss   abc)r   pyfile_writestringioStringIOr   r   assertRaisesUnicodeDecodeErrorgetvalueSystemErrorr   )r$   writestrr&   texts       r)   test_pyfile_writestringz$CAPIFileTest.test_pyfile_writestringV   s    //[[]bX&=&D&D&FKQO""#56"% 7""#56/BBG 7 ;;=DT#:;  {+VT" ,+ 7666	 ] ,+sG   =D"
D,D	D#*D*D%D
	DD	DD"%D.c                    t         j                  }d}t        j                         5 }| j	                   |d||      d        |t
        ||       | j	                   |d|d      d        |t
        |d       |j                         }| j	                  |d       d d d        ddt               fD ]E  }| j                  |      5  | j                  t              5   |d||       d d d        d d d        G | j                  t              5   |dt
        d       d d d        y # 1 sw Y   xY w# 1 sw Y   LxY w# 1 sw Y   xY w# 1 sw Y   y xY w)	Nr	   rawr   reprzraw<NULL>'repr'<NULL>{   abc)file)r   pyfile_writeobjectr5   r6   r   r   r9   objectsubTestr7   AttributeError	TypeError)r$   writeobjectPy_PRINT_RAWr&   r<   invalid_files         r)   test_pyfile_writeobjectz$CAPIFileTest.test_pyfile_writeobjectg   s     22[[]b[LA1Eb,/ [Q7;b!$;;=DT#:;  !%2L<0&&~6|\B 7 10 3
 y)tQ' *)% ] 76 10 *)s<   A3D$D<D0%D<E$D-0D95D<<E	Ec                    t         j                  }| j                   |d      d       | j                   |d      d       t        t        d      5 }| j                   ||      |j                                d d d        | j                   |d      d       | j                   |d      d        G d d      }| j                  t              5   |d	       d d d        | j                  t              5   | |d	             d d d        | j                  t              5   | |d
             d d d        ddgt               fD ]C  }| j                  |      5  | j                  t              5   ||       d d d        d d d        E y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ExY w# 1 sw Y   xY w)NrA   r   r
   FTr	   c                       e Zd Zd Zd Zy)=CAPIFileTest.test_pyobject_asfiledescriptor.<locals>.FakeFilec                     || _         y Nr'   )r$   r'   s     r)   __init__zFCAPIFileTest.test_pyobject_asfiledescriptor.<locals>.FakeFile.__init__   s	        c                     | j                   S rQ   rR   )r$   s    r)   r   zDCAPIFileTest.test_pyobject_asfiledescriptor.<locals>.FakeFile.fileno   s    wwrT   N)__name__
__module____qualname__rS   r    rT   r)   FakeFilerO      s    rT   rZ   r,   r<   stringlist)r(   )r   pyobject_asfiledescriptorr   r   r   r   r7   
ValueErrorrH   rE   rF   )r$   asfdr&   rZ   r(   s        r)   test_pyobject_asfiledescriptorz+CAPIFileTest.test_pyobject_asfiledescriptor   sn   
 22cC(a!$(D!RT"Xryy{3 " 	ea(dQ'	 	 z*H +z*" + y)&!" * vh1C#&&&y1I 2 '& 2/ "! +*** *) 21 '&sT   'F	F5F&!F2G
1	F>:G
FF#&F/2F;>GG

G	c                    t         j                  } |t              }| j                  |j                  d       | j                  |j                         | j                  |j                  d       | j                  |j                         t               | j                  |j                         t        j                  t                     | j                  |j                                | j                  |j                                | j                  |j                  d       t        j                  | t        |             y )NFw)r   pyfile_newstdprinter	STDOUT_FDr   closedassertIsNoner!   moder   isattyosflushr   r   check_disallow_instantiationtype)r$   rc   rC   s      r)   test_pyfile_newstdprinterz&CAPIFileTest.test_pyfile_newstdprinter   s    (==#I.e,$--(C(	2		)(<= 	$**,' 	$**,'e,,,T4:>rT   c                    t         j                  }t        j                  }| j	                  t        j
                  |       	 t        j                  t              }	 t        |d      5 }|j                         }t        j                  |t                |t              }| j                  |j                  d      d       | j                  |j                  d      d       d d d        t        j                  t               t        j                   |       t        |d      5 }| j                  |j#                         d       d d d        y # t        $ r}| j                  d|       Y d }~d }~ww xY w# 1 sw Y   xY w# t        j                  t               t        j                   |       w xY w# 1 sw Y   y xY w)	Nzos.dup() failed with wbr<      u   []   r   ztext[\udc80])r   rc   r   TESTFN
addCleanupunlinkri   duprd   OSErrorskipTestr   r   dup2r   writer   read)r$   rc   r%   
old_stdoutexcr&   r'   rC   s           r)   test_pyfile_newstdprinter_writez,CAPIFileTest.test_pyfile_newstdprinter_write   sK   (==##	(((3	;	*J
	!h% YY[I&+I6  F!3Q7   J!7; & GGJ	*HHZ (C BRWWY8 ! )  	;MM1#9::	;
 &% GGJ	*HHZ   sI   E F (A9E9!F $!F9	E6E11E69F>F 1F69GN)
rV   rW   rX   r*   r0   r=   rL   r`   rm   r}   rY   rT   r)   r   r      s'    #J6:#"(8$P?*9rT   r   __main__)r5   ri   unittestwarningstestr   test.supportr   r   r   import_moduler   r   r   rd   r   r   r&   nextdecoder   r/   r#   TestCaser   rV   mainrY   rT   r)   <module>r      s    	 	    B B (M''4	!m!!%(		(DRb"J ##%,K98$$ K9f zHMMO q s   B11B: