B
    18™\ÀL  ã               @   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mZmZmZ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 )é    N)Úarray)Úproxy)Úwraps)ÚTESTFNÚTESTFN_UNICODEÚcheck_warningsÚrun_unittestÚmake_bad_fdÚcpython_onlyÚ	swap_attr)Ú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   úT/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/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   sV   t | jƒ}| ttdƒƒ¡ |  | j ¡ | ¡ ¡ | j ¡  d | _|  t	t
|d¡ d S )Né
   Útell)r   r   ÚwriteÚbytesÚrangeÚassertEqualr   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   Úseek)r   r   r   r   ÚtestSeekTell(   s    zAutoFileTests.testSeekTellc             C   sJ   | j }|  |jd¡ |  |jd¡ x"dD ]}|  ttft||d¡ q(W d S )NÚwbF)ÚmodeÚclosedZoops)r   r   r-   r.   r   ÚAttributeErrorÚ	TypeErrorÚsetattr)r   r   Úattrr   r   r   ÚtestAttributes6   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   r4   r   Úfilenor!   r   Ú_blksize)r   ZblksizeZfstr   r   r   ÚtestBlksizeB   s
    
zAutoFileTests.testBlksizec          	   C   sh   | j  tddddgƒ¡ | j  ¡  tdƒ}|  td¡}| |¡}W d Q R X |  |d¡ |  |d¡ d S )	Nr&   r)   r   éÿ   s   abcdefghÚrs    ÿefghé   )	r   r   r   r   Ú	bytearrayr   r   Úreadintor   )r   Úbar   Únr   r   r   ÚtestReadintoByteArrayL   s    
z#AutoFileTests.testReadintoByteArrayc          	   C   sÄ   | j  tddddgƒ¡ | j  ¡  ttdƒƒ}|  td¡}| |¡}W d Q R X |  	|d¡ |  	|d¡ ttdƒƒj
d	ddgd
}|  td¡}| |¡}W d Q R X |  	t|ƒd¡ |  	|d¡ d S )Nr&   r)   r   r<   s   abcdefghr=   s    ÿefghr>   ÚH)Úshape)r   r   r   r   Ú
memoryviewr?   r   r   r@   r   Úcast)r   Úmr   rB   r   r   r   Ú_testReadintoMemoryviewV   s    
z%AutoFileTests._testReadintoMemoryviewc             C   s$  | j  tddddgƒ¡ | j  ¡  tddƒ}|  td¡}| |¡}W d Q R X |  |tddddddd	d
dgƒ¡ |  |d¡ tddƒ}|  td¡}| |¡}W d Q R X |  |tddddddd	d
dgƒ¡ |  |d¡ tddƒ}|  td¡}| |¡}W d Q R X |  |tddƒ¡ |  |d¡ d S )Nr&   r)   r   r<   ÚBs   abcdefghr=   ée   éf   ég   éh   r>   ÚbéÿÿÿÿÚIs    ÿefgh)	r   r   r   r   r   r   r   r@   r   )r   Úar   rB   r   r   r   Ú_testReadintoArrayf   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 )Ns   123s   456rT   s   123456)r   r   rU   r   r   r   rV   r   )r   rW   rX   r   r   r   ÚtestWritelinesUserList„   s    

