o
    HXîh·O  ã                   @   s(  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 d dl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
„ d
ƒZG dd„ deejƒZG dd„ deejƒZG dd„ dƒZG dd„ deejƒZG dd„ deejƒZdd„ Ze dkr’e !¡  dS dS )é    N)Úarray)Úproxy©Úwraps)Úcpython_onlyÚ	swap_attrÚ
gc_collect)ÚTESTFNÚTESTFN_UNICODEÚmake_bad_fd)Úcheck_warnings)ÚUserListc                   @   sz  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Ze ejd)kd*¡d+d,„ ƒZd-d.„ Zd/d0„ Zed1d2„ ƒZed3d4„ ƒZed5d6„ ƒZ ed7d8„ ƒZ!ed9d:„ ƒZ"ed;d<„ ƒZ#ed=d>„ ƒZ$ed?d@„ ƒZ%edAdB„ ƒZ&edCdD„ ƒZ'dEdF„ Z(edGdH„ ƒZ)edIdJ„ ƒZ*edKdL„ ƒZ+dMS )NÚAutoFileTestsc                 C   s   |   td¡| _d S ©NÚw)ÚFileIOr	   Úf©Úself© r   ú:/opt/python-3.10.19/usr/lib/python3.10/test/test_fileio.pyÚsetUp   s   zAutoFileTests.setUpc                 C   s   | j r| j  ¡  t t¡ d S ©N)r   ÚcloseÚosÚremover	   r   r   r   r   ÚtearDown   s   
zAutoFileTests.tearDownc                 C   s\   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   Úpr   r   r   ÚtestWeakRefs    s   

zAutoFileTests.testWeakRefsc                 C   sÆ   | 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   r   r   r   ÚtestSeekTell*   s   zAutoFileTests.testSeekTellc                 C   sF   | j }|  |jd¡ |  |jd¡ dD ]}|  ttft||d¡ qd S )NÚwbF)ÚmodeÚclosedZoops)r   r"   r1   r2   r#   ÚAttributeErrorÚ	TypeErrorÚsetattr)r   r   Úattrr   r   r   ÚtestAttributes8   s   
ÿÿzAutoFileTests.testAttributesc                 C   s@   t j}ttdƒrt | j ¡ ¡}t|d|ƒ}|  | jj	|¡ d S )NÚfstatÚ
st_blksize)
ÚioÚDEFAULT_BUFFER_SIZEÚhasattrr   r8   r   Úfilenor%   r"   Ú_blksize)r   ZblksizeZfstr   r   r   ÚtestBlksizeD   s
   
zAutoFileTests.testBlksizec                 C   sx   | j  tg d¢ƒ¡ | j  ¡  tdƒ}|  td¡}| |¡}W d   ƒ n1 s)w   Y  |  |d¡ |  |d¡ d S )N©r*   r-   r   éÿ   ó   abcdefghÚró    ÿefghé   )	r   r   r    r   Ú	bytearrayr   r	   Úreadintor"   )r   Zbar   Únr   r   r   ÚtestReadintoByteArrayN   s   
ÿz#AutoFileTests.testReadintoByteArrayc                 C   sè   | j  tg d¢ƒ¡ | j  ¡  ttdƒƒ}|  td¡}| |¡}W d   ƒ n1 s+w   Y  |  	|d¡ |  	|d¡ ttdƒƒj
dddgd}|  td¡}| |¡}W d   ƒ n1 s_w   Y  |  	t|ƒd¡ |  	|d¡ d S )	Nr@   rB   rC   rD   rE   ÚHr-   )Úshape)r   r   r    r   Ú
memoryviewrF   r   r	   rG   r"   Úcast)r   Úmr   rH   r   r   r   Ú_testReadintoMemoryviewX   s   
ÿÿz%AutoFileTests._testReadintoMemoryviewc                 C   sD  | j  tg d¢ƒ¡ | j  ¡  tddƒ}|  td¡}| |¡}W d   ƒ n1 s*w   Y  |  |tdg d¢ƒ¡ |  |d¡ tddƒ}|  td¡}| |¡}W d   ƒ n1 s[w   Y  |  |tdg d¢ƒ¡ |  |d¡ td	dƒ}|  td¡}| |¡}W d   ƒ n1 sŒw   Y  |  |td	d
ƒ¡ |  |d¡ d S )Nr@   ÚBrB   rC   )r*   r-   r   rA   ée   éf   ég   éh   rE   Úb)r*   r-   r   éÿÿÿÿrQ   rR   rS   rT   ÚIrD   )	r   r   r    r   r   r   r	   rG   r"   )r   Úar   rH   r   r   r   Ú_testReadintoArrayh   s(   

