
    daf                      ^   d dl mZ d dlmZ d dlZd dlZd dlZd dlZdZdZ	 G d d      Z
 G d d	      Z G d
 d      Z G d de      Z ej                  eej                        \  ZZ G d de      Z ej                  eej                        \  ZZedk(  r ej,                          yy)    )util)	machineryNfinez
fine.bogusc                   >    e Zd Zedd       Zed        Zed        Zy)BadSpecFinderLoaderNc                 F    |t         k(  rt        j                  ||       }|S y N)SUBMOD_NAMEr   
ModuleSpec)clsfullnamepathtargetspecs        ?/root/Python-3.12.4/Lib/test/test_importlib/import_/test_api.py	find_speczBadSpecFinderLoader.find_spec   s&    {"''#6DK #    c                      y r	    )r   s    r   create_modulez!BadSpecFinderLoader.create_module   s    r   c                 @    | j                   t        k(  rt        d      y NzI cannot be loaded!)__name__r
   ImportError)modules    r   exec_modulezBadSpecFinderLoader.exec_module   s    ??k)344 *r   )NN)r   
__module____qualname__classmethodr   staticmethodr   r   r   r   r   r   r      s<     
   5 5r   r   c                       e Zd Zed        Zy)BadLoaderFinderc                 ,    |t         k(  rt        d      y r   )r
   r   )r   r   s     r   load_modulezBadLoaderFinder.load_module   s    {"344 #r   N)r   r   r   r   r$   r   r   r   r"   r"      s    5 5r   r"   c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	APITestz{Test API-specific details for __import__ (e.g. raising the right
    exception when passing in an int for the module name).c                     | j                  t              5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nzsome module that does not exist)assertRaisesModuleNotFoundErrorr   import_importlibselfs    r   test_raises_ModuleNotFoundErrorz'APITest.test_raises_ModuleNotFoundError*   s9    23 	E!!"CD	E 	E 	Es   5>c                 z    | j                  t              5  | j                  d       d d d        y # 1 sw Y   y xY w)N*   )r(   	TypeError
__import__r+   s    r   test_name_requires_rparitionz$APITest.test_name_requires_rparition.   s1    y) 	 OOB	  	  	 s   1:c                     | j                  t              5  | j                  dt               d       d d d        y # 1 sw Y   y xY w)Nos)level)r(   
ValueErrorr1   globalsr+   s    r   test_negative_levelzAPITest.test_negative_level3   s;     z* 	7OOD')2O6	7 	7 	7s	   <Ac                 l   t        j                  t              }dg|_        t	        j
                  | j                  g      5  t	        j                  t              5  |t        j                  t        <   | j                  t        dg       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NXXX	meta_pathznot herefromlist)types
ModuleTypePKG_NAME__path__r   import_statebad_finder_loaderuncachesysmodulesr1   r,   mods     r   test_nonexistent_fromlist_entryz'APITest.test_nonexistent_fromlist_entry:   s     x(w$*@*@)AB 	Ah' A(+H%J<@A	A 	AA A	A 	As$   B*0BB*B'	#B**B3c           	         t        j                  t              }dg|_        t	        j
                  | j                  g      5  t	        j                  t              5  |t        j                  t        <   | j                  t              5  | j                  t        t        j                  d      d   g       d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr;   r<   .r5   r>   )r@   rA   rB   rC   r   rD   rE   rF   rG   rH   r(   r   r1   r
   
rpartitionrI   s     r   #test_fromlist_load_error_propagatesz+APITest.test_fromlist_load_error_propagatesD   s     x(w$*@*@)AB 	Ph' P(+H%&&{3 POOH.9.D.DS.I".M-N $ PPP	P 	PP PP P	P 	Ps<   C*-C
/C9CC*CCC'	#C**C3c           	      v   t        j                  t              }g |_        t	        j
                  | j                  g      5  t	        j                  t        t              5  |t        j                  t        <   d t        j                  t        <   | j                  t              5 }| j                  t        t        j                  d      d   g       d d d        | j                  j                   j"                  t               d d d        d d d        y # 1 sw Y   DxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr<   rM   r5   r>   )r@   rA   rB   rC   r   rD   rE   rF   r
   rG   rH   r(   r)   r1   rN   assertEqual	exceptionname)r,   rJ   cms      r   test_blocked_fromlistzAPITest.test_blocked_fromlistQ   s    x($*@*@)AB 	Ah4 A(+H%+/K(&&':; PrOOH.9.D.DS.I".M-N $ PP   !2!2K@A	A 	AP PA A	A 	As=   D/!AD#%/D2D#D/D D##D,	(D//D8N)
r   r   r   __doc__r-   r2   r9   rK   rO   rU   r   r   r   r&   r&   %   s)    >E 
7APAr   r&   c                   T     e Zd ZeZ fdZ fdZ fdZ fdZ fdZ	 fdZ
 xZS )OldAPITestsc                     t        j                         5  t        j                  dt               t        |           d d d        y # 1 sw Y   y xY wNignore)warningscatch_warningssimplefilterImportWarningsuperr-   r,   	__class__s    r   r-   z+OldAPITests.test_raises_ModuleNotFoundErrorc   ?    $$& 	6!!(M:G35	6 	6 	6   )AAc                     t        j                         5  t        j                  dt               t        |           d d d        y # 1 sw Y   y xY wrZ   )r\   r]   r^   r_   r`   r2   ra   s    r   r2   z(OldAPITests.test_name_requires_rparitionh   s?    $$& 	3!!(M:G02	3 	3 	3rd   c                     t        j                         5  t        j                  dt               t        |           d d d        y # 1 sw Y   y xY wrZ   )r\   r]   r^   r_   r`   r9   ra   s    r   r9   zOldAPITests.test_negative_levelm   s?    $$& 	*!!(M:G')	* 	* 	*rd   c                     t        j                         5  t        j                  dt               t        |           d d d        y # 1 sw Y   y xY wrZ   )r\   r]   r^   r_   r`   rK   ra   s    r   rK   z+OldAPITests.test_nonexistent_fromlist_entryr   rc   rd   c                     t        j                         5  t        j                  dt               t        |    d d d        y # 1 sw Y   y xY wrZ   )r\   r]   r^   r_   r`   rO   ra   s    r   rO   z/OldAPITests.test_fromlist_load_error_propagatesw   s<    $$& 	8!!(M:G7	8 	8 	8s   %AAc                     t        j                         5  t        j                  dt               t        |           d d d        y # 1 sw Y   y xY wrZ   )r\   r]   r^   r_   r`   rU   ra   s    r   rU   z!OldAPITests.test_blocked_fromlist|   s?    $$& 	,!!(M:G)+	, 	, 	,rd   )r   r   r   r"   rE   r-   r2   r9   rK   rO   rU   __classcell__)rb   s   @r   rX   rX   `   s,    '6
3
*
6
8
, ,r   rX   )r1   c                       e Zd ZeZy)SpecAPITestsN)r   r   r   r   rE   r   r   r   rl   rl      s    +r   rl   __main__)test.test_importlibr   	importlibr   rG   r@   unittestr\   rB   r
   r   r"   r&   rX   	test_bothr1   Frozen_OldAPITestsSource_OldAPITestsrl   Frozen_SpecAPITestsSource_SpecAPITestsr   mainr   r   r   <module>rw      s    $  
   5 5"5 58A 8Av,' ,H T^^KDOO<,7 , T^^LT__= zHMMO r   