z$AutoFileTests.testWritelinesUserListc             C   s@   |   t| jjdddg¡ |   t| jjd ¡ |   t| jjd¡ d S )Nr&   r)   é   Úabc)r   r0   r   rU   )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
abcr=   r   s   hi
s   bye
s   abc)
r   r   r   r   r   r   rV   r*   ÚreadlineÚ	readlines)r   r   r   r   Útest_none_args‘   s    
zAutoFileTests.test_none_argsc             C   s   |   t| jjd¡ d S )NzHello!)r   r0   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Únamer-   r9   r   )r   r   r   r   ÚtestRepr   s    
zAutoFileTests.testReprc          	   C   s`   t  tt j¡}z@| j|ddd&}|  t|ƒd| j|j|j	f ¡ W d Q R X W d t  
|¡ X d S )Nr=   F)Úclosefdz)<%s.FileIO name=%r mode=%r closefd=False>)r   Úopenr   ÚO_RDONLYr   r   rb   rc   rd   r-   r   )r   Úfdr   r   r   r   ÚtestReprNoCloseFD©   s    
"zAutoFileTests.testReprNoCloseFDc          
   C   s@   t | jd| jƒ& |  t¡ t| jƒ W d Q R X W d Q R X d S )Nrd   )r   r   r   ÚRuntimeErrorrb   )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   r=   Ú )r   ÚassertFalseÚisattyr.   r   Ú
ValueErrorrV   r   Ú
assertTruer   r   r0   r@   )r   r   r   r   r   Ú
testErrors¹   s    zAutoFileTests.testErrorsc             C   sê   ddddddddd	d
ddg}| j  ¡  |  | j j¡ x$|D ]}t| j |ƒ}|  t|¡ q:W |  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 )Nr9   ro   ÚseekableÚreadableÚwritablerV   Úreadallr^   r_   r   ÚtruncateÚflushr&   r   ó    )r   r   rq   r.   r!   r   rp   r0   r@   r?   r*   r   rU   )r   ÚmethodsÚ
methodnameÚmethodr   r   r   ÚtestMethodsÇ   s     



zAutoFileTests.testMethodsc          
   C   s^   y|   dd¡ W n> tk
rN } z |  |jd¡ |  |jd¡ W d d }~X Y nX |  d¡ d S )NÚ.r=   r   z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   sP   t  dt j¡}|  t¡}|  |d¡ W d Q R X t  |¡ |  |jj	t	j
¡ d S )Nr~   r=   )r   rg   rh   r   r   r   r   r   Ú	exceptionr   ZEISDIR)r   ri   Úcmr   r   r   ÚtestOpenDirFDé   s
    
zAutoFileTests.testOpenDirFDc                s   t ˆ ƒ‡ fdd„ƒ}|S )Nc                sN   | j }t | ¡ ¡ zˆ | |ƒ W d y| j  ¡  W n tk
rF   Y nX X d S )N)r   r   r   r9   r   )r   r   )Úfuncr   r   Úwrapperô   s    z'AutoFileTests.ClosedFD.<locals>.wrapper)r   )rŠ   r‹   r   )rŠ   r   ÚClosedFDó   s    zAutoFileTests.ClosedFDc                s   t ˆ ƒ‡ fdd„ƒ}|S )Nc                s   | j }t | ¡ ¡ zPyˆ | |ƒ W n2 tk
rV } z|  |jtj¡ W d d }~X Y nX |  d¡ W d y| j  ¡  W n tk
rˆ   Y nX X d S )NzShould have raised OSError)	r   r   r   r9   r   r   r   ÚEBADFrƒ   )r   r   r„   )rŠ   r   r   r‹     s    "z-AutoFileTests.ClosedFDRaises.<locals>.wrapper)r   )rŠ   r‹   r   )rŠ   r   ÚClosedFDRaises  s    zAutoFileTests.ClosedFDRaisesc             C   s   |  ¡  d S )N)r   )r   r   r   r   r   ÚtestErrnoOnClose  s    zAutoFileTests.testErrnoOnClosec             C   s   |  d¡ d S )Nó   a)r   )r   r   r   r   r   ÚtestErrnoOnClosedWrite  s    z$AutoFileTests.testErrnoOnClosedWritec             C   s   |  d¡ d S )Nr   )r*   )r   r   r   r   r   ÚtestErrnoOnClosedSeek  s    z#AutoFileTests.testErrnoOnClosedSeekc             C   s   |  ¡  d S )N)r   )r   r   r   r   r   ÚtestErrnoOnClosedTell!  s    z#AutoFileTests.testErrnoOnClosedTellc             C   s   |  d¡ d S )Nr   )rw   )r   r   r   r   r   ÚtestErrnoOnClosedTruncate%  s    z'AutoFileTests.testErrnoOnClosedTruncatec             C   s   |  ¡  d S )N)rs   )r   r   r   r   r   ÚtestErrnoOnClosedSeekable)  s    z'AutoFileTests.testErrnoOnClosedSeekablec             C   s   |  ¡  d S )N)rt   )r   r   r   r   r   ÚtestErrnoOnClosedReadable-  s    z'AutoFileTests.testErrnoOnClosedReadablec             C   s   |  ¡  d S )N)ru   )r   r   r   r   r   ÚtestErrnoOnClosedWritable1  s    z'AutoFileTests.testErrnoOnClosedWritablec             C   s   |  ¡  d S )N)r9   )r   r   r   r   r   ÚtestErrnoOnClosedFileno5  s    z%AutoFileTests.testErrnoOnClosedFilenoc             C   s   |   | ¡ d¡ d S )NF)r   ro   )r   r   r   r   r   ÚtestErrnoOnClosedIsatty9  s    z%AutoFileTests.testErrnoOnClosedIsattyc             C   sH   y| j  ¡  W n tk
r"   Y nX |  td¡| _ t | j  ¡ ¡ | j S )Nr=   )r   r   r   r   r   r   r9   )r   r   r   r   ÚReopenForRead=  s    zAutoFileTests.ReopenForReadc             C   s   |   ¡ }| d¡ d S )Nr&   )rš   rV   )r   r   r   r   r   ÚtestErrnoOnClosedReadF  s    z#AutoFileTests.testErrnoOnClosedReadc             C   s   |   ¡ }| ¡  d S )N)rš   rv   )r   r   r   r   r   ÚtestErrnoOnClosedReadallK  s    z&AutoFileTests.testErrnoOnClosedReadallc             C   s    |   ¡ }tddƒ}| |¡ d S )NrO   s
   xxxxxxxxxx)rš   r   r@   )r   r   rR   r   r   r   ÚtestErrnoOnClosedReadintoP  s    
z'AutoFileTests.testErrnoOnClosedReadintoN),Ú__name__Ú
__module__Ú__qualname__r   r   r#   r+   r3   r;   rC   rI   rS   rY   rZ   r]   r`   ra   re   rj   rl   rr   r}   r…   ÚunittestÚskipIfr   rd   r‰   rŒ   rŽ   r   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r   r   r   r   r   r      sJ   	

	

	r   c               @   s   e Zd ZejZdZdS )ÚCAutoFileTestsÚ_ioN)rž   rŸ   r    r¤   r   rc   r   r   r   r   r£   V  s   r£   c               @   s   e Zd ZejZdZdS )ÚPyAutoFileTestsÚ_pyioN)rž   rŸ   r    r¦   r   rc   r   r   r   r   r¥   Z  s   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‚y|   dd¡}W n t