ÿ
ÿ
ÿz AutoFileTests._testReadintoArrayc                 C   sF   ddg}| j  |¡ | j  ¡  |  td¡| _ | j  ¡ }|  |d¡ d S ©Ns   123s   456Úrbs   123456)r   Ú
writelinesr   r   r	   Úreadr"   ©r   ÚlÚbufr   r   r   ÚtestWritelinesList~   s   

z AutoFileTests.testWritelinesListc                 C   sJ   t ddgƒ}| j |¡ | j ¡  |  td¡| _| j ¡ }|  |d¡ d S rZ   )r   r   r\   r   r   r	   r]   r"   r^   r   r   r   ÚtestWritelinesUserList†   s   

z$AutoFileTests.testWritelinesUserListc                 C   s>   |   t| jjg d¢¡ |   t| jjd ¡ |   t| jjd¡ d S )N)r*   r-   é   Úabc)r#   r4   r   r\   r   r   r   r   ÚtestWritelinesErrorŽ   s   z!AutoFileTests.testWritelinesErrorc                 C   st   | j  d¡ | j  ¡  |  td¡| _ |  | j  d ¡d¡ | j  d¡ |  | j  d ¡d¡ |  | j  	d ¡ddg¡ d S )Ns
   hi
bye
abcrC   r   s   hi
s   bye
ó   abc)
r   r   r   r   r	   r"   r]   r.   ÚreadlineÚ	readlinesr   r   r   r   Útest_none_args“   s   
zAutoFileTests.test_none_argsc                 C   s   |   t| jjd¡ d S )NzHello!)r#   r4   r   r   r   r   r   r   Útest_rejectœ   s   zAutoFileTests.test_rejectc                 C   s|   |   t| jƒd| j| jj| jjf ¡ | j`|   t| jƒd| j| j ¡ | jjf ¡ | j ¡  |   t| jƒd| jf ¡ d S )Nz(<%s.FileIO name=%r mode=%r closefd=True>z&<%s.FileIO fd=%r mode=%r closefd=True>z<%s.FileIO [closed]>)r"   Úreprr   Ú
modulenameÚnamer1   r=   r   r   r   r   r   ÚtestReprŸ   s   ÿÿÿÿ

ÿzAutoFileTests.testReprc              	   C   sŒ   t  tt j¡}z8| j|ddd}|  t|ƒd| j|j|j	f ¡ W d   ƒ n1 s+w   Y  W t  
|¡ d S W t  
|¡ d S t  
|¡ w )NrC   F)Úclosefdz)<%s.FileIO name=%r mode=%r closefd=False>)r   Úopenr	   ÚO_RDONLYr   r"   rk   rl   rm   r1   r   )r   Úfdr   r   r   r   ÚtestReprNoCloseFD«   s   
ÿÿÿûzAutoFileTests.testReprNoCloseFDc              	   C   sz   t | jd| jƒ+ |  t¡ t| jƒ W d   ƒ n1 sw   Y  W d   ƒ d S W d   ƒ d S 1 s6w   Y  d S )Nrm   )r   r   r#   ÚRuntimeErrorrk   r   r   r   r   ÚtestRecursiveReprµ   s   ÿÿ"ÿzAutoFileTests.testRecursiveReprc                 C   s„   | j }|  | ¡ ¡ |  |j¡ |  t|jd¡ | ¡  |  |j¡ |  	t
d¡}|  t|jd¡ |  |j¡ | ¡  |  |j¡ d S )Nr   rC   Ú )r   ZassertFalseÚisattyr2   r#   Ú
ValueErrorr]   r   Ú
assertTruer   r	   r4   rG   ©r   r   r   r   r   Ú
testErrors»   s   zAutoFileTests.testErrorsc                 C   sÒ   g d¢}| j  ¡  |  | j j¡ |D ]}t| j |ƒ}|  t|¡ q|  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)r=   rw   ÚseekableÚreadableÚwritabler]   Úreadallrg   rh   r   ÚtruncateÚflushr*   r   ó    )r   r   ry   r2   r%   r#   rx   r4   rG   rF   r.   r   r\   )r   ÚmethodsZ
methodnameÚmethodr   r   r   ÚtestMethodsÉ   s   
zAutoFileTests.testMethodsc              
   C   sb   z|   dd¡ W n! ty) } z|  |jd¡ |  |jd¡ W Y d }~d S d }~ww |  d¡ d S )NÚ.rC   r   úShould have raised OSError)r   ÚOSErrorÚassertNotEqualÚerrnor"   ÚfilenameÚfail)r   Úer   r   r   ÚtestOpendirß   s   €þzAutoFileTests.testOpendirÚntz&test only works on a POSIX-like systemc                 C   sd   t  dt j¡}|  t¡}|  |d¡ W d   ƒ n1 sw   Y  t  |¡ |  |jj	t	j
