
    @g                        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edk(  r e j.                          yy)    N)import_module   )utilc                       e Zd Zd Zd Zd Zy)ResourceTestsc                     t        j                  | j                        dz  }| j                  |j	                                y )Nbinary.file)	resourcesfilesdata
assertTrueis_fileselftargets     \/var/www/openai/venv/lib/python3.12/site-packages/importlib_resources/tests/test_resource.pytest_is_file_existsz!ResourceTests.test_is_file_exists   s,    +m;()    c                     t        j                  | j                        dz  }| j                  |j	                                y )Nz
not-a-file)r
   r   r   assertFalser   r   s     r   test_is_file_missingz"ResourceTests.test_is_file_missing   s.    +l:)*r   c                     t        j                  | j                        dz  }| j                  |j	                                | j                  |j                                y )Nsubdirectory)r
   r   r   r   r   r   is_dirr   s     r   test_is_dirzResourceTests.test_is_dir   s@    +n<)*(r   N)__name__
__module____qualname__r   r   r    r   r   r   r   	   s    *+)r   r   c                       e Zd Zy)ResourceDiskTestsNr   r   r   r   r   r   r!   r!          r   r!   c                       e Zd Zy)ResourceZipTestsNr"   r   r   r   r%   r%      r#   r   r%   c                 \    | j                         D ch c]  }|j                   c}S c c}w )N)iterdirname)traversableitems     r   namesr+   "   s)    "-"5"5"78"7$DII"7888s   )c                   $    e Zd Zd Zd Zd Zd Zy)ResourceLoaderTestsc                     t        j                  | j                  | j                  j                  g d      }| j	                  t        t        j                  |            h d       y )NABCfilepathcontents>   r0   r1   r2   )r   create_packager   __file__assertEqualr+   r
   r   r   packages     r   test_resource_contentsz*ResourceLoaderTests.test_resource_contents'   sG    %%!3!3o
 	yw78/Jr   c                     t        j                  | j                  | j                  j                  g d      }| j	                  t        j                  |      j                  d      j                                y )Nr0   r1   r2   zD/EzD/Fr3   r1   )	r   r7   r   r8   r   r
   r   joinpathr   r:   s     r   test_is_filez ResourceLoaderTests.test_is_file-   sT    %%##2

 		099#>FFHIr   c                     t        j                  | j                  | j                  j                  g d      }| j	                  t        j                  |      j                  d      j                                y )Nr>   r3   D)	r   r7   r   r8   r   r
   r   r?   r   r:   s     r   r   zResourceLoaderTests.test_is_dir5   sT    %%##2

 		099#>EEGHr   c                     t        j                  | j                  | j                  j                  g d      }| j	                  t        j                  |      j                  d      j                                y )Nr>   r3   Z)	r   r7   r   r8   r   r
   r   r?   r   r:   s     r   test_resource_missingz)ResourceLoaderTests.test_resource_missing=   sV    %%##2

 	1::3?GGIJr   N)r   r   r   r<   r@   r   rE   r   r   r   r-   r-   &   s    KJIKr   r-   c                       e Zd Zd Zy)ResourceCornerCaseTestsc                    t        j                  | j                  | j                  j                  g d      }t	               |_        d|_        |j
                  |j                  _        |j                  |j                  _        | j                  t        j                  |      j                  d      j                                y)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
        r/   r3   z/path/which/shall/not/be/namedr0   N)r   r7   r   r8   object
__loader____spec__loaderoriginr   r
   r   r?   r   )r   modules     r   #test_package_has_no_reader_fallbackz;ResourceCornerCaseTests.test_package_has_no_reader_fallbackG   s     $$!3!3o
 #H:!'!2!2!'099#>FFHIr   N)r   r   r   rO   r   r   r   rG   rG   F   s    Jr   rG   c                   *    e Zd Zd Zd Zd Zd Zd Zy)ResourceFromZipsTest01c                     t        d      }| j                  t        j                  |      j	                  d      j                                y Ndata01.subdirectoryr	   )r   r   r
   r   r?   r   r   	submodules     r   test_is_submodule_resourcez1ResourceFromZipsTest01.test_is_submodule_resource[   s6    !"78			2;;MJRRTUr   c                     | j                  t        j                  d      j                  d      j	                                y rS   r   r
   r   r?   r   r   s    r   $test_read_submodule_resource_by_namez;ResourceFromZipsTest01.test_read_submodule_resource_by_name_   s/    OO12;;MJRRT	
r   c                 z    t        d      }| j                  t        t        j                  |            ddh       y NrT   __init__.pyr	   )r   r9   r+   r
   r   rU   s     r   test_submodule_contentsz.ResourceFromZipsTest01.test_submodule_contentsd   s3    !"78	)//),-}/M	
r   c                 d    | j                  t        t        j                  d            ddh       y r]   r9   r+   r
   r   rZ   s    r   test_submodule_contents_by_namez6ResourceFromZipsTest01.test_submodule_contents_by_namej   s*    )//"789M*	
