Your IP : 216.73.216.213


Current Path : /opt/alt/python36/lib64/python3.6/test/test_importlib/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/test/test_importlib/__pycache__/test_util.cpython-36.opt-2.pyc

3

��2a�z�@s�ddlmZejd�Zejd�Zejd�Zejd�ZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlZddlZddlZGd	d
�d
�Zejeed�\ZZGdd�d�Zejeeeed
�\ZZGdd�d�Zejeed�\ZZGdd�d�Zejeed�\ZZGdd�d�Zejeed�\Z Z!Gdd�d�Z"eje"ed�\Z#Z$Gdd�d�Z%eje%eeed�\Z&Z'Gdd�d�Z(eje(ed�\Z)Z*Gdd�d�Z+eje+ed�\Z,Z-Gdd�dej.�Z(e/dk�r�ej0�dS)�)�utilz
importlib.abc�	importlibzimportlib.machineryzimportlib.util�N)�supportc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�DecodeSourceBytesTestsustring ='ü'cCs&|jjd�}|j|jj|�|j�dS)Nzutf-8)�source�encode�assertEqualr�
decode_source)�self�source_bytes�r
�./opt/alt/python36/lib64/python3.6/test_util.py�test_ut8_defaultsz'DecodeSourceBytesTests.test_ut8_defaultcCs,d|j}|jd�}|j|jj|�|�dS)Nz# coding=latin-1
zlatin-1)rrr	rr
)rrrr
r
r�test_specified_encodings