¡ d S )Nr†   rC   )r   rp   rq   r#   rˆ   r   r   r"   Ú	exceptionrŠ   ZEISDIR)r   rr   Úcmr   r   r   ÚtestOpenDirFDë   s   ÿ
zAutoFileTests.testOpenDirFDc                    ó   t ˆ ƒ‡ fdd„ƒ}|S )Nc                    sj   | j }t | ¡ ¡ zˆ | |ƒ W z| j  ¡  W d S  ty#   Y d S w z| j  ¡  W w  ty4   Y w w r   )r   r   r   r=   rˆ   rz   ©Úfuncr   r   Úwrapperö   s   ÿþÿz'AutoFileTests.ClosedFD.<locals>.wrapperr   ©r•   r–   r   r”   r   ÚClosedFDõ   s   zAutoFileTests.ClosedFDc                    r“   )Nc                    s®   | j }t | ¡ ¡ z;zˆ | |ƒ W n ty, } z|  |jtj¡ W Y d }~n
d }~ww |  d¡ W z| j  ¡  W d S  tyE   Y d S w z| j  ¡  W w  tyV   Y w w )Nr‡   )	r   r   r   r=   rˆ   r"   rŠ   ÚEBADFrŒ   )r   r   r   r”   r   r   r–     s(   €ÿ
€ÿþÿz-AutoFileTests.ClosedFDRaises.<locals>.wrapperr   r—   r   r”   r   ÚClosedFDRaises  s   zAutoFileTests.ClosedFDRaisesc                 C   ó   |  ¡  d S r   )r   rz   r   r   r   ÚtestErrnoOnClose  ó   zAutoFileTests.testErrnoOnClosec                 C   ó   |  d¡ d S )Nó   a)r   rz   r   r   r   ÚtestErrnoOnClosedWrite  ó   z$AutoFileTests.testErrnoOnClosedWritec                 C   rž   ©Nr   )r.   rz   r   r   r   ÚtestErrnoOnClosedSeek  r¡   z#AutoFileTests.testErrnoOnClosedSeekc                 C   r›   r   )r   rz   r   r   r   ÚtestErrnoOnClosedTell#  r   z#AutoFileTests.testErrnoOnClosedTellc                 C   rž   r¢   )r€   rz   r   r   r   ÚtestErrnoOnClosedTruncate'  r¡   z'AutoFileTests.testErrnoOnClosedTruncatec                 C   r›   r   )r|   rz   r   r   r   ÚtestErrnoOnClosedSeekable+  r   z'AutoFileTests.testErrnoOnClosedSeekablec                 C   r›   r   )r}   rz   r   r   r   ÚtestErrnoOnClosedReadable/  r   z'AutoFileTests.testErrnoOnClosedReadablec                 C   r›   r   )r~   rz   r   r   r   ÚtestErrnoOnClosedWritable3  r   z'AutoFileTests.testErrnoOnClosedWritablec                 C   r›   r   )r=   rz   r   r   r   ÚtestErrnoOnClosedFileno7  r   z%AutoFileTests.testErrnoOnClosedFilenoc                 C   s   |   | ¡ d¡ d S )NF)r"   rw   rz   r   r   r   ÚtestErrnoOnClosedIsatty;  s   z%AutoFileTests.testErrnoOnClosedIsattyc                 C   sF   z| j  ¡  W n	 ty   Y nw |  td¡| _ t | j  ¡ ¡ | j S )NrC   )r   r   rˆ   r   r	   r   r=   r   r   r   r   ÚReopenForRead?  s   ÿzAutoFileTests.ReopenForReadc                 C   s   |   ¡ }| d¡ d S )Nr*   )r«   r]   rz   r   r   r   ÚtestErrnoOnClosedReadH  s   z#AutoFileTests.testErrnoOnClosedReadc                 C   s   |   ¡ }| ¡  d S r   )r«   r   rz   r   r   r   ÚtestErrnoOnClosedReadallM  s   z&AutoFileTests.testErrnoOnClosedReadallc                 C   s    |   ¡ }tddƒ}| |¡ d S )NrU   s
   xxxxxxxxxx)r«   r   rG   )r   r   rX   r   r   r   ÚtestErrnoOnClosedReadintoR  s   
