
    Xj                         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e
j        ej                  Z G d d	e
j        ej                  Zed
k    r ej                     dS dS )    N)import_module)MultiplexedPathNamespaceReader   )utilc                   j     e Zd ZdZ fdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Z xZS )MultiplexedPathTestnamespacedata01c                 r   t                                                       t          j        | j        j        d                   | _        t          j        |                     d          j                  j	        | _
        t          j        |                     d          j                  j	        | _        d S )Nr   data01data02)supersetUppathlibPathdata__path__folderload_fixture__file__parentr   r   )self	__class__s    b/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/importlib_resources/tests/test_reader.pyr   zMultiplexedPathTest.setUp   s}    l49#5a#899l4#4#4X#>#>#GHHOl4#4#4X#>#>#GHHO    c                     |                      t                    5  t                       d d d            d S # 1 swxY w Y   d S N)assertRaisesFileNotFoundErrorr   r   s    r   test_init_no_pathsz&MultiplexedPathTest.test_init_no_paths   s    011 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   7;;c                     |                      t                    5  t          | j        dz             d d d            d S # 1 swxY w Y   d S )Nbinary.file)r   NotADirectoryErrorr   r   r    s    r   test_init_filez"MultiplexedPathTest.test_init_file   s    122 	9 	9DK-7888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   A  AAc                     d t          | j                                                  D             }	 |                    d           n# t          t
          f$ r Y nw xY w|h dk    sJ d S )Nc                     h | ]	}|j         
S  name.0paths     r   	<setcomp>z3MultiplexedPathTest.test_iterdir.<locals>.<setcomp>   s    QQQ$DIQQQr   __pycache__>   subdirectory
utf-8.filer#   utf-16.file)r   r   iterdirremoveKeyError
ValueError)r   contentss     r   test_iterdirz MultiplexedPathTest.test_iterdir   s    QQ/$+*F*F*N*N*P*PQQQ	OOM*****% 	 	 	D	WWWWWWWWWs   A AAc                     d t          | j        | j                                                  D             }dD ]/}	 |                    |           # t
          t          f$ r Y ,w xY w|h dk    sJ d S )Nc                     h | ]	}|j         
S r(   r)   r+   s     r   r.   z=MultiplexedPathTest.test_iterdir_duplicate.<locals>.<setcomp>%   s'     
 
 
DI
 
 
r   )r/   z__init__.pyc>   __init__.pyr0   r1   r#   r2   )r   r   r   r3   r4   r5   r6   )r   r7   r4   s      r   test_iterdir_duplicatez*MultiplexedPathTest.test_iterdir_duplicate$   s    
 