z.DecodeSourceBytesTests.test_specified_encodingcCsBdj|j|jg�}|jd�}|j|jj|�dj|j|jg��dS)Nz
zutf-8�
)�joinrrr	rr
)rrrr
r
r�test_universal_newlines s
z.DecodeSourceBytesTests.test_universal_newlinesN)�__name__�
__module__�__qualname__rrrrr
r
r
rrsrc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�ModuleFromSpecTestsc	CsDGdd�d�}|jjd|��}|jt��|jj|�}WdQRXdS)Nc@seZdZdd�ZdS)z9ModuleFromSpecTests.test_no_create_module.<locals>.LoadercSsdS)Nr
)r�moduler
r
r�exec_module0szEModuleFromSpecTests.test_no_create_module.<locals>.Loader.exec_moduleN)rrrrr
r
r
r�Loader/sr�test)�	machinery�
ModuleSpec�assertRaises�ImportErrorr�module_from_spec)rr�specrr
r
r�test_no_create_module.sz)ModuleFromSpecTests.test_no_create_modulecCsRGdd�d|jj�}|jjd|��}|jj|�}|j|tj�|j	|j
|j�dS)Nc@seZdZdd�ZdS)zCModuleFromSpecTests.test_create_module_returns_None.<locals>.LoadercSsdS)Nr
)rr!r
r
r�
create_module8szQModuleFromSpecTests.test_create_module_returns_None.<locals>.Loader.create_moduleN)rrrr#r
r
r
rr7srr)�abcrrrrr �assertIsInstance�types�
ModuleTyper	r�name)rrr!rr
r
r�test_create_module_returns_None6s
z3ModuleFromSpecTests.test_create_module_returns_Nonecsjd�Gdd�dtj��G��fdd�d|jj�}|jjd|��}|jj|�}|j|��|j	|j
��dS)Nzalready setc@seZdZdS)z<ModuleFromSpecTests.test_create_module.<locals>.CustomModuleN)rrrr
r
r
r�CustomModuleAsr*cseZdZ��fdd�ZdS)z6ModuleFromSpecTests.test_create_module.<locals>.Loadercs�|j�}�|_|S)N)r(r)rr!r)r*r(r
rr#Ds
zDModuleFromSpecTests.test_create_module.<locals>.Loader.create_moduleN)rrrr#r
)r*r(r
rrCsrr)r&r'r$rrrrr r%r	r)rrr!rr
)r*r(r�test_create_module?sz&ModuleFromSpecTests.test_create_modulecCs0|jjdt��}|jj|�}|j|j|j�dS)Nr)rr�objectrr r	rr()rr!rr
r
r�
test___name__Msz!ModuleFromSpecTests.test___name__cCs.|jjdt��}|jj|�}|j|j|�dS)Nr)rrr,rr r	�__spec__)rr!rr
r
r�
test___spec__Rsz!ModuleFromSpecTests.test___spec__cCs2t�}|jjd|�}|jj|�}|j|j|�dS)Nr)r,rrrr �assertIs�
__loader__)r�loaderr!rr
r
r�test___loader__Wsz#ModuleFromSpecTests.test___loader__cCs0|jjdt��}|jj|�}|j|j|j�dS)Nztest.pkg)rrr,rr r	�__package__�parent)rr!rr
r
r�test___package__]sz$ModuleFromSpecTests.test___package__cCs4|jjdt�dd�}|jj|�}|j|j|j�dS)NrT)�
is_package)rrr,rr r	�__path__�submodule_search_locations)rr!rr
r
r�
test___path__bsz!ModuleFromSpecTests.test___path__cCs:|jjdt�dd�}d|_|jj|�}|j|j|j�dS)Nrz	some/path)�originT)	rrr,�has_locationrr r	�__file__r;)rr!rr
r
r�
test___file__gsz!ModuleFromSpecTests.test___file__cCs<|jjdt��}d|_d|_|jj|�}|j|j|j�dS)Nrz	some/pathT)	rrr,�cachedr<rr r	�
__cached__)rr!rr
r
r�test___cached__ms
z#ModuleFromSpecTests.test___cached__N)
rrrr"r)r+r-r/r3r6r:r>rAr
r
r
rr,s	r)r$rrc@sheZdZedd��Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�ZdS)�ModuleForLoaderTestsc
Cs,tj��tjdt�|jj|�SQRXdS)N�ignore)�warnings�catch_warnings�simplefilter�DeprecationWarningr�module_for_loader)�cls�funcr
r
rrH~s
z&ModuleForLoaderTests.module_for_loadercCsJtj��8tjdt�|jt��|jjdd��}WdQRXWdQRXdS)N�errorcSs|S)Nr
)�xr
r
r�<lambda>�sz3ModuleForLoaderTests.test_warning.<locals>.<lambda>)rDrErFrGrrrH)rrJr
r
r�test_warning�s
z!ModuleForLoaderTests.test_warningcCs|jdd��}|||�S)NcSs|S)Nr
)rrr
r
rrM�sz4ModuleForLoaderTests.return_module.<locals>.<lambda>)rH)rr(�fxnr
r
r�
return_module�sz"ModuleForLoaderTests.return_modulecCs:dd�}|j|�}y|||�Wntk
r4YnXdS)NcSst�dS)N)r)rrr
r
r�to_wrap�sz5ModuleForLoaderTests.raise_exception.<locals>.to_wrap)rHr)rr(rQrOr
r
r�raise_exception�s
z$ModuleForLoaderTests.raise_exceptionc
CsRd}tj|��|j|�}|j|tj�WdQRX|j|tj�|j	|j
|�dS)Nza.b.c)r�uncacherP�assertIn�sys�modulesr%r&r'r	r)rZmodule_namerr
r
r�test_new_module�s
z$ModuleForLoaderTests.test_new_modulecs�G�fdd�d�}d}tjd�}d|_d|_tj|��N|tj|<|�}|j|�}�j	|tj|��j
|j|��j
|j|�WdQRXdS)Ncs"eZdZdd�Z�jdd��ZdS)z4ModuleForLoaderTests.test_reload.<locals>.FakeLoadercSsdS)NTr
)rr(r
r
rr7�sz?ModuleForLoaderTests.test_reload.<locals>.FakeLoader.is_packagecSs|S)Nr
)rrr
r
r�load_module�sz@ModuleForLoaderTests.test_reload.<locals>.FakeLoader.load_moduleN)rrrr7rHrXr
)rr
r�
FakeLoader�srYza.b.c�*)r&r'r1r4rrSrUrVrXr0r	)rrYr(rr2Zreturned_moduler
)rr�test_reload�s


z ModuleForLoaderTests.test_reloadc
Cs6d}tj|��|j|�|j|tj�WdQRXdS)Nza.b.c)rrSrR�assertNotInrUrV)rr(r
r
r�test_new_module_failure�s
z,ModuleForLoaderTests.test_new_module_failurecCsNd}tj|�}tj|��,|tj|<|j|�|j|tj|�WdQRXdS)Nza.b.c)r&r'rrSrUrVrRr0)rr(rr
r
r�test_reload_failure�s


