U
    \g%i/  ã                   @   s€   d dl Zd dlZd dlZd dlmZ d dlmZmZ ddl	m
Z
 G dd„ de
jejƒZG dd	„ d	e
jejƒZed
kr|e ¡  dS )é    N)Úimport_module)ÚMultiplexedPathÚNamespaceReaderé   )Úutilc                       s€   e Zd ZdZ‡ f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‡  ZS )ÚMultiplexedPathTestÚnamespacedata01c                    sN   t ƒ  ¡  t | jjd ¡| _t |  d¡j¡j	| _
t |  d¡j¡j	| _d S )Nr   Údata01Údata02)ÚsuperÚsetUpÚpathlibÚPathÚdataÚ__path__ÚfolderZload_fixtureÚ__file__Úparentr	   r
   ©Úself©Ú	__class__© úd/var/www/html/api-medvista/venv/lib/python3.8/site-packages/importlib_resources/tests/test_reader.pyr      s    
zMultiplexedPathTest.setUpc              	   C   s    |   t¡ tƒ  W 5 Q R X d S ©N)ÚassertRaisesÚFileNotFoundErrorr   r   r   r   r   Útest_init_no_paths   s    z&MultiplexedPathTest.test_init_no_pathsc              	   C   s(   |   t¡ t| jd ƒ W 5 Q R X d S )Núbinary.file)r   ÚNotADirectoryErrorr   r   r   r   r   r   Útest_init_file   s    z"MultiplexedPathTest.test_init_filec              	   C   sX   dd„ t | jƒ ¡ D ƒ}z| d¡ W n ttfk
r>   Y nX |  |ddddh¡ d S )Nc                 S   s   h | ]
}|j ’qS r   ©Úname©Ú.0Úpathr   r   r   Ú	<setcomp>   s     z3MultiplexedPathTest.test_iterdir.<locals>.<setcomp>Ú__pycache__Úsubdirectoryr   úutf-16.fileú
utf-8.file)r   r   ÚiterdirÚremoveÚKeyErrorÚ
ValueErrorÚassertEqual)r   Úcontentsr   r   r   Útest_iterdir   s     
ÿz MultiplexedPathTest.test_iterdirc              
   C   sh   dd„ t | j| jƒ ¡ D ƒ}dD ],}z| |¡ W q  ttfk
rJ   Y q X q |  |dddddh¡ d S )	Nc                 S   s   h | ]
}|j ’qS r   r!   r#   r   r   r   r&   '   s    z=MultiplexedPathTest.test_iterdir_duplicate.<locals>.<setcomp>)r'   z__init__.pycz__init__.pyr   r(   r)   r*   )r   r   r	   r+   r,   r-   r.   r/   )r   r0   r,   r   r   r   Útest_iterdir_duplicate&   s    ÿþz*MultiplexedPathTest.test_iterdir_duplicatec                 C   s   |   t| jƒ ¡ d¡ d S )NT)r/   r   r   Úis_dirr   r   r   r   Útest_is_dir4   s    zMultiplexedPathTest.test_is_dirc                 C   s   |   t| jƒ ¡ d¡ d S )NF)r/   r   r   Úis_filer   r   r   r   Útest_is_file7   s    z MultiplexedPathTest.test_is_filec              	   C   sh   t | jƒ}|  t¡ | ¡  W 5 Q R X |  t¡ | ¡  W 5 Q R X |  t¡ | ¡  W 5 Q R X d S r   )r   r   r   r   Ú
read_bytesÚ	read_textÚopen©r   r%   r   r   r   Útest_open_file:   s    
z"MultiplexedPathTest.test_open_filec                 C   sÆ   t | jjƒ}t| j| jƒ}|  t | d¡ƒt|ƒd d … tj	 
dd¡¡ | d¡}t|tƒsbt‚dt |ƒksrt‚dt |ƒks‚t‚|  t | d¡ƒt|ƒd d … tj	 
dd¡¡ |  | ¡ |¡ d S )Nr   r   r   r(   r	   Ú	imaginary)Ústrr   r   r   r	   r/   ÚjoinpathÚlenÚosr%   ÚjoinÚ
isinstanceÚAssertionError)r   Úprefixr%   Úsubr   r   r   Útest_join_pathC   s    þ
þz"MultiplexedPathTest.test_join_pathc                 C   s    t | jƒ}| d¡ ¡ rt‚d S )Nzimaginary/foo.py)r   r   r>   ÚexistsrC   r:   r   r   r   Útest_join_path_compoundT   s    
z+MultiplexedPathTest.test_join_path_compoundc                 C   sd   t | jjƒ}t| j| jƒ}|  | d¡t¡ |  t | dd¡ƒt|ƒd d … t	j
 ddd¡¡ d S )Nr(   Z	subsubdirr   r
   )r=   r
   r   r   r	   ÚassertIsInstancer>   r/   r?   r@   r%   rA   )r   rD   r%   r   r   r   Útest_join_path_common_subdirX   s    þz0MultiplexedPathTest.test_join_path_common_subdirc                 C   s$   |   tt| jƒƒd| j› d¡ d S )NúMultiplexedPath('ú'))r/   Úreprr   r   r   r   r   r   Ú	test_repra   s    þzMultiplexedPathTest.test_reprc                 C   s"   |   t| jƒjtj | j¡¡ d S r   )r/   r   r   r"   r@   r%   Úbasenamer   r   r   r   Ú	test_nameg   s    
þzMultiplexedPathTest.test_name)Ú__name__Ú
__module__Ú__qualname__ÚMODULEr   r   r    r1   r2   r4   r6   r;   rF   rH   rJ   rN   rP   Ú__classcell__r   r   r   r   r      s   
		r   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚNamespaceReaderTestr   c              	   C   s&   |   t¡ tddgƒ W 5 Q R X d S )NZpath1Zpath2)r   r.   r   r   r   r   r   Útest_init_errorq   s    z#NamespaceReaderTest.test_init_errorc                 C   s\   t dƒ}t|jjƒ}| jjd }|  | d¡tj	 
|d¡¡ |  | d¡tj	 
|d¡¡ d S )Nr   r   r   r<   )r   r   Ú__spec__Úsubmodule_search_locationsr   r   r/   Úresource_pathr@   r%   rA   )r   r   ÚreaderÚrootr   r   r   Útest_resource_pathu   s     ÿ ÿz&NamespaceReaderTest.test_resource_pathc                 C   sJ   t | jjjƒ}| jjd }|  | ¡ t¡ |  t	| ¡ ƒd|› d¡ d S )Nr   rK   rL   )
r   r   rX   rY   r   rI   Úfilesr   r/   rM   )r   r[   r\   r   r   r   Ú
test_files   s    zNamespaceReaderTest.test_filesN)rQ   rR   rS   rT   rW   r]   r_   r   r   r   r   rV   n   s   rV   Ú__main__)Úos.pathr@   r   ZunittestÚ	importlibr   Zimportlib_resources.readersr   r   Ú r   Z	DiskSetupZTestCaser   rV   rQ   Úmainr   r   r   r   Ú<module>   s   c