
    Xj/                        d dl Z d dlZd dlmZ d dlZddlmZ  G d d          Z G d deej	        ej
                  Z G d	 d
eej        ej
                  Zd Z G d dej	        ej
                  Z G d dej	        ej
                  Z G d dej        ej
                  Z G d dej        ej
                  Z G d dej        ej
                  Z G d d          Z G d dej	        eej
                  Z G d dej        eej
                  Z G d dej
                  Zedk    r ej                     dS dS )    N)import_module   )utilc                        e Zd Zd Zd Zd ZdS )ResourceTestsc                 j    t          j        | j                  dz  }|                                sJ d S )Nbinary.file	resourcesfilesdatais_fileselftargets     d/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/importlib_resources/tests/test_resource.pytest_is_file_existsz!ResourceTests.test_is_file_exists   s4    ++m;~~    c                 j    t          j        | j                  dz  }|                                rJ d S )Nz
not-a-filer
   r   s     r   test_is_file_missingz"ResourceTests.test_is_file_missing   s4    ++l:>>#######r   c                     t          j        | j                  dz  }|                                rJ |                                sJ d S )Nsubdirectory)r   r   r   r   is_dirr   s     r   test_is_dirzResourceTests.test_is_dir   sH    ++n<>>#####}}r   N)__name__
__module____qualname__r   r   r    r   r   r   r   
   sA             $ $ $    r   r   c                       e Zd ZdS )ResourceDiskTestsNr   r   r   r   r   r   r    r               Dr   r    c                       e Zd ZdS )ResourceZipTestsNr!   r   r   r   r$   r$      r"   r   r$   c                 >    d |                                  D             S )Nc                     h | ]	}|j         
S r   name.0items     r   	<setcomp>znames.<locals>.<setcomp>$   s    888$DI888r   )iterdir)traversables    r   namesr/   #   s"    88+"5"5"7"78888r   c                   &    e Zd Zd Zd Zd Zd ZdS )ResourceLoaderTestsc                     t          j        | j        | j        j        g d          }t	          t          j        |                    h dk    sJ d S )NABCfilepathcontents>   r4   r5   r6   )r   create_packager   __file__r/   r   r   r   packages     r   test_resource_contentsz*ResourceLoaderTests.test_resource_contents(   sZ    %!3ooo
 
 
 Y_W--..///AAAAAAr   c                     t          j        | j        | j        j        g d          }t	          j        |                              d                                          sJ d S )Nr4   r5   r6   zD/EzD/Fr7   r5   r   r;   r   r<   r   r   joinpathr   r=   s     r   test_is_filez ResourceLoaderTests.test_is_file.   sg    %#222
 
 

 w''0055==???????r   c                     t          j        | j        | j        j        g d          }t	          j        |                              d                                          sJ d S )NrA   r7   D)r   r;   r   r<   r   r   rC   r   r=   s     r   r   zResourceLoaderTests.test_is_dir6   sg    %#222
 
 

 w''0055<<>>>>>>>r   c                     t          j        | j        | j        j        g d          }t	          j        |                              d                                          rJ d S )NrA   r7   ZrB   r=   s     r   test_resource_missingz)ResourceLoaderTests.test_resource_missing>   sg    %#222
 
 

 ?7++44S99AACCCCCCCr   N)r   r   r   r?   rD   r   rI   r   r   r   r1   r1   '   s[        B B B@ @ @? ? ?D D D D Dr   r1   c                       e Zd Zd ZdS )ResourceCornerCaseTestsc                 D   t          j        | j        | j        j        g d          }t	                      |_        d|_        |j        |j        _        |j        |j        _        t          j
        |                              d                                          rJ dS )z
        Test odd ball packages which:
        # 1. Do not have a ResourceReader as a loader
        # 2. Are not on the file system
        # 3. Are not in a zip file
        r3   r7   z/path/which/shall/not/be/namedr4   N)r   r;   r   r<   object