z(ModuleForLoaderTests.test_reload_failurecCs6dd�}|j|�}|j|j|j�|j|j|j�dS)NcSsdS)Nr
)rrr
r
rrO�sz6ModuleForLoaderTests.test_decorator_attrs.<locals>.fxn)rHr	rr)rrO�wrappedr
r
r�test_decorator_attrs�s
z)ModuleForLoaderTests.test_decorator_attrsc
CsbGdd�dtj�}d}||�}tj|��0|j|�|tj|<|j|�}|j||�WdQRXdS)Nc@seZdZdd�ZdS)z;ModuleForLoaderTests.test_false_module.<locals>.FalseModulecSsdS)NFr
)rr
r
r�__bool__�szDModuleForLoaderTests.test_false_module.<locals>.FalseModule.__bool__N)rrrrar
r
r
r�FalseModule�srb�mod)	r&r'rrSZassertFalserUrVrPr0)rrbr(rZgivenr
r
r�test_false_module�s


z&ModuleForLoaderTests.test_false_modulecs�G�fdd�d�}d}tj|��B|d�}|j|�}�j|j|��j|j|��j|jd�WdQRXd}tj|��B|d�}|j|�}�j|j|��j|j|��j|j|�WdQRXdS)Ncs*eZdZdd�Zdd�Z�jdd��ZdS)z<ModuleForLoaderTests.test_attributes_set.<locals>.FakeLoadercSs
||_dS)N)�_pkg)rr7r
r
r�__init__�szEModuleForLoaderTests.test_attributes_set.<locals>.FakeLoader.__init__cSs|jS)N)re)rr(r
r
rr7�szGModuleForLoaderTests.test_attributes_set.<locals>.FakeLoader.is_packagecSs|S)Nr
)rrr
r
rrX�szHModuleForLoaderTests.test_attributes_set.<locals>.FakeLoader.load_moduleN)rrrrfr7rHrXr
)rr
rrY�srYzpkg.modF�pkgzpkg.subT)rrSrXr	rr0r1r4)rrYr(r2rr
)rr�test_attributes_set�s	

z(ModuleForLoaderTests.test_attributes_setN)rrr�classmethodrHrNrPrRrWr[r]r^r`rdrhr
r
r
rrBzs	
	rBc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�SetPackageTestscs`�fdd�}|jj|�}tj��tjdt�|�WdQRX|jt�d��|j|�j	�dS)Ncs�S)Nr
r
)rr
rrMsz(SetPackageTests.verify.<locals>.<lambda>rCr4)
r�set_packagerDrErFrG�
assertTrue�hasattrr	r4)rr�expectrOr_r
)rr�verifys
zSetPackageTests.verifycCs tjd�}d|_|j|d�dS)Nr�)r&r'r4ro)rrr
r
r�test_top_levels
zSetPackageTests.test_top_levelcCs(tjd�}dg|_d|_|j|d�dS)Nrgz<path>)r&r'r8r4ro)rrr
r
r�test_packages
zSetPackageTests.test_packagecCs tjd�}d|_|j|d�dS)Nzpkg.modrg)r&r'r4ro)rrr
r
r�test_submodules
zSetPackageTests.test_submodulecCs.tjd�}t|d�rt|d�|j|d�dS)Nrcr4rp)r&r'rm�delattrro)rrr
r
r�test_setting_if_missing s


z'SetPackageTests.test_setting_if_missingcCs.x(dD] }tjd�}||_|j||�qWdS)NTFrc)TF)r&r'r4ro)r�valuerr
r
r�test_leaving_alone's

