U
    /e
                     @   s   d dl Z d dlmZ d dlZd dlmZ d dlmZ ej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S )    N)MutableMapping)Zip)
utils_testc                 c   s   | d V  d S )Nztmp.zip )Ztmp_pathZcheck_fd_leaksr   r   7/tmp/pip-unpacked-wheel-z3s6s24u/zict/tests/test_zip.pyfn
   s    r   c                 C   s   t | }t|tst|rtt|t|   kr>g ksDn tt| g ksXtt| g ksltd|d< t|t|   krdgksn tt| dgkstt| dgkst|d dkst|  t	j
| dd}|ddkstd|d< |d dkstd S )N   123x)r	   r   rmode   456y)r   
isinstancer   AssertionErrorlistkeysvaluesitemsflushzipfileZipFilereadr   zzzr   r   r   test_simple   s     &(r   c              	   C   s*   t | }tt d|d< W 5 Q R X d S )N{   r	   )r   pytestraises	TypeErrorr   r   r   r   r   test_setitem_typeerror&   s    r"   c              	   C   s@   t | }d|d< W 5 Q R X tj| dd}|ddks<td S )Nr   r	   r
   r   )r   r   r   r   r   r   r   r   r   test_contextmanager,   s    
r#   c              	   C   s*   t | }tt |d  W 5 Q R X d S )Nr	   )r   r   r   KeyErrorr!   r   r   r   test_missing_key4   s    r%   c              	   C   sZ   t | }d|d< |  tj| dd}|ddks8ttt d|d< W 5 Q R X d S )Nr   r	   r
   r   r   )	r   closer   r   r   r   r   r   IOErrorr   r   r   r   
test_close;   s    r(   c              	   C   sL   t d}t| }||d< W 5 Q R X t| }|d dks>tW 5 Q R X d S Nr   r	   )	bytearrayr   r   r   datar   r   r   r   test_bytearrayH   s
    

r-   c              	   C   sL   t d}t| }||d< W 5 Q R X t| }|d dks>tW 5 Q R X d S r)   )
memoryviewr   r   r+   r   r   r   test_memoryviewQ   s
    

r/   c              	   C   s   t | tstt|  d| d< d| d< t| dks8t| d dksHtt| ddg d| ksdtd| ksptd| ks|ttt	 | d  W 5 Q R X d	S )
z_Shorter version of utils_test.check_mapping, as zip supports neither update nor
    delete
    r   abc   12xyz   )r0   r   )r2   r1   defN)
r   r   r   r   Zcheck_empty_mappinglenZcheck_itemsr   r   r$   )r   r   r   r   check_mappingZ   s    
r6   c              	   C   s*   t | }t| t| W 5 Q R X dS )z+
    Test mapping interface for Zip().
    N)r   r6   r   Zcheck_closingr!   r   r   r   test_mappingp   s    
r7   c              
   C   sz   t | h}d|d< tt |d= W 5 Q R X tt d|d< W 5 Q R X t|dks\t|d dksltW 5 Q R X d S )Nr   r	   r      )r   r   r   NotImplementedErrorr5   r   r!   r   r   r   test_no_delete_updatey   s    
r:   c              	   C   s0   t | }tj|dd t| W 5 Q R X d S )NF)Zhas_del)r   r   Zcheck_bad_key_typesZcheck_bad_value_typesr!   r   r   r   test_bad_types   s    
r;   )r   collections.abcr   r   Zzictr   Z
zict.testsr   Zfixturer   r   r"   r#   r%   r(   r-   r/   r6   r7   r:   r;   r   r   r   r   <module>   s"   
			