z'AutoFileTests.testErrnoOnClosedReadintoN),Ú__name__Ú
__module__Ú__qualname__r   r   r'   r/   r7   r?   rI   rO   rY   ra   rb   re   ri   rj   rn   rs   ru   r{   r…   rŽ   ÚunittestÚskipIfr   rm   r’   r˜   rš   rœ   r    r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r   r   r   r   r      sh    


	

	









	

r   c                   @   ó   e Zd ZejZdZdS )ÚCAutoFileTestsÚ_ioN)r¯   r°   r±   r¶   r   rl   r   r   r   r   rµ   X  ó    rµ   c                   @   r´   )ÚPyAutoFileTestsÚ_pyioN)r¯   r°   r±   r¹   r   rl   r   r   r   r   r¸   \  r·   r¸   c                   @   s˜   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Ze 	e
 ¡ dkd¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!S )"ÚOtherFileTestsc              	   C   s°  zÑ|   td¡}|  | ¡ d¡ |  | ¡ d¡ |  | ¡ d¡ | ¡  |   td¡}|  | ¡ d¡ |  | ¡ d¡ |  | ¡ d¡ | ¡  |   td¡}|  | ¡ d¡ |  | ¡ d¡ |  | ¡ d¡ |  | ¡ d¡ | ¡  tj	dkrÂz|   dd¡}W n	 t
y…   Y nEw |  | ¡ d¡ |  | ¡ d¡ tj	d	kr®d
tj	vr®tj	 d¡s®|  | ¡ d¡ |  | ¡ d¡ | ¡  W t t¡ d S W t t¡ d S W t t¡ d S t t¡ w )Nr   FTrC   za+Úwin32z/dev/ttyrX   ÚdarwinZbsd)ZsunosZaix)r   r	   r"   r}   r~   r|   r   rw   ÚsysÚplatformrˆ   Ú
startswithr   Úunlinkrz   r   r   r   Ú	testAblesc  sJ   
ü


ÿ
íôzOtherFileTests.testAblesc              	   C   sH   dD ]}z|   t|¡}W n	 ty   Y qw | ¡  |  d| ¡ qd S )N)rv   ZaUzwU+ÚrwÚrtz%r is an invalid file mode)r   r	   rx   r   rŒ   )r   r1   r   r   r   r   ÚtestInvalidModeStrings  s   ÿùz%OtherFileTests.testInvalidModeStringsc              	   C   sˆ   z6dD ]#}|   t|d ¡}|  |j|d ¡ W d   ƒ n1 s!w   Y  qW tj t¡r5t t¡ d S d S tj t¡rCt t¡ w w )N))r   r0   )r0   r0   )zwb+úrb+)zw+brÅ   )rX   Úab)rÆ   rÆ   )úab+rÇ   )za+brÇ   )rC   r[   )r[   r[   )rÅ   rÅ   )zr+brÅ   r   r*   )r   r	   r"   r1   r   ÚpathÚexistsrÀ   )r   Zmodesr   r   r   r   ÚtestModeStrings˜  s   ÿ€ûÿÿzOtherFileTests.testModeStringsc                 C   s&   |   ttƒd¡}| ¡  t t¡ d S r   )r   Ústrr	   r   r   rÀ   rz   r   r   r   ÚtestUnicodeOpen§  s   zOtherFileTests.testUnicodeOpenc              	   C   ó¶   zt  d¡}W n ty   |  dt  ¡ Y nw |  |d¡}z6| d¡ | ¡  tt dƒ}|  | 	¡ d¡ W d   ƒ n1 s@w   Y  W t
 t ¡ d S W t
 t ¡ d S t
 t ¡ w )NÚasciizcould not encode %r to asciir   rf   r[   )r	   ÚencodeÚUnicodeEncodeErrorÚskipTestr   r   r   rp   r"   r]   r   rÀ   ©r   Úfnr   r   r   r   ÚtestBytesOpen­  s   ÿ