__loader____spec__loaderoriginr   r   rC   r   )r   modules     r   #test_package_has_no_reader_fallbackz;ResourceCornerCaseTests.test_package_has_no_reader_fallbackH   s     $!3ooo
 
 
 #HH:!'!2!'?6**33C88@@BBBBBBBr   N)r   r   r   rS   r   r   r   rK   rK   G   s(        C C C C Cr   rK   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )ResourceFromZipsTest01c                     t          d          }t          j        |                              d                                          sJ d S Ndata01.subdirectoryr	   )r   r   r   rC   r   r   	submodules     r   test_is_submodule_resourcez1ResourceFromZipsTest01.test_is_submodule_resource\   sF    !"788	y))22=AAIIKKKKKKKr   c                 |    t          j        d                              d                                          sJ d S rW   r   r   rC   r   r   s    r   $test_read_submodule_resource_by_namez;ResourceFromZipsTest01.test_read_submodule_resource_by_name`   s9    455>>}MMUUWWWWWWWr   c                 v    t          d          }t          t          j        |                    ddhk    sJ d S NrX   __init__.pyr	   )r   r/   r   r   rY   s     r   test_submodule_contentsz.ResourceFromZipsTest01.test_submodule_contentsc   s>    !"788	Y_Y//00]M4RRRRRRRr   c                 X    t          t          j        d                    ddhk    sJ d S ra   r/   r   r   r^   s    r   test_submodule_contents_by_namez6ResourceFromZipsTest01.test_submodule_contents_by_nameg   sB    Y_%:;;<<A
 
 
 
 
 
 
r   c                    t          j        t          j        d                    5 }|j        dk    sJ |                                sJ |                    d                                          sJ t          t          |                                                    sJ 	 d d d            n# 1 swxY w Y   |j	        
                                rJ d S )Ndata01r   )r   as_filer   r(   r   rC   lenlistr-   parentexists)r   r   s     r   test_as_file_directoryz-ResourceFromZipsTest01.test_as_file_directorym   s   yx8899 	-T9((((;;==   ==007799999tDLLNN++,,,,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-
 ;%%'''''''s   A=B11B58B5N)r   r   r   r[   r_   rc   rf   rn   r   r   r   rU   rU   [   sh        L L LX X XS S S
 
 
( ( ( ( (r   rU   c                       e Zd ZdZd ZdS )ResourceFromZipsTest02data02c                     t          t          j        d                    ddhk    sJ t          t          j        d                    ddhk    sJ dS )z
        Test thata zip with two unrelated subpackages return
        distinct resources. Ref python/importlib_resources#44.
        z
data02.onerb   zresource1.txtz
data02.twozresource2.txtNre   r^   s    r   test_unrelated_contentsz.ResourceFromZipsTest02.test_unrelated_contentsy   sZ    
 Y_\22337WWWWWY_\22337WWWWWWWr   N)r   r   r   MODULErs   r   r   r   rp   rp   v   s-        FX X X X Xr   rp   c                   h    e Zd ZdZd Zd Zd Z ej        d          d             Z	d Z
d Zd	 Zd
S )DeletingZipsTestz^Having accessed resources in a zip file should not keep an open
    reference to the zip.
    c                 f    d t          j        d                                          D              d S )Nc                     g | ]	}|j         
S r   r'   r)   s     r   
<listcomp>zDDeletingZipsTest.test_iterdir_does_not_keep_open.<locals>.<listcomp>   s    CCCtCCCr   rh   )r   r   r-   r^   s    r   test_iterdir_does_not_keep_openz0DeletingZipsTest.test_iterdir_does_not_keep_open   s2    CCyx88@@BBCCCCCCr   c                 x    t          j        d                              d                                           d S Nrh   r	   r]   r^   s    r   test_is_file_does_not_keep_openz0DeletingZipsTest.test_is_file_does_not_keep_open   2    !!**=99AACCCCCr   c                 x    t          j        d                              d                                           d S )Nrh   znot-presentr]   r^   s    r   'test_is_file_failure_does_not_keep_openz8DeletingZipsTest.test_is_file_failure_does_not_keep_open   r~   r   zDesired but not supported.c                 X    t          j        t          j        d          dz             d S r|   )r   ri   r   r^   s    r   test_as_file_does_not_keep_openz0DeletingZipsTest.test_as_file_does_not_keep_open   s(    )/(33mCDDDDDr   c                 |    t          j        t          j        d          dz                                             dS )zr
        Mimic what certifi does on import to make its bundle
        available for the process duration.
        rh   r	   N)r   ri   r   	__enter__r^   s    r   $test_entered_path_does_not_keep_openz5DeletingZipsTest.test_entered_path_does_not_keep_open   s6    
 	)/(33mCDDNNPPPPPr   c                 x    t          j        d                              d                                           d S r|   )r   r   rC   
