a
    Šxd~  ã                   @   st   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	 G dd„ dej
ƒZG dd„ dej
ƒZedkrpe ¡  dS )	é    N)Úimport_module)ÚMultiplexedPathÚNamespaceReaderc                   @   sx   e Zd Ze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dS )ÚMultiplexedPathTestc                 C   s   t  t¡jd }t|ƒ| _d S )NÚnamespacedata01)ÚpathlibÚPathÚ__file__ÚparentÚstrÚfolder)ÚclsÚpath© r   ú]/var/www/html/Ranjet/env/lib/python3.9/site-packages/importlib_resources/tests/test_reader.pyÚ
setUpClass   s    zMultiplexedPathTest.setUpClassc                 C   s4   |   t¡ tƒ  W d   ƒ n1 s&0    Y  d S ©N)ÚassertRaisesÚFileNotFoundErrorr   ©Úselfr   r   r   Útest_init_no_paths   s    z&MultiplexedPathTest.test_init_no_pathsc                 C   sB   |   t¡$ ttj | jd¡ƒ W d   ƒ n1 s40    Y  d S )Núbinary.file)r   ÚNotADirectoryErrorr   Úosr   Újoinr   r   r   r   r   Útest_init_file   s    z"MultiplexedPathTest.test_init_filec              	   C   sR   dd„ t | jƒ ¡ D ƒ}z| d¡ W n ttfy<   Y n0 |  |h d£¡ d S )Nc                 S   s   h | ]
}|j ’qS r   ©Úname©Ú.0r   r   r   r   Ú	<setcomp>   ó    z3MultiplexedPathTest.test_iterdir.<locals>.<setcomp>Ú__pycache__>   úutf-16.filer   ú
utf-8.file)r   r   ÚiterdirÚremoveÚKeyErrorÚ
ValueErrorÚassertEqual)r   Úcontentsr   r   r   Útest_iterdir   s    z MultiplexedPathTest.test_iterdirc              
   C   sv   t j t j tdd¡¡}dd„ t| j|ƒ ¡ D ƒ}dD ]*}z| |¡ W q6 t	t
fy^   Y q60 q6|  |h d£¡ d S )Nú..Údata01c                 S   s   h | ]
}|j ’qS r   r   r   r   r   r   r!   "   s   z=MultiplexedPathTest.test_iterdir_duplicate.<locals>.<setcomp>)r#   z__init__.pyc>   r$   r%   z__init__.pyr   Úsubdirectory)r   r   Úabspathr   r	   r   r   r&   r'   r(   r)   r*   )r   r.   r+   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_dir/   s    zMultiplexedPathTest.test_is_dirc                 C   s   |   t| jƒ ¡ d¡ d S )NF)r*   r   r   Úis_filer   r   r   r   Útest_is_file2   s    z MultiplexedPathTest.test_is_filec                 C   s¤   t | jƒ}|  t¡ | ¡  W d   ƒ n1 s20    Y  |  t¡ | ¡  W d   ƒ n1 sd0    Y  |  t¡ | ¡  W d   ƒ n1 s–0    Y  d S r   )r   r   r   r   Ú
read_bytesÚ	read_textÚopen©r   r   r   r   r   Útest_open_file5   s    
&&z"MultiplexedPathTest.test_open_filec                 C   sÔ   t j t j td¡¡}t j |d¡}t| j|ƒ}|  t| 	d¡ƒt
|ƒd d … t j dd¡¡ |  t| 	d¡ƒt
|ƒd d … t j dd¡¡ |  t| 	d¡ƒt
|ƒd d … t j dd¡¡ |  | 	¡ |¡ d S )Nr-   r.   r   é   r   r/   Ú	imaginary)r   r   r0   r   r	   r   r   r*   r   ÚjoinpathÚlen)r   Úprefixr.   r   r   r   r   Útest_join_path>   s     þþþz"MultiplexedPathTest.test_join_pathc                 C   s    t | jƒ}| d¡ ¡ rJ ‚d S )Nzimaginary/foo.py)r   r   r=   Úexistsr9   r   r   r   Útest_join_path_compoundP   s    
z+MultiplexedPathTest.test_join_path_compoundc                 C   s†   t j t j td¡¡}t j |d¡}t j |d¡}t||ƒ}|  | d¡t¡ |  t	| dd¡ƒt
|ƒd d … t j ddd¡¡ d S )Nr-   r.   Údata02r/   Z	subsubdirr;   )r   r   r0   r   r	   r   ÚassertIsInstancer=   r*   r   r>   )r   r?   r.   rC   r   r   r   r   Útest_join_path_common_subdirT   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_repr_   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_namee   s    
þzMultiplexedPathTest.test_nameN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r   r,   r1   r3   r5   r:   r@   rB   rE   rI   rK   r   r   r   r   r   
   s   
	r   c                   @   sL   e Zd Zee e¡jƒZe	dd„ ƒZ
e	dd„ ƒZdd„ Zdd„ Zd	d
„ ZdS )ÚNamespaceReaderTestc                 C   s   t j | j¡ d S r   )Úsysr   ÚappendÚsite_dir©r   r   r   r   r   o   s    zNamespaceReaderTest.setUpClassc                 C   s   t j | j¡ d S r   )rQ   r   r'   rS   rT   r   r   r   ÚtearDownClasss   s    z!NamespaceReaderTest.tearDownClassc                 C   s:   |   t¡ tddgƒ W d   ƒ n1 s,0    Y  d S )NÚpath1Úpath2)r   r)   r   r   r   r   r   Útest_init_errorw   s    z#NamespaceReaderTest.test_init_errorc                 C   sh   t dƒ}t|jjƒ}tj tj tdd¡¡}|  	| 
d¡tj |d¡¡ |  	| 
d¡tj |d¡¡ d S )Nr   r-   r   r<   )r   r   Ú__spec__Úsubmodule_search_locationsr   r   r0   r   r	   r*   Úresource_path©r   r   ÚreaderÚrootr   r   r   Útest_resource_path{   s    ÿÿz&NamespaceReaderTest.test_resource_pathc                 C   s\   t dƒ}t|jjƒ}tj tj tdd¡¡}|  	| 
¡ t¡ |  t| 
¡ ƒd|› d¡ d S )Nr   r-   rF   rG   )r   r   rY   rZ   r   r   r0   r   r	   rD   Úfilesr   r*   rH   r\   r   r   r   Ú
test_files‡   s
    zNamespaceReaderTest.test_filesN)rL   rM   rN   r   r   r   r	   r
   rS   rO   r   rU   rX   r_   ra   r   r   r   r   rP   l   s   

rP   Ú__main__)Úos.pathr   rQ   r   ZunittestÚ	importlibr   Zimportlib_resources.readersr   r   ZTestCaser   rP   rL   Úmainr   r   r   r   Ú<module>   s   b#