a
     Rîh6  ã                   @   s    d dl mZ e dd¡ 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mZ ed ZdZG d	d
„ d
ejƒZG dd„ dejƒZedkrœe ¡  dS )é    )ÚsupportZextralargefilez>test requires loads of disk-space bytes and a long time to runN)ÚTemporaryFile)ÚTESTFNÚrequires_zlibÚ2é<   c                   @   s:   e Zd Zdd„ Zdd„ Zdd„ Zeƒ dd„ ƒZd	d
„ ZdS )ÚTestsWithSourceFilec                 C   s^   dd„ t dƒD ƒ}d |¡ d¡| _ttdƒ}| | j¡ W d   ƒ n1 sP0    Y  d S )Nc                 s   s   | ]}d | V  qdS )zTest of zipfile line %d.N© )Ú.0Úir	   r	   ú;/opt/python-3.9.24/usr/lib/python3.9/test/test_zipfile64.pyÚ	<genexpr>   ó    z,TestsWithSourceFile.setUp.<locals>.<genexpr>i@B Ú
ÚasciiÚwb)ÚrangeÚjoinÚencodeÚdataÚopenr   Úwrite)ÚselfZline_genÚfpr	   r	   r   ÚsetUp   s    zTestsWithSourceFile.setUpc                 C   s2  t  |d|¡‚}dt| jƒ }t ¡ t }t|ƒD ]N}| d| | j¡ |t ¡ kr2t ¡ t }t	d||f t
jd t
j ¡  q2W d   ƒ n1 s–0    Y  t  |d|¡n}t|ƒD ]T}|  | d| ¡| j¡ |t ¡ kr¸t ¡ t }t	d||f t
jd t
j ¡  q¸W d   ƒ n1 s$0    Y  d S )NÚwl        ztestfn%dz/  zipTest still writing %d of %d, be patient...)ÚfileÚrz/  zipTest still reading %d of %d, be patient...)ÚzipfileÚZipFileÚlenr   ÚtimeÚ	monotonicÚ_PRINT_WORKING_MSG_INTERVALr   ÚwritestrÚprintÚsysÚ
__stdout__ÚflushÚassertEqualÚread)r   ÚfÚcompressionZzipfpZ	filecountZ	next_timeÚnumr	   r	   r   ÚzipTest%   s4    ÿþ*ÿþzTestsWithSourceFile.zipTestc                 C   sR   t ƒ *}|  |tj¡ |  |j¡ W d   ƒ n1 s60    Y  |  ttj¡ d S ©N)r   r.   r   Z
ZIP_STOREDÚassertFalseÚclosedÚTESTFN2©r   r+   r	   r	   r   Ú
testStoredD   s    *zTestsWithSourceFile.testStoredc                 C   sR   t ƒ *}|  |tj¡ |  |j¡ W d   ƒ n1 s60    Y  |  ttj¡ d S r/   )r   r.   r   ÚZIP_DEFLATEDr0   r1   r2   r3   r	   r	   r   ÚtestDeflatedL   s    *z TestsWithSourceFile.testDeflatedc                 C   s(   t tfD ]}tj |¡rt |¡ qd S r/   )r   r2   ÚosÚpathÚexistsÚremove)r   Zfnamer	   r	   r   ÚtearDownU   s    zTestsWithSourceFile.tearDownN)	Ú__name__Ú
__module__Ú__qualname__r   r.   r4   r   r6   r;   r	   r	   r	   r   r      s   	
r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú
OtherTestsc                 C   sø   t jtdddX}d|_d}t|ƒD ] }| d| d|d d	  ¡ q$|  t| ¡ ƒ|¡ W d   ƒ n1 sn0    Y  t jtd
d^}|  t| ¡ ƒ|¡ t|ƒD ]0}| 	d| ¡ 
d¡}|  |d|d d	  ¡ q¤W d   ƒ n1 sê0    Y  d S )Nr   T©ÚmodeZ
allowZip64éd   é € úfoo%08dú%dé   é9   r   ©rA   r   )r   r   r   Údebugr   r$   r)   r    Únamelistr*   Údecode)r   ÚzipfÚnumfilesr   Úzipf2Úcontentr	   r	   r   ÚtestMoreThan64kFiles\   s    2zOtherTests.testMoreThan64kFilesc              	   C   s|  t jtddd¨}d|_d}t|ƒD ] }| d| d|d d	  ¡ q$|  t| ¡ ƒ|¡ |  	t j
¡  | d| d
¡ W d   ƒ n1 sŒ0    Y  |  t| ¡ ƒ|¡ W d   ƒ n1 s¾0    Y  t jtddd|}d|_|  t| ¡ ƒ|¡ |  	t j
¡  | d| d
¡ W d   ƒ n1 s(0    Y  |  t| ¡ ƒ|¡ W d   ƒ n1 s\0    Y  t jtdddp}d|_|  t| ¡ ƒ|¡ d}t||ƒD ]"}| d| d|d d	  ¡ q |  t| ¡ ƒ|¡ W d   ƒ n1 sî0    Y  t jtdd`}|  t| ¡ ƒ|¡ t|ƒD ]2}| d| ¡ d¡}|  |d|d d	  ¡ q$W d   ƒ n1 sn0    Y  d S )Nr   Fr@   rB   iÿÿ  rD   rE   rF   rG   r   ÚaTrC   r   rH   r   )r   r   r   rI   r   r$   r)   r    rJ   ZassertRaisesZLargeZipFiler*   rK   )r   rL   rM   r   Z	numfiles2rN   rO   r	   r	   r   ÚtestMoreThan64kFilesAppendl   s6    .204 4z%OtherTests.testMoreThan64kFilesAppendc                 C   s   t  t¡ t  t¡ d S r/   )r   Úunlinkr   r2   )r   r	   r	   r   r;   Œ   s    
zOtherTests.tearDownN)r<   r=   r>   rP   rR   r;   r	   r	   r	   r   r?   [   s    r?   Ú__main__)Útestr   Zrequiresr   r7   Zunittestr!   r&   Útempfiler   Ztest.supportr   r   r2   r#   ZTestCaser   r?   r<   Úmainr	   r	   r	   r   Ú<module>   s   þ@5