ÿýzOtherFileTests.testBytesOpenúutf-8z%test only works for utf-8 filesystemsc              	   C   rÍ   )NrÕ   zcould not encode %r to utf-8r   rf   r[   )r
   rÏ   rÐ   rÑ   r   r   r   rp   r"   r]   r   rÀ   rÒ   r   r   r   ÚtestUtf8BytesOpen¼  s   ÿ
ÿýz OtherFileTests.testUtf8BytesOpenc                 C   s2   d}|   t| j|d¡ |   t| jt|dƒd¡ d S )Nzfoo barr   rÎ   )r#   rx   r   r    )r   Zfn_with_NULr   r   r   ÚtestConstructorHandlesNULCharsÍ  s   z-OtherFileTests.testConstructorHandlesNULCharsc                 C   sN   |   t| jd¡ |   t| jtƒ ¡ tjdkr%dd l}|   t|jtƒ ¡ d S d S )Niöÿÿÿr»   r   )	r#   rx   r   rˆ   r   r½   r¾   ÚmsvcrtZget_osfhandle)r   rØ   r   r   r   ÚtestInvalidFdÒ  s   
þzOtherFileTests.testInvalidFdc              
   C   s¦   d}z|   t|¡}W n; tyE } z/|jd dkr3t|ƒ}t|v s%||vr:|  d| ¡ W Y d }~d S W Y d }~d S W Y d }~d S d }~ww | ¡  |  d| ¡ d S )NZqwertyr   z&bad error message for invalid mode: %szno error for invalid mode: %s)r   r	   rx   ÚargsrË   rŒ   r   )r   Zbad_moder   ÚmsgÚsr   r   r   ÚtestBadModeArgumentÙ  s   ý€ýz"OtherFileTests.testBadModeArgumentc                 C   sž   |   td¡}| tttdƒƒƒ¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ |  | 	dt
j¡d¡ | d¡ |  | ¡ d¡ |  | 	dt
j¡d¡ | ¡  d S )Nr   r   r)   r   r+   )r   r	   r   r    rF   r!   r"   r   r€   r.   r:   ÚSEEK_ENDr   rz   r   r   r   ÚtestTruncateé  s   

zOtherFileTests.testTruncatec              	      s0   ‡ fdd„}z|ƒ  W t  t¡ d S t  t¡ w )Nc                     sÐ   ˆ   td¡} |  ttdƒƒ¡ |  ¡  ˆ   td¡} |  d¡}|ttdƒƒkr-ˆ  d| ¡ |  ¡ dkr<ˆ  d|  ¡  ¡ |  	¡  |  ¡ dkrOˆ  d|  ¡  ¡ |  ¡  t
j t¡}|dkrfˆ  d| ¡ d S d S )	Nr   é   zr+r)   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   r   r   Ú	bug801631ö  s"   
ÿz7OtherFileTests.testTruncateOnWindows.<locals>.bug801631)r   rÀ   r	   )r   rä   r   r   r   ÚtestTruncateOnWindowsõ  s   z$OtherFileTests.testTruncateOnWindowsc                 C   sš   z?t tdƒ}| d¡ | ¡  t tdƒ}| d¡ | ¡  t tdƒ}| ¡ }| ¡  |  |d¡ W zt t¡ W d S    Y d S zt t¡ W w    Y w )Nr0   s   spamrÆ   s   eggsr[   s   spameggs)rp   r	   r   r   r]   r"   r   rÀ   )r   r   Údr   r   r   Ú
testAppend  s&   