k
r   Y npX |  | ¡ d¡ |  | ¡ d¡ tj	d	krjd
tj	krjtj	 d¡sj|  | ¡ d¡ |  | ¡ d¡ | ¡  W d t t¡ X d S )Nr   FTr=   za+Úwin32z/dev/ttyrR   ÚdarwinZbsd)ÚsunosÚaix)r   r   r   rt   ru   rs   r   ro   ÚsysÚplatformr   Ú
startswithr   Úunlink)r   r   r   r   r   Ú	testAblesa  s>    zOtherFileTests.testAblesc          	   C   sN   xHdD ]@}y|   t|¡}W n tk
r.   Y qX | ¡  |  d| ¡ qW d S )N)rm   ZaUzwU+ÚrwÚrtz%r is an invalid file mode)r   r   rp   r   rƒ   )r   r-   r   r   r   r   ÚtestInvalidModeStrings‹  s    
z%OtherFileTests.testInvalidModeStringsc          
   C   s^   z@x:dD ]2}|   t|d ¡}|  |j|d ¡ W d Q R X qW W d tj t¡rXt t¡ X d S )N))r   r,   )r,   r,   )zwb+zrb+)zw+bzrb+)rR   Úab)r´   r´   )zab+zab+)za+bzab+)r=   rT   )rT   rT   )zrb+zrb+)zr+bzrb+r   r&   )r   r   r   r-   r   ÚpathÚexistsr¯   )r   Zmodesr   r   r   r   ÚtestModeStrings–  s    
$zOtherFileTests.testModeStringsc             C   s&   |   ttƒd¡}| ¡  t t¡ d S )Nr   )r   Ústrr   r   r   r¯   )r   r   r   r   r   ÚtestUnicodeOpen¥  s    zOtherFileTests.testUnicodeOpenc          	   C   sŒ   yt  d¡}W n" tk
r0   |  dt  ¡ Y nX |  |d¡}z<| d¡ | ¡  tt dƒ}|  | 	¡ d¡ W d Q R X W d t
 t ¡ X d S )NÚasciizcould not encode %r to asciir   s   abcrT   )r   ÚencodeÚUnicodeEncodeErrorÚskipTestr   r   r   rg   r   rV   r   r¯   )r   Úfnr   r   r   r   ÚtestBytesOpen«  s    