z"SetPackageTests.test_leaving_alonec
CsXdd�}tj��tjdt�|jj|�}WdQRX|j|j|j�|j|j|j�dS)NcSsdS)Nr
)rr
r
rrO/sz1SetPackageTests.test_decorator_attrs.<locals>.fxnrC)	rDrErFrGrrkr	rr)rrOr_r
r
rr`.s
z$SetPackageTests.test_decorator_attrsN)
rrrrorqrrrsrurwr`r
r
r
rrj�srjc@s0eZdZedd��Zdd�Zdd�Zdd�Zd	S)
�SetLoaderTestscsG�fdd�d�}|�j_|S)NcseZdZ�jjdd��ZdS)z/SetLoaderTests.DummyLoader.<locals>.DummyLoadercSs|jS)N)r)rrr
r
rrXDsz;SetLoaderTests.DummyLoader.<locals>.DummyLoader.load_moduleN)rrrr�
set_loaderrXr
)rr
r�DummyLoaderCsrz)�	__class__rz)rrzr
)rrrz@szSetLoaderTests.DummyLoadercCsl|j�}tjd�|_y
|j`Wntk
r2YnXtj��&tjdt	�|j
||jd�j�WdQRXdS)N�blahrC)rzr&r'rr1�AttributeErrorrDrErFrGr	rX)rr2r
r
r�test_no_attributeJs

z SetLoaderTests.test_no_attributecCsT|j�}tjd�|_d|j_tj��&tjdt�|j	||j
d�j�WdQRXdS)Nr|rC)rzr&r'rr1rDrErFrGr	rX)rr2r
r
r�test_attribute_is_NoneUs
z%SetLoaderTests.test_attribute_is_NonecCsT|j�}tjd�|_d|j_tj��&tjdt�|j	d|j
d�j�WdQRXdS)Nr|rZrC)rzr&r'rr1rDrErFrGr	rX)rr2r
r
r�test_not_reset]s
zSetLoaderTests.test_not_resetN)rrr�propertyrzr~rr�r
r
r
rrx<s
rxc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�ResolveNameTestscCs|jd|jjdd��dS)N�bacon)r	r�resolve_name)rr
r
r�
test_absoluteoszResolveNameTests.test_absolutecCs|jd|jjdd��dS)Nr��spam)r	rr�)rr
r
r�test_absolute_within_packagessz-ResolveNameTests.test_absolute_within_packagec
Cs(|jt��|jjdd�WdQRXdS)Nz.baconrp)r�
ValueErrorrr�)rr
r
r�test_no_packagewsz ResolveNameTests.test_no_packagecCs|jd|jjdd��dS)Nzspam.eggs.baconz.baconz	spam.eggs)r	rr�)rr
r
r�test_in_package|sz ResolveNameTests.test_in_packagecCs|jd|jjdd��dS)Nz
spam.baconz..baconz	spam.eggs)r	rr�)rr
r
r�test_other_package�sz#ResolveNameTests.test_other_packagec
Cs(|jt��|jjdd�WdQRXdS)Nz..baconr�)rr�rr�)rr
r
r�test_escape�szResolveNameTests.test_escapeN)	rrrr�r�r�r�r�r�r
r
r
rr�ksr�c@sreZdZGdd�d�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
FindSpecTestsc@seZdZeddd��ZdS)zFindSpecTests.FakeMetaFinderNcCs
|||fS)Nr
)r(�path�targetr
r
r�	find_spec�sz&FindSpecTests.FakeMetaFinder.find_spec)NN)rrr�staticmethodr�r
r
r
r�FakeMetaFinder�sr�c
Cshd}tj|��Ptj|�}d}|jj||�}||_||_|tj	|<|jj
|�}|j||�WdQRXdS)N�some_modz	a loader!)rrSr&r'rrr1r.rUrVr�r	)rr(rr2r!�foundr
r
r�test_sys_modules�s

zFindSpecTests.test_sys_modulesc
Csfd}tj|��Ntj|�}|`d}|jj||�}||_|tj	|<|jj
|�}|j||�WdQRXdS)Nr�z	a loader!)rrSr&r'r1rrr.rUrVr�r	)rr(rr2r!r�r
r
r�#test_sys_modules_without___loader__�s

z1FindSpecTests.test_sys_modules_without___loader__cCsZd}tj|��Btj|�}d|_|tj|<|jt��|jj	|�WdQRXWdQRXdS)Nr�)
rrSr&r'r.rUrVrr�r�)rr(rr
r
r�test_sys_modules_spec_is_None�s

z+FindSpecTests.test_sys_modules_spec_is_Nonec
Cs^d}tj|��Ftj|�}|jj|d�}||_|tj|<|jj	|�}|j
||�WdQRXdS)Nr�)rrSr&r'rrr.rUrVr�r	)rr(rr!r�r
r
r�test_sys_modules_loader_is_None�s

