
    2i                        S SK r S SKJr  S SKrSSKJr   " S S5      r " S S\\R                  \ R                  5      r
 " S	 S
\\R                  \ R                  5      rS r " S S\R                  \ R                  5      r " S S\R                  \ R                  5      r " S S\R                  \ R                  5      r " S S\R                  \ R                  5      r " S S\R                  \ R                  5      r " S S5      r " S S\R                  \\ R                  5      r " S S\R                  \\ R                  5      r\S:X  a  \ R.                  " 5         gg)    N)import_module   )utilc                   &    \ rS rSrS rS rS rSrg)ResourceTests	   c                     [         R                  " U R                  5      S-  nU R                  UR	                  5       5        g )Nbinary.file)	resourcesfilesdata
assertTrueis_fileselftargets     a/home/james-whalen/.local/lib/python3.13/site-packages/importlib_resources/tests/test_resource.pytest_is_file_exists!ResourceTests.test_is_file_exists   s,    +m;()    c                     [         R                  " U R                  5      S-  nU R                  UR	                  5       5        g )Nz
not-a-file)r   r   r   assertFalser   r   s     r   test_is_file_missing"ResourceTests.test_is_file_missing   s.    +l:)*r   c                     [         R                  " U R                  5      S-  nU R                  UR	                  5       5        U R                  UR                  5       5        g )Nsubdirectory)r   r   r   r   r   r   is_dirr   s     r   test_is_dirResourceTests.test_is_dir   s@    +n<)*(r    N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r    r   r   r   r   	   s    *+)r   r   c                       \ rS rSrSrg)ResourceDiskTests   r    Nr!   r"   r#   r$   r%   r    r   r   r'   r'          r   r'   c                       \ rS rSrSrg)ResourceZipTests   r    Nr)   r    r   r   r,   r,      r*   r   r,   c                 `    U R                  5        Vs1 s H  oR                  iM     sn$ s  snf )N)iterdirname)traversableitems     r   namesr3   "   s'    "-"5"5"78"7$II"7888s   +c                   ,    \ rS rSrS rS rS rS rSrg)ResourceLoaderTests&   c                     [         R                  " U R                  U R                  R                  / SQS9nU R	                  [        [        R                  " U5      5      1 Sk5        g )NABCfilepathcontents>   r9   r:   r;   )r   create_packager   __file__assertEqualr3   r   r   r   packages     r   test_resource_contents*ResourceLoaderTests.test_resource_contents'   sG    %%!3!3o
 	yw78/Jr   c                     [         R                  " U R                  U R                  R                  / SQS9nU R	                  [
        R                  " U5      R                  S5      R                  5       5        g )Nr9   r:   r;   zD/EzD/Fr<   r:   )	r   r@   r   rA   r   r   r   joinpathr   rC   s     r   test_is_file ResourceLoaderTests.test_is_file-   sT    %%##2

 		099#>FFHIr   c                     [         R                  " U R                  U R                  R                  / SQS9nU R	                  [
        R                  " U5      R                  S5      R                  5       5        g )NrH   r<   D)	r   r@   r   rA   r   r   r   rI   r   rC   s     r   r   ResourceLoaderTests.test_is_dir5   sT    %%##2

 		099#>EEGHr   c                     [         R                  " U R                  U R                  R                  / SQS9nU R	                  [
        R                  " U5      R                  S5      R                  5       5        g )NrH   r<   Z)	r   r@   r   rA   r   r   r   rI   r   rC   s     r   test_resource_missing)ResourceLoaderTests.test_resource_missing=   sV    %%##2

 	1::3?GGIJr   r    N)	r!   r"   r#   r$   rE   rJ   r   rQ   r%   r    r   r   r5   r5   &   s    KJIKr   r5   c                       \ rS rSrS rSrg)ResourceCornerCaseTestsF   c                    [         R                  " U R                  U R                  R                  / SQS9n[	        5       Ul        SUl        UR
                  UR                  l        UR                  UR                  l        U R                  [        R                  " U5      R                  S5      R                  5       5        g)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
r8   r<   z/path/which/shall/not/be/namedr9   N)r   r@   r   rA   object
__loader____spec__loaderoriginr   r   r   rI   r   )r   modules     r   #test_package_has_no_reader_fallback;ResourceCornerCaseTests.test_package_has_no_reader_fallbackG   s     $$!3!3o
 #H:!'!2!2!'099#>FFHIr   r    N)r!   r"   r#   r$   r]   r%   r    r   r   rT   rT   F   s    Jr   rT   c                   2    \ rS rSrS rS rS rS rS rSr	g)	ResourceFromZipsTest01Z   c                     [        S5      nU R                  [        R                  " U5      R	                  S5      R                  5       5        g Ndata01.subdirectoryr
   )r   r   r   r   rI   r   r   	submodules     r   test_is_submodule_resource1ResourceFromZipsTest01.test_is_submodule_resource[   s6    !"78			2;;MJRRTUr   c                     U R                  [        R                  " S5      R                  S5      R	                  5       5        g rc   r   r   r   rI   r   r   s    r   $test_read_submodule_resource_by_name;ResourceFromZipsTest01.test_read_submodule_resource_by_name_   s/    OO12;;MJRRT	
r   c                 |    [        S5      nU R                  [        [        R                  " U5      5      SS15        g Nrd   __init__.pyr
   )r   rB   r3   r   r   re   s     r   test_submodule_contents.ResourceFromZipsTest01.test_submodule_contentsd   s3    !"78	)//),-}/M	
r   c                 f    U R                  [        [        R                  " S5      5      SS15        g ro   rB   r3   r   r   rk   s    r   test_submodule_contents_by_name6ResourceFromZipsTest01.test_submodule_contents_by_namej   s*    )//"789M*	
r   c                    [         R                  " [         R                  " S5      5       nUR                  S:X  d   eUR	                  5       (       d   eUR                  S5      R	                  5       (       d   e[        [        UR                  5       5      5      (       d   e S S S 5        WR                  R                  5       (       a   eg ! , (       d  f       N0= f)Ndata01r   )r   as_filer   r0   r   rI   lenlistr/   parentexists)r   r   s     r   test_as_file_directory-ResourceFromZipsTest01.test_as_file_directoryp   s    yx89T99(((;;== ===0779999tDLLN+,,,,	 :
 ;;%%''''' :9s   A9C
Cr    N)
r!   r"   r#   r$   rg   rl   rq   ru   r~   r%   r    r   r   r`   r`   Z   s    V



(r   r`   c                       \ rS rSrSrS rSrg)ResourceFromZipsTest02y   data02c                     U R                  [        [        R                  " S5      5      SS15        U R                  [        [        R                  " S5      5      SS15        g)zm
Test thata zip with two unrelated subpackages return
distinct resources. Ref python/importlib_resources#44.
z
data02.onerp   zresource1.txtz
data02.twozresource2.txtNrt   rk   s    r   test_unrelated_contents.ResourceFromZipsTest02.test_unrelated_contents|   sT    
 	)//,/0O,	
 	)//,/0O,	
r   r    N)r!   r"   r#   r$   MODULEr   r%   r    r   r   r   r   y   s    F
r   r   c                   l    \ rS rSrSrS rS rS r\R                  " S5      S 5       r
S rS	 rS
 rSrg)DeletingZipsTest   zVHaving accessed resources in a zip file should not keep an open
reference to the zip.
c                     [         R                  " S5      R                  5        Vs/ s H  oR                  PM       ng s  snf )Nrx   )r   r   r/   r0   )r   r2   s     r   test_iterdir_does_not_keep_open0DeletingZipsTest.test_iterdir_does_not_keep_open   s-    (x8@@BCBtBCCs   ?c                 j    [         R                  " S5      R                  S5      R                  5         g Nrx   r
   r   r   rI   r   rk   s    r   test_is_file_does_not_keep_open0DeletingZipsTest.test_is_file_does_not_keep_open   "    !**=9AACr   c                 j    [         R                  " S5      R                  S5      R                  5         g )Nrx   znot-presentr   rk   s    r   'test_is_file_failure_does_not_keep_open8DeletingZipsTest.test_is_file_failure_does_not_keep_open   r   r   zDesired but not supported.c                 ^    [         R                  " [         R                  " S5      S-  5        g r   )r   ry   r   rk   s    r   test_as_file_does_not_keep_open0DeletingZipsTest.test_as_file_does_not_keep_open   s    )//(3mCDr   c                 z    [         R                  " [         R                  " S5      S-  5      R                  5         g)zZ
Mimic what certifi does on import to make its bundle
available for the process duration.
rx   r
   N)r   ry   r   	__enter__rk   s    r   $test_entered_path_does_not_keep_open5DeletingZipsTest.test_entered_path_does_not_keep_open   s)    
 	)//(3mCDNNPr   c                 j    [         R                  " S5      R                  S5      R                  5         g r   )r   r   rI   
read_bytesrk   s    r   #test_read_binary_does_not_keep_open4DeletingZipsTest.test_read_binary_does_not_keep_open   s"    !**=9DDFr   c                 h    [         R                  " S5      R                  S5      R                  SS9  g )Nrx   
utf-8.filezutf-8)encoding)r   r   rI   	read_textrk   s    r   !test_read_text_does_not_keep_open2DeletingZipsTest.test_read_text_does_not_keep_open   s'    !**<8BBGBTr   r    N)r!   r"   r#   r$   __doc__r   r   r   unittestskipr   r   r   r   r%   r    r   r   r   r      sK    DDD ]]/0E 1EQGUr   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
ResourceFromNamespaceTests   c                     U R                  [        R                  " [        S5      5      R	                  S5      R                  5       5        g Nnamespacedata01r
   )r   r   r   r   rI   r   rk   s    r   rg   5ResourceFromNamespaceTests.test_is_submodule_resource   s1    OOM*;<=Xm$WY	
r   c                     U R                  [        R                  " S5      R                  S5      R	                  5       5        g r   rj   rk   s    r   rl   ?ResourceFromNamespaceTests.test_read_submodule_resource_by_name   s/    OO-.77FNNP	
r   c                     [        [        R                  " [        S5      5      5      n UR	                  S5        U R                  U1 Sk5        g ! [
         a     N!f = fNr   __pycache__>   r   r   r
   utf-16.filer3   r   r   r   removeKeyErrorrB   r   r?   s     r   rq   2ResourceFromNamespaceTests.test_submodule_contents   sV    7H)IJK	OOM* 	R	
  		s   A 
AAc                     [        [        R                  " S5      5      n UR                  S5        U R                  U1 Sk5        g ! [         a     N!f = fr   r3   r   r   r   r   rB   r   s     r   ru   :ResourceFromNamespaceTests.test_submodule_contents_by_name   sQ    ):;<	OOM* 	R	
  		s   A 
AAc                     [        [        R                  " [        S5      5      5      n UR	                  S5        U R                  US15        g ! [
         a     N f = fNznamespacedata01.subdirectoryr   r
   r   r   s     r   test_submodule_sub_contents6ResourceFromNamespaceTests.test_submodule_sub_contents   sT    7U)VWX	OOM* 	M?3  		s   A 
AAc                     [        [        R                  " S5      5      n UR                  S5        U R                  US15        g ! [         a     N f = fr   r   r   s     r   #test_submodule_sub_contents_by_name>ResourceFromNamespaceTests.test_submodule_sub_contents_by_name   sO    )GHI	OOM* 	M?3  		s   A 
AAr    N)r!   r"   r#   r$   rg   rl   rq   ru   r   r   r%   r    r   r   r   r      s     




44r   r   c                       \ rS rSrSrSrg)ResourceFromNamespaceDiskTests   r   r    Nr!   r"   r#   r$   r   r%   r    r   r   r   r      	    
 Fr   r   c                       \ rS rSrSrSrg)ResourceFromNamespaceZipTests   r   r    Nr   r    r   r   r   r      r   r   r   __main__)r   	importlibr   importlib_resourcesr    r   r   	DiskSetupTestCaser'   ZipSetupr,   r3   r5   rT   r`   r   r   r   r   r   r!   mainr    r   r   <module>r      s1    # ' ) )"	t~~x7H7H 		}dmmX5F5F 	9K$..(*;*; K@Jdnnh.?.? J((T]]H,=,= (>
T]]H,=,= 
$Ut}}h&7&7 U@/4 /4dNNMM zMMO r   