zOtherFileTests.testBytesOpenzutf-8z%test only works for utf-8 filesystemsc          	   C   sŒ   yt  d¡}W n" tk
r0   |  dt  ¡ Y nX |  |d¡}z<| d¡ | ¡  tt dƒ}|  | 	¡ d¡ W d Q R X W d t
 t ¡ X d S )Nzutf-8zcould not encode %r to utf-8r   s   abcrT   )r   r»   r¼   r½   r   r   r   rg   r   rV   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   rp   r   r   )r   Zfn_with_NULr   r   r   ÚtestConstructorHandlesNULCharsË  s    z-OtherFileTests.testConstructorHandlesNULCharsc             C   sJ   |   t| jd¡ |   t| jtƒ ¡ tjdkrFdd l}|   t|jtƒ ¡ d S )Niöÿÿÿr¨   r   )	r   rp   r   r   r	   r¬   r­   ÚmsvcrtZget_osfhandle)r   rÂ   r   r   r   ÚtestInvalidFdÐ  s
    
zOtherFileTests.testInvalidFdc          
   C   s†   d}y|   t|¡}W nV tk
rj } z8|jd dkrZt|ƒ}t|ksL||krZ|  d| ¡ W d d }~X Y nX | ¡  |  d| ¡ d S )NZqwertyr   z&bad error message for invalid mode: %szno error for invalid mode: %s)r   r   rp   Ú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   r?   r   r   r   rw   r*   r6   ÚSEEK_ENDr   )r   r   r   r   r   ÚtestTruncateç  s    

zOtherFileTests.testTruncatec          	      s(   ‡ fdd„}z
|ƒ  W d t  t¡ X d S )Nc                 sÌ   ˆ   td¡} |  ttdƒƒ¡ |  ¡  ˆ   td¡} |  d¡}|ttdƒƒkrZˆ  d| ¡ |  ¡ dkrxˆ  d|  ¡  ¡ |  	¡  |  ¡ dkržˆ  d|  ¡  ¡ |  ¡  t
j t¡}|dkrÈˆ  d| ¡ 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   rV   rƒ   r   rw   r   rµ   Úgetsize)r   ÚdataÚsize)r   r   r   Ú	bug801631ô  s     
z7OtherFileTests.testTruncateOnWindows.<locals>.bug801631)r   r¯   r   )r   rÎ   r   )r   r   ÚtestTruncateOnWindowsó  s    
z$OtherFileTests.testTruncateOnWindowsc             C   s†   zbt tdƒ}| d¡ | ¡  t tdƒ}| d¡ | ¡  t tdƒ}| ¡ }| ¡  |  |d¡ W d yt t¡ W n   Y nX X d S )Nr,   s   spamr´   s   eggsrT   s   spameggs)rg   r   r   r   rV   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   r0   r   )r   r   r   r   ÚtestInvalidInit"  s    zOtherFileTests.testInvalidInitc          	   C   sf   t ddR}|  |jg ¡ |  t| jg ¡ |  |jg ¡ |  t| jdd¡ |  |jg ¡ W d Q R X d S )NT)Úquietz/some/invalid/namer²   )r   r   Úwarningsr   r0   r   rp   )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   ÚMyException.  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 )Nrd   zblocked setting name)ÚsuperÚ__setattr__)r   rd   Úvalue)r×   ÚMyFileIOÚ	__class__r   r   rÙ   0  s    zFOtherFileTests.testUnclosedFDOnException.<locals>.MyFileIO.__setattr__)rž   rŸ   r    rÙ   Ú__classcell__r   )r×   rÛ   )rÜ   r   rÛ   /  s   rÛ   )Ú	Exceptionr   r   rg   Ú__file__rh   r   r   )r   ri   r   )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§   _  s    *r§   c               @   s"   e Zd ZejZdZe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   r0   r   ZINT_MAXZINT_MIN)r   rã   r   r   r   ÚtestInvalidFd_overflow<  s    z&COtherFileTests.testInvalidFd_overflowN)rž   rŸ   r    r¤   r   rc   r
   rä   r   r   r   r   râ   8  s   râ   c               @   s   e Zd ZejZdZdS )ÚPyOtherFileTestsr¦   N)rž   rŸ   r    r¦   r   rc   r   r   r   r   rå   C  s   rå   c            	   C   s0   zt ttttƒ W d tj t¡r*t 	t¡ X d S )N)
r   r£   r¥   râ   rå   r   rµ   r¶   r   r¯   r   r   r   r   Ú	test_mainH  s
    ræ   Ú__main__)r¬   r   r6   r   r¡   r   Úweakrefr   Ú	functoolsr   Ztest.supportr   r   r   r   r	   r
   r   Úcollectionsr   r¤   r¦   r   ÚTestCaser£   r¥   r§   râ   rå   ræ   rž   r   r   r   r   Ú<module>   s.   $  D Z