z-FindSpecTests.test_sys_modules_loader_is_NonecCsrd}tj|��Ztj|�}y|`Wntk
r6YnX|tj|<|jt	��|jj
|�WdQRXWdQRXdS)Nr�)rrSr&r'r.r}rUrVrr�r�)rr(rr
r
r� test_sys_modules_spec_is_not_set�s

z.FindSpecTests.test_sys_modules_spec_is_not_setcCsTd}tj|��<tj|jgd�� |j|ddf|jj|��WdQRXWdQRXdS)Nr�)�	meta_path)rrSZimport_stater�r	r�)rr(r
r
r�test_success�s
zFindSpecTests.test_successcCs|j|jjd��dS)NZnevergoingtofindthismodule)ZassertIsNonerr�)rr
r
r�test_nothing�szFindSpecTests.test_nothingcCs�d}d}tj|dd��l}tj|||�\}}|jj|�}|j|d�|j|ttj��|j	|ttj��|jj|�}|j
||�WdQRXdS)Nr��hamT)rg)r�temp_module�	submoduler��assertIsNotrT�sortedrUrVr\r	)rr(�subname�pkg_dir�fullname�_r!�
spec_againr
r
r�test_find_submodule�sz!FindSpecTests.test_find_submodulecCs�d}d}tj|dd��x}|jj|�tj|||�\}}|jj|�}|j|d�|j|tt	j
��|j|tt	j
��|jj|�}|j||�WdQRXdS)Nr�r�T)rg)
rr��init�
import_moduler�r�r�rTr�rUrVr\r	)rr(r�r�r�r�r!r�r
r
r�+test_find_submodule_parent_already_imported�sz9FindSpecTests.test_find_submodule_parent_already_importedc	Cs�d}d}tj|dd��v}tj|||�\}}d|}|jj||�}|j|d�|j|ttj��|j	|ttj��|jj|�}|j
||�WdQRXdS)Nr�r�T)rg�.)rr�r�r�r�rTr�rUrVr\r	)	rr(r�r�r�r��relnamer!r�r
r
r�test_find_relative_module�sz'FindSpecTests.test_find_relative_modulecCs�d}d}tj|dd��f}tj|||�\}}d|}|jt��|jj|�WdQRX|j|ttj	��|j|ttj	��WdQRXdS)Nr�r�T)rgr�)
rr�r�rr�r�r\r�rUrV)rr(r�r�r�r�r�r
r
r�)test_find_relative_module_missing_packagesz7FindSpecTests.test_find_relative_module_missing_packageN)rrrr�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr��s	

r�)r�rrc@seZdZdd�Zdd�ZdS)�MagicNumberTestscCs|jt|jj�d�dS)N�)r	�lenr�MAGIC_NUMBER)rr
r
r�test_lengthszMagicNumberTests.test_lengthcCs|j|jjjd��dS)Ns
)rlrr��endswith)rr
r
r�test_incorporates_rnsz%MagicNumberTests.test_incorporates_rnN)rrrr�r�r
r
r
rr�sr�c@s8eZdZejjZejejjdk	d�dd��Z	dd�Z
dd�Zd	d
�Zdd�Z
d
d�Zdd�Zdd�Zdd�Zdd�Zejejdko�ejdkd�dd��Zejejjdk	d�dd��Zejejjdk	d�dd ��Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Z d1d2�Z!ejejjdk	d�d3d��ZdS)4�PEP3147TestsNz1requires sys.implementation.cache_tag not be NonecCsJtjjdddd�}tjjdddddj|j��}|j|jj|dd�|�dS)	N�foo�bar�bazzqux.py�__pycache__z
qux.{}.pycrp)�optimization)�osr�r�format�tagr	r�cache_from_source)rr�rnr
r
r�test_cache_from_source*s
z#PEP3147Tests.test_cache_from_sourcecCsBtjtjdd��(|jt��|jjd�WdQRXWdQRXdS)N�	cache_tagzwhatever.py)r�	swap_attrrU�implementationr�NotImplementedErrorrr�)rr
r
r�#test_cache_from_source_no_cache_tag5sz0PEP3147Tests.test_cache_from_source_no_cache_tagcCsBtjjdd�}tjjdddj|j��}|j|jj|dd�|�dS)Nzfoo.bar�filer�z
file{}.pycrp)r�)r�r�rr�r�r	rr�)rr�rnr
r
r�test_cache_from_source_no_dot;s

z*PEP3147Tests.test_cache_from_source_no_dotcCs�tjjdddd�}tj��Ttjd�|j|jj|d�|jj|dd��|j|jj|d	�|jj|d
d��WdQRXtj��Xtjd�|j	t
��|jj|d�WdQRX|j	t
��|jj|d	�WdQRXWdQRXdS)Nr�r�r�zqux.pyrCFr)r�TrprK)r�r�rrDrErFr	rr�rrG)rr�r
r
r�%test_cache_from_source_debug_overrideCs



z2PEP3147Tests.test_cache_from_source_debug_overridecCs6d}tjjddj|j��}|j|jj|dd�|�dS)Nzfoo.pyr�z
foo.{}.pycrp)r�)r�r�rr�r�r	rr�)rr�rnr
r
r�test_cache_from_source_cwdTsz'PEP3147Tests.test_cache_from_source_cwdcCs�tjjddd�}Gdd�d�}tj��|tjd�|j|jj|g�|jj|dd��|j|jj|d	g�|jj|d
d��|j	t
��|jjd|��WdQRXWdQRXdS)Nr�r�zbaz.pyc@seZdZdd�ZdS)z=PEP3147Tests.test_cache_from_source_override.<locals>.BearishcSst�dS)N)�RuntimeError)rr
r
rraaszFPEP3147Tests.test_cache_from_source_override.<locals>.Bearish.__bool__N)rrrrar
r
r
r�Bearish`sr�rCr)r��rpz/foo/bar/baz.py)r�r�rrDrErFr	rr�rr�)rr�r�r
r
r�test_cache_from_source_overrideZs