r   c                    t        j                  t        j                  d            5 }|j                  dk(  sJ |j	                         sJ |j                  d      j	                         sJ t        t        |j                                     sJ 	 d d d        j                  j                         rJ y # 1 sw Y   &xY w)Ndata01r   )r
   as_filer   r(   r   r?   lenlistr'   parentexists)r   r   s     r   test_as_file_directoryz-ResourceFromZipsTest01.test_as_file_directoryp   s    yx89T99(((;;= ===077999tDLLN+,,,	 :
 ;;%%'''' :9s   A)B88CN)r   r   r   rW   r[   r_   rb   rj   r   r   r   rQ   rQ   Z   s    V



(r   rQ   c                       e Zd ZdZd Zy)ResourceFromZipsTest02data02c                     | j                  t        t        j                  d            ddh       | j                  t        t        j                  d            ddh       y)z
        Test thata zip with two unrelated subpackages return
        distinct resources. Ref python/importlib_resources#44.
        z
data02.oner^   zresource1.txtz
data02.twozresource2.txtNra   rZ   s    r   test_unrelated_contentsz.ResourceFromZipsTest02.test_unrelated_contents|   sT    
 	)//,/0O,	
 	)//,/0O,	
r   N)r   r   r   MODULEro   r   r   r   rl   rl   y   s    F
r   rl   c                   d    e Zd ZdZd Zd Zd Z ej                  d      d        Z	d Z
d Zd	 Zy
)DeletingZipsTestz^Having accessed resources in a zip file should not keep an open
    reference to the zip.
    c                     t        j                  d      j                         D cg c]  }|j                   c} y c c}w )Nrd   )r
   r   r'   r(   )r   r*   s     r   test_iterdir_does_not_keep_openz0DeletingZipsTest.test_iterdir_does_not_keep_open   s/    (x8@@BCBtBCCs   =c                 h    t        j                  d      j                  d      j                          y Nrd   r	   r
   r   r?   r   rZ   s    r   test_is_file_does_not_keep_openz0DeletingZipsTest.test_is_file_does_not_keep_open   "    !**=9AACr   c                 h    t        j                  d      j                  d      j                          y )Nrd   znot-presentrw   rZ   s    r   'test_is_file_failure_does_not_keep_openz8DeletingZipsTest.test_is_file_failure_does_not_keep_open   ry   r   zDesired but not supported.c                 Z    t        j                  t        j                  d      dz         y rv   )r
   re   r   rZ   s    r   test_as_file_does_not_keep_openz0DeletingZipsTest.test_as_file_does_not_keep_open   s    )//(3mCDr   c                 v    t        j                  t        j                  d      dz        j                          y)zr
        Mimic what certifi does on import to make its bundle
        available for the process duration.
        rd   r	   N)r
   re   r   	__enter__rZ   s    r   $test_entered_path_does_not_keep_openz5DeletingZipsTest.test_entered_path_does_not_keep_open   s)    
 	)//(3mCDNNPr   c                 h    t        j                  d      j                  d      j                          y rv   )r
   r   r?   
read_bytesrZ   s    r   #test_read_binary_does_not_keep_openz4DeletingZipsTest.test_read_binary_does_not_keep_open   s"    !**=9DDFr   c                 l    t        j                  d      j                  d      j                  d       y )Nrd   
utf-8.filezutf-8)encoding)r
   r   r?   	read_textrZ   s    r   !test_read_text_does_not_keep_openz2DeletingZipsTest.test_read_text_does_not_keep_open   s'    !**<8BBGBTr   N)r   r   r   __doc__rt   rx   r{   unittestskipr}   r   r   r   r   r   r   rr   rr      sM    DDD X]]/0E 1EQGUr   rr   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)ResourceFromNamespaceTestsc                     | j                  t        j                  t        d            j	                  d      j                                y Nnamespacedata01r	   )r   r
   r   r   r?   r   rZ   s    r   rW   z5ResourceFromNamespaceTests.test_is_submodule_resource   s1    OOM*;<=Xm$WY	
r   c                     | j                  t        j                  d      j                  d      j	                                y r   rY   rZ   s    r   r[   z?ResourceFromNamespaceTests.test_read_submodule_resource_by_name   s/    OO-.77FNNP	
r   c                     t        t        j                  t        d                  }	 |j	                  d       | j                  |h d       y # t
        $ r Y  w xY wNr   __pycache__>   utf-16.filer   r   r	   r+   r
   r   r   removeKeyErrorr9   r   r6   s     r   r_   z2ResourceFromNamespaceTests.test_submodule_contents   sV    7H)IJK	OOM* 	R	
  		s   A 	AAc                     t        t        j                  d            }	 |j                  d       | j                  |h d       y # t        $ r Y  w xY wr   r+   r
   r   r   r   r9   r   s     r   rb   z:ResourceFromNamespaceTests.test_submodule_contents_by_name   sQ    ):;<	OOM* 	R	
  		s   A 	AAc                     t        t        j                  t        d                  }	 |j	                  d       | j                  |dh       y # t
        $ r Y w xY wNznamespacedata01.subdirectoryr   r	   r   r   s     r   test_submodule_sub_contentsz6ResourceFromNamespaceTests.test_submodule_sub_contents   sT    7U)VWX	OOM* 	M?3  		s   A 	AAc                     t        t        j                  d            }	 |j                  d       | j                  |dh       y # t        $ r Y w xY wr   r   r   s     r   #test_submodule_sub_contents_by_namez>ResourceFromNamespaceTests.test_submodule_sub_contents_by_name   sO    )GHI	OOM* 	M?3  		s   A 	AAN)	r   r   r   rW   r[   r_   rb   r   r   r   r   r   r   r      s     




44r   r   c                       e Zd ZdZy)ResourceFromNamespaceDiskTestsr   Nr   r   r   rp   r   r   r   r   r      	    
 Fr   r   c                       e Zd ZdZy)ResourceFromNamespaceZipTestsr   Nr   r   r   r   r   r      r   r   r   __main__)r   	importlibr   importlib_resourcesr
    r   r   	DiskSetupTestCaser!   ZipSetupr%   r+   r-   rG   rQ   rl   rr   r   r   r   r   mainr   r   r   <module>r      s3    # ' ) )"	t~~x7H7H 		}dmmX5F5F 	9K$..(*;*; K@Jdnnh.?.? J((T]]H,=,= (>
T]]H,=,= 
$Ut}}h&7&7 U@/4 /4dNNMM zHMMO r   