read_bytesr^   s    r   #test_read_binary_does_not_keep_openz4DeletingZipsTest.test_read_binary_does_not_keep_open   s2    !!**=99DDFFFFFr   c                 |    t          j        d                              d                              d           d S )Nrh   
utf-8.filezutf-8)encoding)r   r   rC   	read_textr^   s    r   !test_read_text_does_not_keep_openz2DeletingZipsTest.test_read_text_does_not_keep_open   s7    !!**<88BBGBTTTTTr   N)r   r   r   __doc__rz   r}   r   unittestskipr   r   r   r   r   r   r   rv   rv      s         D D DD D DD D D X]/00E E 10EQ Q QG G GU U U U Ur   rv   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )ResourceFromNamespaceTestsc                     t          j        t          d                                        d                                          sJ d S Nnamespacedata01r	   )r   r   r   rC   r   r^   s    r   r[   z5ResourceFromNamespaceTests.test_is_submodule_resource   sL    =!2335 5Xm$$WYY		
 	
 	
 	
 	
r   c                 |    t          j        d                              d                                          sJ d S r   r]   r^   s    r   r_   z?ResourceFromNamespaceTests.test_read_submodule_resource_by_name   s9    011::=IIQQSSSSSSSr   c                     t          t          j        t          d                              }	 |                    d           n# t
          $ r Y nw xY w|h dk    sJ d S Nr   __pycache__>   utf-16.filer   r   r	   r/   r   r   r   removeKeyErrorr   r:   s     r   rc   z2ResourceFromNamespaceTests.test_submodule_contents   sz    7H)I)IJJKK	OOM**** 	 	 	D	WWWWWWWWW   A 
AAc                     t          t          j        d                    }	 |                    d           n# t          $ r Y nw xY w|h dk    sJ d S r   r/   r   r   r   r   r   s     r   rf   z:ResourceFromNamespaceTests.test_submodule_contents_by_name   sr    ):;;<<	OOM**** 	 	 	D	WWWWWWWWW   9 
AAc                     t          t          j        t          d                              }	 |                    d           n# t
          $ r Y nw xY w|dhk    sJ d S Nznamespacedata01.subdirectoryr   r	   r   r   s     r   test_submodule_sub_contentsz6ResourceFromNamespaceTests.test_submodule_sub_contents   su    7U)V)VWWXX	OOM**** 	 	 	D	M?******r   c                     t          t          j        d                    }	 |                    d           n# t          $ r Y nw xY w|dhk    sJ d S r   r   r   s     r   #test_submodule_sub_contents_by_namez>ResourceFromNamespaceTests.test_submodule_sub_contents_by_name   sm    )GHHII	OOM**** 	 	 	D	M?******r   N)	r   r   r   r[   r_   rc   rf   r   r   r   r   r   r   r      sw        
 
 
T T TX X XX X X+ + ++ + + + +r   r   c                       e Zd ZdZdS )ResourceFromNamespaceDiskTestsr   Nr   r   r   rt   r   r   r   r   r              
 FFFr   r   c                       e Zd ZdZdS )ResourceFromNamespaceZipTestsr   Nr   r   r   r   r   r      r   r   r   c                       e Zd Zd ZdS )MainModuleTestsc                     t          j        d          }|j        J |                     t          d          5  t          j        |           ddd           dS # 1 swxY w Y   dS )z
        __main__ module with no spec should raise TypeError (for clarity).

        See python/cpython#138531 for details.
        __main__NzzCannot access resources for '__main__' as it does not appear to correspond to an importable module (its __spec__ is None).)msg)types
ModuleTyperO   assertRaises	TypeErrorr   r   )r   
mainmodules     r   test_main_module_with_none_specz/MainModuleTests.test_main_module_with_none_spec   s     %j11
"*** M  
 
 	( 	( OJ'''		( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   AA #A N)r   r   r   r   r   r   r   r   r      s#        ( ( ( ( (r   r   r   )r   r   	importlibr   importlib_resourcesr    r   r   	DiskSetupTestCaser    ZipSetupr$   r/   r1   rK   rU   rp   rv   r   r   r   r   r   mainr   r   r   <module>r      s     # # # # # # ' ' ' '             "	 	 	 	 	t~x7H 	 	 		 	 	 	 	}dmX5F 	 	 	9 9 9D D D D D$.(*; D D D@C C C C Cdnh.? C C C(( ( ( ( (T]H,= ( ( (6	X 	X 	X 	X 	XT]H,= 	X 	X 	XU U U U Ut}h&7 U U U@*+ *+ *+ *+ *+ *+ *+ *+Z    N      M  ( ( ( ( (h' ( ( (& zHMOOOOO r   