
    daf                        d dl mZmZ  ej                  d      Zd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZmZmZ d
dZ G d dej                         Z ej$                  ee      \  ZZed	k(  r e	j,                          yy)    )abcutilzimportlib.machineryN)import_helper	REPO_ROOT
STDLIB_DIRc                     | sJ |r5t        j                  j                  t        g| j	                  d      d S t        j                  j                  t        g| j	                  d       dz   S )N.z__init__.pyz.py)ospathjoinr   split)nameispkgs     A/root/Python-3.12.4/Lib/test/test_importlib/frozen/test_finder.pyresolve_stdlib_filer      sV    K4ww||JHCH-HHww||J9C9EAA    c                   \    e Zd ZdZd ZddZddZd Zd Zd Z	dZ
dZdZd	 Zd
 Zd Zd Zy)FindSpecTestszTest finding frozen modules.c                     | j                   j                  }t        j                         5   |j                  |fi |cd d d        S # 1 sw Y   y xY w)N)	machineryFrozenImporterr   frozen_modules	find_spec)selfr   kwargsfinders       r   findzFindSpecTests.find   sG    ..))+ 	4#6##D3F3	4 	4 	4s   AAc                    | j                  |j                  |       | j                  |j                  | j                  j
                         | j                  |j                  d       | j                  |j                         |r| j                  |j                         n| j                  |j                         | j                  |j                         y )Nfrozen)assertEqualr   assertIsloaderr   r   originassertFalsehas_locationassertIsNotNonesubmodule_search_locationsassertIsNoneloader_state)r   specr   r   s       r   check_basiczFindSpecTests.check_basic   s    D)dkk4>>#@#@Ah/**+  !@!@Ad==>T../r   Nc                     |s|s|j                   }t        |      }t        t        |j                              }t        ||r|nd       }| j                  ||       y )N)orignamefilename)r   r   dictvarsr)   assertDictEqual)r   r*   r-   r.   actualexpecteds         r   check_loader_statez FindSpecTests.check_loader_state*   sX    99*84Hd4,,-. !)Xt
 	VX.r   c                 J   t               }t        |j                  d|      }t        |j                  dd      }|r||u ry|sg }nC||j                  k7  r|j	                  d      sg }n t
        j                  j                  |      g}| j                  |j                  |       y)z*This is only called when testing packages.r.   r-   N<)
objectgetattrr)   r   
startswithr
   r   dirnameassertListEqualr'   )r   r*   missingr.   r-   r3   s         r   check_search_locationsz$FindSpecTests.check_search_locations9   s    (4,,j'B4,,j$?8w.H"8+>+>s+CH12HT<<hGr   c                 :   g d}|D ]U  }| j                  | d|       5  | j                  |      }| j                  ||       | j                  |       d d d        W ddd}|j	                         D ]Y  \  }}| j                  | d|       5  | j                  |      }| j                  ||       | j                  ||       d d d        [ ddg}|D ]y  }d|j                  d	      d
   z   }t        |      }| j                  | d|       5  | j                  |      }| j                  ||       | j                  |||       d d d        { ddi}|j	                         D ]  \  }}d }t        j                  j                  t        g| }| j                  | d|       5  | j                  |      }| j                  ||       | j                  |||       d d d         y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   8xY w# 1 sw Y   xY w)N)	__hello____phello__.spamz__phello__.ham.eggs -> r?   zimportlib._bootstrap)__hello_alias___frozen_importlibz__phello__.__init__z__phello__.ham.__init__r6   r	   r   __hello_only__)Toolsfreezezflag.py)subTestr   r+   r4   items
rpartitionr   r
   r   r   r   )r   modulesr   r*   r-   r.   r   s          r   test_modulezFindSpecTests.test_moduleI   sT   

  	.Dd4&12 .yy  t,''-. .	.  +!7
 &mmo 	8ND(d8*56 8yy  t,''h78 8	8 "%
  	BDT__S1!44H*40Hd8*56 Byy  t,''hAB B	B <
 "--/ 	BJD$Hww||I55Hd8*56 Byy  t,''hAB B	B7. .8 8B BB Bs/   5G*6G77H(7H*G4	7H	H	H	c                 X   ddg}|D ]w  }t        |d      }| j                  | d|       5  | j                  |      }| j                  ||d       | j	                  |||       | j                  |       d d d        y ddi}|j                         D ]z  \  }}t        |d      }| j                  | d|       5  | j                  |      }| j                  ||d       | j	                  |||       | j                  |       d d d        | y # 1 sw Y   xY w# 1 sw Y   xY w)	N
__phello__z__phello__.hamT)r   rA   __phello_alias__r?   F)r   rG   r   r+   r4   r=   rH   )r   packagesr   r.   r*   r-   s         r   test_packagezFindSpecTests.test_packages   sH   
  	2D*4t<Hd4&12 2yy  t4 8''dH=++D1	2 2	2 
 'nn. 	2ND(*85AHd8*56 2yy  t4 8''hA++D1	2 2	22 22 2s   A
D>A
D D	 D)	c                     dD ]l  }| j                  |      }d t               ddg dgdgfD ]C  }| j                  ||f      5  | j                  ||      }| j                  ||       d d d        E n y # 1 sw Y   RxY w)N)r?   rM   r@    eggs)r   )r   r7   rG   r    )r   r   r2   r   r*   s        r   test_path_ignoredzFindSpecTests.test_path_ignored   s    B 	3DYYt_FvxVR"xH 3\\4,/ 399T95D$$T623 33	33 3s    &A33A<c                 P   d}t        j                  |ddi5  dd l}dd l}d d d        d}| j	                  |      }d t               dfD ]A  }| j                  |      5  | j	                  ||      }| j                  ||       d d d        C y # 1 sw Y   pxY w# 1 sw Y   ZxY w)N)r?   rM   	usefrozenTr   r?   znot-a-module-object)target)r   CleanImportr?   rM   r   r7   rG   r    )r   importedmatchnonmatchr   r2   rW   r*   s           r   test_target_ignoredz!FindSpecTests.test_target_ignored   s    .&&ADA 	*%)	* 4UHfh8MN 	/Ff% /yyfy5  v./ /	/	* 	*/ /s   	B&BBB%	c                 H    | j                  d      }| j                  |       y )Nz
<not real>)r   r(   )r   r*   s     r   test_failurezFindSpecTests.test_failure   s    yy&$r   c                    | j                   j                  }t        j                  d      5  |j	                  d      }|j	                  d      }d d d        | j                         | j                         y # 1 sw Y   ,xY w)NF)enabledr?   rD   )r   r   r   r   r   r(   )r   r   spec1spec2s       r   test_not_using_frozenz#FindSpecTests.test_not_using_frozen   ss    ..))%8 	7$$[1E$$%56E		7
 	% % 	7 	7s   #A;;BF)NN)__name__
__module____qualname____doc__r   r+   r4   r=   rK   rP   test_module_in_packagetest_package_in_packagetest_package_over_modulerT   r\   r^   rc    r   r   r   r      sP    &4
	0/H (BT20 ""  $3
/ !r   r   )r   __main__rd   )test.test_importlibr   r   import_importlibr   _impmarshalos.pathr
   unittestwarningstest.supportr   r   r   r   FinderTestsr   	test_bothFrozen_FindSpecTestsSource_FindSpecTestsre   mainrl   r   r   <module>r{      s    )!D!!"78	      = =B[!COO [!@ T^^MY7 zHMMO r   