"1$+t{"K"K"S"S"U"U
 
 
 6 	 	F''''j)    
 
 
 
 
 
 
 
 
s   AA&%A&c                 V    t          | j                                                  sJ d S r   )r   r   is_dirr    s    r   test_is_dirzMultiplexedPathTest.test_is_dir5   s*    t{++224444444r   c                 V    t          | j                                                  rJ d S r   )r   r   is_filer    s    r   test_is_filez MultiplexedPathTest.test_is_file8   s*    "4;//779999999r   c                    t          | j                  }|                     t                    5  |                                 d d d            n# 1 swxY w Y   |                     t                    5  |                                 d d d            n# 1 swxY w Y   |                     t                    5  |                                 d d d            d S # 1 swxY w Y   d S r   )r   r   r   r   
read_bytes	read_textopenr   r-   s     r   test_open_filez"MultiplexedPathTest.test_open_file;   s   t{++011 	 	OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	011 	 	NN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	011 	 	IIKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s5   AAA5BBB;CC!$C!c                    t          | j        j                  }t          | j        | j                  }t          |                    d                    t          |          dz   d          t          j        	                    dd          k    sJ |                    d          }t          |t                    sJ dt          |          v sJ dt          |          v sJ t          |                    d                    t          |          dz   d          t          j        	                    dd          k    sJ |                                |k    sJ d S )Nr#   r   r
   r0   r   	imaginary)strr   r   r   r   joinpathlenosr-   join
isinstance)r   prefixr-   subs       r   test_join_pathz"MultiplexedPathTest.test_join_pathD   sQ   T['((t{DK884==//00Vq1B1BCrw||}H
 H
 
 
 
 
 mmN++#///// CHH,,,,3s88####4==--..s6{{Q/@/@ARW\\{F
 F
 
 
 
 
 }}$&&&&&&r   c                     t          | j                  }|                    d                                          rJ d S )Nzimaginary/foo.py)r   r   rL   existsrG   s     r   test_join_path_compoundz+MultiplexedPathTest.test_join_path_compoundS   s<    t{++==!344;;=======r   c                    t          | j        j                  }t          | j        | j                  }t          |                    d          t                    sJ t          |                    dd                    t          |          dz   d          t          j	        
                    ddd          k    sJ d S )Nr0   	subsubdirr   r   )rK   r   r   r   r   rP   rL   rM   rN   r-   rO   )r   rQ   r-   s      r   test_join_path_common_subdirz0MultiplexedPathTest.test_join_path_common_subdirW   s    T['((t{DK88$--77IIIII4====>>s6{{Q?P?PQGLL>;??
 
 
 
 
 
r   c                 f    t          t          | j                            d| j         dk    sJ d S )NMultiplexedPath(''))reprr   r   r    s    r   	test_reprzMultiplexedPathTest.test_repr_   s9    ODK00115X5X5X5XXXXXXXr   c                     t          | j                  j        t          j                            | j                  k    sJ d S r   )r   r   r*   rN   r-   basenamer    s    r   	test_namezMultiplexedPathTest.test_nameb   s8    t{++0BG4D4DT[4Q4QQQQQQQr   )__name__
__module____qualname__MODULEr   r!   r%   r8   r<   r?   rB   rH   rS   rV   rY   r^   ra   __classcell__)r   s   @r   r	   r	      s       FP P P P P  9 9 9X X X
 
 
"5 5 5: : :  ' ' '> > >
 
 
Y Y YR R R R R R Rr   r	   c                   $    e Zd ZdZd Zd Zd ZdS )NamespaceReaderTestr
   c                     |                      t                    5  t          ddg           d d d            d S # 1 swxY w Y   d S )Npath1path2)r   r6   r   r    s    r   test_init_errorz#NamespaceReaderTest.test_init_errori   s    z** 	0 	0Wg.///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   :>>c                 ^   t          d          }t          |j        j                  }| j        j        d         }|                    d          t          j        	                    |d          k    sJ |                    d          t          j        	                    |d          k    sJ d S )Nr
   r   r#   rJ   )
r   r   __spec__submodule_search_locationsr   r   resource_pathrN   r-   rO   )r   r
   readerroots       r   test_resource_pathz&NamespaceReaderTest.test_resource_pathm   s    '(9:: !9!TUUy!!$##M22bgll46W6WWWWW##K00BGLL{4S4SSSSSSSr   c                    t          | j        j        j                  }| j        j        d         }t          |                                t                    sJ t          |                                          d| dk    sJ d S )Nr   r[   r\   )	r   r   rn   ro   r   rP   filesr   r]   )r   rq   rr   s      r   
test_fileszNamespaceReaderTest.test_filesu   sw     !3!NOOy!!$&,,../:::::FLLNN##'C4'C'C'CCCCCCCr   N)rb   rc   rd   re   rl   rs   rv   r(   r   r   rh   rh   f   sN        F0 0 0T T TD D D D Dr   rh   __main__)os.pathrN   r   unittest	importlibr   importlib_resources.readersr   r    r   	DiskSetupTestCaser	   rh   rb   mainr(   r   r   <module>r      s       # # # # # # H H H H H H H H      XR XR XR XR XR$.(*; XR XR XRvD D D D D$.(*; D D D, zHMOOOOO r   