z,PEP3147Tests.test_cache_from_source_overridecCs6d}tjjddj|j��}|j|jj|dd�|�dS)Nzfoo.pyr�z
foo.{}.pycrp)r�)r�r�rr�r�r	rr�)rr�rnr
r
r�0test_cache_from_source_optimization_empty_stringlsz=PEP3147Tests.test_cache_from_source_optimization_empty_stringcCs|d}tjj}tjjddj|j��}|dkr4|d}n,|dkrL|dj|�}ndj|�}|j|�|j	|j
j|dd	�|�dS)
Nzfoo.pyr�zfoo.{}rz.pyc�z.opt-{}.pycz){!r} is a non-standard optimization level)r�)rU�flags�optimizer�r�rr�r�ZskipTestr	rr�)rr�Zoptimization_level�
almost_expectrn�msgr
r
r�(test_cache_from_source_optimization_Noness


z5PEP3147Tests.test_cache_from_source_optimization_NonecCs�d}tjtj}tjjddj|j��}|jj	||d�}|j
||dj|��|j
|jj	|dd�|d�|jt��|jj	|dd�WdQRXdS)	Nzfoo.pyr�zfoo.{})r�z.opt-{}.pycrZz.opt-42.pyczpath/is/bad)
�stringZ
ascii_letters�digitsr�r�rr�r�rr�r	rr�)rr�Zvalid_charactersr�Zgotr
r
r�'test_cache_from_source_optimization_set�s
z4PEP3147Tests.test_cache_from_source_optimization_setcCsJtj��8tjd�|jt��|jjdddd�WdQRXWdQRXdS)NrCzfoo.pyFrp)r�)rDrErFr�	TypeErrorrr�)rr
r
r�;test_cache_from_source_debug_override_optimization_both_set�s