ýzOtherFileTests.testAppendc                 C   s   |   t| jddd¡ d S )NÚ1r   )r#   r4   r   r   r   r   r   ÚtestInvalidInit$  s   zOtherFileTests.testInvalidInitc                 C   s|   t dd/}|  |jg ¡ |  t| jg ¡ |  |jg ¡ |  t| jdd¡ |  |jg ¡ W d   ƒ d S 1 s7w   Y  d S )NT©Úquietz/some/invalid/namerÃ   )r   r"   Úwarningsr#   r4   r   rx   )r   r   r   r   r   ÚtestWarnings'  s   "ûzOtherFileTests.testWarningsc                    sR   G dd„ dt ƒ‰ G ‡ ‡fdd„d| jƒ‰t ttj¡}|  ˆ ˆ|¡ t |¡ d S )Nc                   @   s   e Zd ZdS )z=OtherFileTests.testUnclosedFDOnException.<locals>.MyExceptionN)r¯   r°   r±   r   r   r   r   ÚMyException0  s    rî   c                       s    e Zd Z‡‡‡ fdd„Z‡  ZS )z:OtherFileTests.testUnclosedFDOnException.<locals>.MyFileIOc                    s"   |dkrˆ dƒ‚t ˆ| ƒ ||¡S )Nrm   zblocked setting name)ÚsuperÚ__setattr__)r   rm   Úvalue)rî   ÚMyFileIOÚ	__class__r   r   rð   2  s   zFOtherFileTests.testUnclosedFDOnException.<locals>.MyFileIO.__setattr__)r¯   r°   r±   rð   Ú__classcell__r   ©rî   rò   )ró   r   rò   1  s    rò   )Ú	Exceptionr   r   rp   Ú__file__rq   r#   r   )r   rr   r   rõ   r   ÚtestUnclosedFDOnException/  s
   z(OtherFileTests.testUnclosedFDOnExceptionN)r¯   r°   r±   rÁ   rÄ   rÊ   rÌ   rÔ   r²   r³   r½   ÚgetfilesystemencodingrÖ   r×   rÙ   rÝ   rß   rå   rç   ré   rí   rø   r   r   r   r   rº   a  s&    *ÿ
rº   c                   @   s*   e Zd ZejZdZedd„ ƒZdd„ ZdS )ÚCOtherFileTestsr¶   c                 C   s8   dd l }|  t| j|jd ¡ |  t| j|jd ¡ d S )Nr   r*   )Ú	_testcapir#   r4   r   ZINT_MAXZINT_MIN)r   rû   r   r   r   ÚtestInvalidFd_overflow?  s   z&COtherFileTests.testInvalidFd_overflowc                 C   sv   |   td¡}| ¡ }W d   ƒ n1 sw   Y  t t¡}| ¡ }W d   ƒ n1 s.w   Y  |  ||¡ d S )Nr[   )r   r÷   r]   r¶   Ú	open_coder"   )r   r   ÚexpectedÚactualr   r   r   Útest_open_codeF  s   
ÿ
ÿzCOtherFileTests.test_open_codeN)	r¯   r°   r±   r¶   r   rl   r   rü   r   r   r   r   r   rú   ;  s    
rú   c                   @   s   e Zd ZejZdZdd„ ZdS )ÚPyOtherFileTestsr¹   c              	   C   s°   |   td¡}| ¡ }W d   ƒ n1 sw   Y  tdd/}t t¡}| ¡ }W d   ƒ n1 s4w   Y  |  ||¡ |  |jg ¡ W d   ƒ d S 1 sQw   Y  d S )Nr[   Trê   )	r   r÷   r]   r   r¹   Z_open_code_with_warningr"   r‰   rì   )r   r   rþ   r   rÿ   r   r   r   r   T  s   
ÿ
ÿ"ûzPyOtherFileTests.test_open_codeN)r¯   r°   r±   r¹   r   rl   r   r   r   r   r   r  P  s    r  c                   C   s   t j t¡rt  t¡ d S d S r   )r   rÈ   rÉ   r	   rÀ   r   r   r   r   ÚtearDownModulea  s   ÿr  Ú__main__)"r½   r   r:   rŠ   r²   r   Úweakrefr   Ú	functoolsr   Ztest.supportr   r   r   Ztest.support.os_helperr	   r
   r   Ztest.support.warnings_helperr   Úcollectionsr   r¶   r¹   r   ZTestCaserµ   r¸   rº   rú   r  r  r¯   Úmainr   r   r   r   Ú<module>   s6     E [ÿ