o
    IXho                     @   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 d dl
mZ ejZed Zd	ZG d
d dejZG dd dejZedkrWe  dS dS )    )supportZextralargefilez>test requires loads of disk-space bytes and a long time to runN)TemporaryFile)	os_helper)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    d S 1 s)w   Y  d S )Nc                 s   s    | ]}d | V  qdS )zTest of zipfile line %d.N ).0ir	   r	   =/opt/python-3.10.19/usr/lib/python3.10/test/test_zipfile64.py	<genexpr>    s    z,TestsWithSourceFile.setUp.<locals>.<genexpr>i@B 
asciiwb)rangejoinencodedataopenTESTFNwrite)selfZline_genfpr	   r	   r   setUp   s
   "zTestsWithSourceFile.setUpc                 C   s2  t |d|A}dt| j }t t }t|D ]'}|d| | j |t kr@t t }t	d||f t
jd t
j  qW d    n1 sKw   Y  t |d|8}t|D ]*}| |d| | j |t krt t }t	d||f t
jd t
j  q\W d    d S 1 sw   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'   s@   

"zTestsWithSourceFile.zipTestc                 C   R   t  }| |tj | |j W d    n1 sw   Y  | ttj d S N)r   r.   r   Z
ZIP_STOREDassertFalseclosedTESTFN2r   r+   r	   r	   r   
testStoredF   s
   zTestsWithSourceFile.testStoredc                 C   r/   r0   )r   r.   r   ZIP_DEFLATEDr1   r2   r3   r4   r	   r	   r   testDeflatedN   s
   z TestsWithSourceFile.testDeflatedc                 C   s(   t tfD ]}tj|rt| qd S r0   )r   r3   ospathexistsremove)r   Zfnamer	   r	   r   tearDownW   s
   
zTestsWithSourceFile.tearDownN)	__name__
__module____qualname__r   r.   r5   r   r7   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,}d|_d}t|D ]}|d| d|d d	   q| t| | W d    n1 s7w   Y  t jtd
d0}| t| | t|D ]}|	d| 
d}| |d|d d	   qRW d    d S 1 svw   Y  d S )Nr   TmodeZ
allowZip64d     foo%08d%d   9   r   rB   r   )r   r   r   debugr   r$   r)   r    namelistr*   decode)r   zipfnumfilesr   zipf2contentr	   r	   r   testMoreThan64kFiles^   s   "zOtherTests.testMoreThan64kFilesc              	   C   sv  t jtdddT}d|_d}t|D ]}|d| d|d d	   q| t| | | 	t j
 |d| d
 W d    n1 sFw   Y  | t| | W d    n1 s_w   Y  t jtddd=}d|_| t| | | 	t j
 |d| d
 W d    n1 sw   Y  | t| | W d    n1 sw   Y  t jtddd7}d|_| t| | d}t||D ]}|d| d|d d	   q| t| | W d    n1 sw   Y  t jtdd1}| t| | t|D ]}|d| d}| |d|d d	   qW d    d S 1 s4w   Y  d S )Nr   FrA   rC   i  rE   rF   rG   rH       aTrD   r   rI   r   )r   r   r   rJ   r   r$   r)   r    rK   ZassertRaisesZLargeZipFiler*   rL   )r   rM   rN   r   Z	numfiles2rO   rP   r	   r	   r   testMoreThan64kFilesAppendn   sD   
$z%OtherTests.testMoreThan64kFilesAppendc                 C   s   t t t t d S r0   )r   unlinkr   r3   )r   r	   r	   r   r<      s   
zOtherTests.tearDownN)r=   r>   r?   rQ   rT   r<   r	   r	   r	   r   r@   ]   s     r@   __main__)testr   Zrequiresr   r8   Zunittestr!   r&   tempfiler   Ztest.supportr   r   r   r3   r#   ZTestCaser   r@   r=   mainr	   r	   r	   r   <module>   s&   @5