a
    ze6                     @   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re  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	   )/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 s0    Y  t |d|n}t|D ]T}| |d| | j |t krt t }t	d||f t
jd t
j  qW 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	   qW d    n1 s0    Y  d S )Nr   TmodeZ
allowZip64d     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 s0    Y  | t| | W d    n1 s0    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 s0    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