zHPEP3147Tests.test_cache_from_source_debug_override_optimization_both_set�\�/z/test meaningful only where os.altsep is definedcCs$|j|jjddd�dj|j��dS)Nz\foo\bar\baz/qux.pyrp)r�z#\foo\bar\baz\__pycache__\qux.{}.pyc)r	rr�r�r�)rr
r
r�)test_sep_altsep_and_sep_cache_from_source�sz6PEP3147Tests.test_sep_altsep_and_sep_cache_from_sourcecCsHtjdddd�}tjjdddddj|j��}|j|jj	|dd�|�dS)	Nr�r�r�zqux.pyr�z
qux.{}.pycrp)r�)
�pathlib�PurePathr�r�rr�r�r	rr�)rr�rnr
r
r�$test_source_from_cache_path_like_arg�s
z1PEP3147Tests.test_source_from_cache_path_like_argz4requires sys.implementation.cache_tag to not be NonecCsFtjjdddddj|j��}tjjdddd�}|j|jj|�|�dS)Nr�r�r�r�z
qux.{}.pyczqux.py)r�r�rr�r�r	r�source_from_cache)rr�rnr
r
r�test_source_from_cache�sz#PEP3147Tests.test_source_from_cachecCsRtjjddd�}tjtjdd��(|jt��|j	j
|�WdQRXWdQRXdS)Nr|r�zwhatever.pycr�)r�r�rrr�rUr�rr�rr�)rr�r
r
r�#test_source_from_cache_no_cache_tag�sz0PEP3147Tests.test_source_from_cache_no_cache_tagcCs|jt|jjd�dS)Nz/foo/bar/bazqux.pyc)rr�rr�)rr
r
r�test_source_from_cache_bad_path�sz,PEP3147Tests.test_source_from_cache_bad_pathcCs|jt|jjd�dS)Nzfoo.cpython-32.pyc)rr�rr�)rr
r
r�test_source_from_cache_no_slash�sz,PEP3147Tests.test_source_from_cache_no_slashcCs|jt|jjd�dS)Nz__pycache__/foo.pyc)rr�rr�)rr
r
r�#test_source_from_cache_too_few_dots�sz0PEP3147Tests.test_source_from_cache_too_few_dotsc	Cs&|jt��|jjd�WdQRXdS)Nz(__pycache__/foo.cpython-32.opt-1.foo.pyc)rr�rr�)rr
r
r�$test_source_from_cache_too_many_dots�sz1PEP3147Tests.test_source_from_cache_too_many_dotscCs|jt|jjd�dS)Nz"__pycache__/foo.cpython-32.foo.pyc)rr�rr�)rr
r
r�test_source_from_cache_not_opt�sz+PEP3147Tests.test_source_from_cache_not_optcCs|jt|jjd�dS)Nz/foo/bar/foo.cpython-32.foo.pyc)rr�rr�)rr
r
r�$test_source_from_cache_no__pycache__�sz1PEP3147Tests.test_source_from_cache_no__pycache__cCs.tjjddj|j��}|j|jj|�d�dS)Nr�zfoo.{}.opt-1.pyczfoo.py)r�r�rr�r�r	rr�)rr�r
r
r�)test_source_from_cache_optimized_bytecode�sz6PEP3147Tests.test_source_from_cache_optimized_bytecodec	Cs<tjjddj|j��}|jt��|jj|�WdQRXdS)Nr�zfoo.{}.opt-.pyc)	r�r�rr�r�rr�rr�)rr�r
r
r�+test_source_from_cache_missing_optimization�sz8PEP3147Tests.test_source_from_cache_missing_optimizationcCsDtjdddddj|j��}tjjdddd�}|j|jj	|�|�dS)Nr�r�r�r�z
qux.{}.pyczqux.py)
r�r�r�r�r�r�rr	rr�)rr�rnr
r
rr��s)"rrrrUr�r�r��unittest�
skipUnlessr�r�r�r�r�r�r�r�r�r�r��sep�altsepr�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr�$s:

r�c@s(eZdZejejjdkd�dd��ZdS)r��	candidate�finalz8only applies to candidate or final python release levelscCs2d}tjtjjdd�d�}d}|j|||�dS)Ni3
r��littlea�To avoid breaking backwards compatibility with cached bytecode files that can't be automatically regenerated by the current user, candidate and final releases require the current  importlib.util.MAGIC_NUMBER to match the expected magic number in this test. Set the expected magic number in this test to the current MAGIC_NUMBER to continue with the release.

Changing the MAGIC_NUMBER for a maintenance release requires discussion in python-dev and notification of community stakeholders.)�int�
from_bytesrrr�r	)rZEXPECTED_MAGIC_NUMBER�actualr�r
r
r�test_magic_number�sz"MagicNumberTests.test_magic_numberN)r�r�)	rrrr�r�rU�version_info�releaselevelr�r
r
r
rr��s
�__main__)1rprZimport_importlibr$r�rZimportlib_util�importlib.utilrr�r�r�rUrrr&r�rDrZ	test_bothZFrozen_DecodeSourceBytesTestsZSource_DecodeSourceBytesTestsrZFrozen_ModuleFromSpecTestsZSource_ModuleFromSpecTestsrBZFrozen_ModuleForLoaderTestsZSource_ModuleForLoaderTestsrjZFrozen_SetPackageTestsZSource_SetPackageTestsrxZFrozen_SetLoaderTestsZSource_SetLoaderTestsr�ZFrozen_ResolveNameTestsZSource_ResolveNameTestsr�ZFrozen_FindSpecTestsZSource_FindSpecTestsr�ZFrozen_MagicNumberTestsZSource_MagicNumberTestsr�ZFrozen_PEP3147TestsZSource_PEP3147TestsZTestCaser�mainr
r
r
r�<module>sL



J
<,#

S+