Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/test_importlib/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/test_importlib/__pycache__/test_abc.cpython-34.pyc

�
g f��	@s�ddlZddlZddlZddlZddlZddlZddlmZddlZddl	Z	ddl	m
Z
ddlZddlm
Z
e
jd�\ZZe
jd�\ZZe
jd�Ze
jd	�\ZZGd
d�d�Zdd
�ZGdd�de�Zee�Ze\ZZGdd�de�Zee�Ze\ZZGdd�de�Zee�Ze\Z Z!Gdd�de�Z"ee"�Ze\Z#Z$Gdd�de�Z%ee%�Ze\Z&Z'Gdd�de�Z(ee(�Ze\Z)Z*Gdd�de�Z+ee+�Ze\Z,Z-dd�Z.dd�Z/Gd d�d�Ze.e�\Z0Z1Gd!d"�d"�Z2e/ee2�Ze\Z3Z4Gd#d�d�Ze.e�\Z5Z6Gd$d%�d%�Z7e/ee7�Ze\Z8Z9Gd&d'�d'�Z:e.e:�\Z;Z<Gd(d)�d)�Z=e/e:e=�Ze\Z>Z?Gd*d�de:�Ze.e�\Z@ZAGd+d,�d,�ZBe/eeB�Ze\ZCZDGd-d�de:�Z"e.e"�\ZEZFGd.d/�d/�ZGe/e"eG�Ze\ZHZIGd0d�de"�Z%e.e%�\ZJZKGd1d2�d2�ZLe/e%eG�Ze\ZMZNGd3d4�d4�ZOe
jPeOd5eefd6eef�\ZQZRGd7d8�d8�ZSe
jPeSd5eefd9ed6eef�\ZTZUGd:d;�d;�ZVe
jPeVd5eefd6eef�\ZWZXGd<d=�d=�ZYGd>d?�d?eYe	jZ�Z[Gd@dA�dAeYe	jZ�Z\GdBdC�dC�Z]GdDdE�dEe]e	jZ�Z^GdFdG�dGe]e	jZ�Z_GdHdI�dI�Z`GdJdK�dKe`e	jZ�ZaGdLdM�dMe`e	jZ�ZbGdNdO�dO�ZcGdPdQ�dQece	jZ�ZdGdRdS�dSece	jZ�ZeGdTd�d�Z+e.e+�\ZfZgGdUd�de+�Z+e.e+�\ZhZieeh_
eei_
eeh_jeei_jGdVdW�dW�ZkGdXdY�dYek�ZlGdZd[�d[ele	jZ�ZmGd\d]�d]ele	jZ�Zne	joejpd^�Gd_d`�d`ek��ZqGdadb�dbeqe	jZ�ZrGdcdd�ddeqe	jZ�ZsGdedf�df�ZtGdgdh�dhete	jZ�ZuGdidj�djete	jZ�Zvewdkkr�e	jx�ndS)l�N)�support)�mock�)�util�	importlibz
importlib.abczimportlib.machineryzimportlib.utilcsLeZdZdZgZgZ�fdd�Zdd�Zdd�Z�S)�InheritanceTestszSTest that the specified class is a subclass/superclass of the expected
    classes.cs�t�j||��fdd��jD��_t�d�rc�fdd��jD��_n�js��js�t�j���jj	j
d�d}t�j|��_
dS)Ncs"g|]}t�j|��qS�)�getattr�abc)�.0�
class_name)�selfr�A/opt/alt/python34/lib64/python3.4/test/test_importlib/test_abc.py�
<listcomp>s	z-InheritanceTests.__init__.<locals>.<listcomp>�subclass_namescs%g|]}t�jj|��qSr)r	r
�	machinery)rr)r
rrr's	�_�)�super�__init__�superclass_names�superclasses�hasattrr�
subclasses�AssertionError�	__class__�__name__�	partitionr	r
�_InheritanceTests__test)r
�args�kwargsZtesting)r)r
rrs!zInheritanceTests.__init__cCsCx<|jD]1}|jt||j�dj||j��q
WdS)Nz{0} is not a subclass of {1})r�
assertTrue�
issubclassr�format)r
�subclassrrr�test_subclasses-sz InheritanceTests.test_subclassescCsCx<|jD]1}|jt|j|�dj||j��q
WdS)Nz{0} is not a superclass of {1})rr!r"rr#)r
Z
superclassrrr�test_superclasses3sz"InheritanceTests.test_superclasses)	r�
__module__�__qualname__�__doc__rrrr%r&rr)rrrsrcCs�dd�}dd�}g}x`d|fd|fgD]F\}}|jtjdj||jg�|tjfd|��q7W|S)	NcSst|d<dS)Nr
)�
frozen_abc)�nsrrr�
set_frozen:sz,create_inheritance_tests.<locals>.set_frozencSst|d<dS)Nr
)�
source_abc)r+rrr�
set_source<sz,create_inheritance_tests.<locals>.set_source�Frozen�Sourcer�	exec_body)�append�types�	new_class�joinr�unittest�TestCase)�
base_classr,r.�classes�prefixZns_setrrr�create_inheritance_tests9s%!r;c@s+eZdZdgZddddgZdS)�MetaPathFinder�Finder�BuiltinImporter�FrozenImporter�
PathFinder�WindowsRegistryFinderN)rr'r(rrrrrrr<Gs		r<c@s"eZdZdgZdgZdS)�PathEntryFinderr=�
FileFinderN)rr'r(rrrrrrrBPs	rBc@seZdZdgZdS)�ResourceLoader�LoaderN)rr'r(rrrrrrDXsrDc@s(eZdZdgZdddgZdS)�
InspectLoaderrEr>r?�ExtensionFileLoaderN)rr'r(rrrrrrrF_s	rFc@s"eZdZdgZdgZdS)�ExecutionLoaderrFrGN)rr'r(rrrrrrrHgs	rHc@s(eZdZddgZddgZdS)�
FileLoaderrDrH�SourceFileLoader�SourcelessFileLoaderN)rr'r(rrrrrrrIosrIc@s%eZdZddgZdgZdS)�SourceLoaderrDrHrJN)rr'r(rrrrrrrLwsrLcCs|g}xodtfdtfgD]U\}}dj||jg�}|t||j�f}|jtj||��qW|S)Nr/r0r)r*r-r5rr	r2r3r4)r8r9Zkindr
�nameZbase_classesrrr�make_abc_subclassess%rNcs�t|�\}}g}xrd|fd|fgD]X\}��fdd�}|jtjdj||jg�|tjfd|��q1W|S)Nr/r0cs��|d<dS)N�insr)r+)�
class_in_testrr�set_ns�sz'make_return_value_tests.<locals>.set_nsrr1)rNr2r3r4r5rr6r7)r8Z
test_classZfrozen_classZsource_class�testsr:rQr)rPr�make_return_value_tests�s%!rScs"eZdZ�fdd�Z�S)r<cst�j||�S)N)r�find_module)r
�fullname�path)rrrrT�szMetaPathFinder.find_module)rr'r(rTrr)rrr<�sc@s(eZdZdd�Zdd�ZdS)�MetaPathFinderDefaultsTestscCs |j|jjdd��dS)N�	something)�assertIsNonerOrT)r
rrr�test_find_module�sz,MetaPathFinderDefaultsTests.test_find_modulecCs|jj�dS)N)rO�invalidate_caches)r
rrr�test_invalidate_caches�sz2MetaPathFinderDefaultsTests.test_invalidate_cachesN)rr'r(rZr\rrrrrW�srWcs"eZdZ�fdd�Z�S)rBcst�j|�S)N)r�find_loader)r
rU)rrrr]�szPathEntryFinder.find_loader)rr'r(r]rr)rrrB�sc@s4eZdZdd�Zdd�Zdd�ZdS)�PathEntryFinderDefaultsTestscCs&|jdgf|jjd��dS)NrX)�assertEqualrOr])r
rrr�test_find_loader�sz-PathEntryFinderDefaultsTests.test_find_loadercCs |jd|jjd��dS)NrX)r_rOrT)r
rrrrT�sz(PathEntryFinderDefaultsTests.find_modulecCs|jj�dS)N)rOr[)r
rrrr\�sz3PathEntryFinderDefaultsTests.test_invalidate_cachesN)rr'r(r`rTr\rrrrr^�sr^cs"eZdZ�fdd�Z�S)rEcst�j|�S)N)r�load_module)r
rU)rrrra�szLoader.load_module)rr'r(rarr)rrrE�srEc@s(eZdZdd�Zdd�ZdS)�LoaderDefaultsTestsc	Cs*|jt��|jjd�WdQXdS)NrX)�assertRaises�ImportErrorrOra)r
rrr�test_load_module�sz$LoaderDefaultsTests.test_load_modulec	Csdtjd�}|jt��|jj|�WdQXt|�}|j|_|jt|��dS)N�blah)	r3�
ModuleTyperc�NotImplementedErrorrO�module_repr�repr�
__loader__r!)r
�modZ
original_reprrrr�test_module_repr�sz$LoaderDefaultsTests.test_module_reprN)rr'r(rermrrrrrb�srbcs"eZdZ�fdd�Z�S)rDcst�j|�S)N)r�get_data)r
rV)rrrrn�szResourceLoader.get_data)rr'r(rnrr)rrrD�sc@seZdZdd�ZdS)�ResourceLoaderDefaultsTestsc	Cs*|jt��|jjd�WdQXdS)Nz
/some/path)rc�IOErrorrOrn)r
rrr�
test_get_data�sz)ResourceLoaderDefaultsTests.test_get_dataN)rr'r(rqrrrrro�srocs4eZdZ�fdd�Z�fdd�Z�S)rFcst�j|�S)N)r�
is_package)r
rU)rrrrr�szInspectLoader.is_packagecst�j|�S)N)r�
get_source)r
rU)rrrrs�szInspectLoader.get_source)rr'r(rrrsrr)rrrF�sc@s(eZdZdd�Zdd�ZdS)�InspectLoaderDefaultsTestsc	Cs*|jt��|jjd�WdQXdS)Nrf)rcrdrOrr)r
rrr�test_is_packagesz*InspectLoaderDefaultsTests.test_is_packagec	Cs*|jt��|jjd�WdQXdS)Nrf)rcrdrOrs)r
rrr�test_get_sourcesz*InspectLoaderDefaultsTests.test_get_sourceN)rr'r(rurvrrrrrtsrtcs"eZdZ�fdd�Z�S)rHcst�j|�S)N)r�get_filename)r
rU)rrrrwszExecutionLoader.get_filename)rr'r(rwrr)rrrHsc@seZdZdd�ZdS)�ExecutionLoaderDefaultsTestsc	Cs*|jt��|jjd�WdQXdS)Nrf)rcrdrOrw)r
rrr�test_get_filenamesz.ExecutionLoaderDefaultsTests.test_get_filenameN)rr'r(ryrrrrrxsrxc@s:eZdZedd��Zdd�Zdd�ZdS)�MetaPathFinderFindModuleTestscs)G�fdd�d|jj�}|�S)Ncs%eZdZd�fdd�ZdS)z@MetaPathFinderFindModuleTests.finder.<locals>.MetaPathSpecFinderNcs||f|_�S)N)�
called_for)r
rUrV�target)�specrr�	find_spec)szJMetaPathFinderFindModuleTests.finder.<locals>.MetaPathSpecFinder.find_spec)rr'r(r~r)r}rr�MetaPathSpecFinder'sr)r
r<)�clsr}rr)r}r�finder%s"z$MetaPathFinderFindModuleTests.findercCsu|jd�}dddg}d}|j||�}|j|�|j||jd�|j||jd�dS)N�a�b�crfrr)r�rTrYr_r{)r
r�rVrM�foundrrr�test_no_spec/s
z*MetaPathFinderFindModuleTests.test_no_speccCsVt�}|jjd|�}|j|�}|jdd�}|j||j�dS)Nrf)�objectr�spec_from_loaderr�rT�assertIs�loader)r
r�r}r�r�rrr�	test_spec8s
	z'MetaPathFinderFindModuleTests.test_specN)rr'r(�classmethodr�r�r�rrrrrz#s
	rzr
rc@sFeZdZedd��Zdd�Zdd�Zdd�Zd	S)
�PathEntryFinderFindLoaderTestscs)G�fdd�d|jj�}|�S)Ncs%eZdZd�fdd�ZdS)zBPathEntryFinderFindLoaderTests.finder.<locals>.PathEntrySpecFinderNcs
||_�S)N)r{)r
rUr|)r}rrr~Ms	zLPathEntryFinderFindLoaderTests.finder.<locals>.PathEntrySpecFinder.find_spec)rr'r(r~r)r}rr�PathEntrySpecFinderKsr�)r
rB)r�r}r�r)r}rr�Is"z%PathEntryFinderFindLoaderTests.findercCs`|jd�}d}|j|�}|j|d�|jg|d�|j||j�dS)Nrfrr)r�r]rYr_r{)r
r�rMr�rrrr�Ssz+PathEntryFinderFindLoaderTests.test_no_speccCsWt�}|jjd|�}|j|�}|jd�}|j|d|j�dS)Nrfr)r�rr�r�r]r�r�)r
r�r}r�r�rrr�test_spec_with_loader[s
	z4PathEntryFinderFindLoaderTests.test_spec_with_loadercCst|jjdd�}dddg}||_|j|�}|jd�}|j|d�|j||d�dS)Nrfr�r�r�rr)r�
ModuleSpec�submodule_search_locationsr�r]rYr_)r
r}�pathsr�r�rrr�test_spec_with_portionsbs	z6PathEntryFinderFindLoaderTests.test_spec_with_portionsN)rr'r(r�r�r�r�r�rrrrr�Gs
r�rc@s4eZdZdd�Zdd�Zdd�ZdS)�LoaderLoadModuleTestscCs#Gdd�d|jj�}|�S)Nc@s.eZdZdZdd�Zdd�ZdS)z0LoaderLoadModuleTests.loader.<locals>.SpecLoaderNcSs
||_dS)N)r�)r
�modulerrr�exec_moduleysz<LoaderLoadModuleTests.loader.<locals>.SpecLoader.exec_modulecSsdS)z.Force some non-default module state to be set.Tr)r
rUrrrrr|sz;LoaderLoadModuleTests.loader.<locals>.SpecLoader.is_package)rr'r(r�r�rrrrrr�
SpecLoaderwsr�)r
rE)r
r�rrrr�vs	zLoaderLoadModuleTests.loaderc
Cs�|j�}d}tj|��2|j|�|j}|jtj||�WdQX|j||j	�|j||j
j�|j||j�|j||j
j�|j
|j�|j
|j|j
j�dS)Nrf)r�r�uncacherar�r��sys�modulesr_rk�__spec__rrMZassertIsNotNone�__path__r�)r
r�rMr�rrr�
test_fresh�s
	z LoaderLoadModuleTests.test_freshcCs�d}|j�}tj|�}|jj||�|_||_tj|��V|tj	|<|j
|�|j}|j|tj	|�|j|tj	|�WdQXdS)Nrf)
r�r3rgrr�r�rkr�r�r�rar�r�)r
rMr�r�r�rrr�test_reload�s	

	z!LoaderLoadModuleTests.test_reloadN)rr'r(r�r�r�rrrrr�tsr�c@sOeZdZddd�Zdd�Zdd�Zdd	�Zd
d�ZdS)�InspectLoaderSourceToCodeTestsNcCs_tjd�}|j�}|dkr9|j|�}n|j||�}t||j�|S)z!Help with source_to_code() tests.rfN)r3rg�InspectLoaderSubclass�source_to_code�exec�__dict__)r
�datarVr�r��coderrr�source_to_module�sz/InspectLoaderSourceToCodeTests.source_to_modulecCsBd}|j|�}|jt|d��|j|jd�dS)Nz	attr = 42�attr�*)r�r!rr_r�)r
�sourcer�rrr�test_source_to_code_source�sz9InspectLoaderSourceToCodeTests.test_source_to_code_sourcecCsBd}|j|�}|jt|d��|j|jd�dS)Ns	attr = 42r�r�)r�r!rr_r�)r
r�r�rrr�test_source_to_code_bytes�sz8InspectLoaderSourceToCodeTests.test_source_to_code_bytescCs;d}|j�}|jd|�}|j|j|�dS)Nzpath/to/somewhere�)r�r�r_�co_filename)r
rVr�r�rrr�test_source_to_code_path�sz7InspectLoaderSourceToCodeTests.test_source_to_code_pathcCs2|j�}|jd�}|j|jd�dS)Nr�z<string>)r�r�r_r�)r
r�r�rrr�test_source_to_code_no_path�sz:InspectLoaderSourceToCodeTests.test_source_to_code_no_path)rr'r(r�r�r�r�r�rrrrr��s
r�c@seZdZeZdS)�Frozen_ILSourceToCodeTestsN)rr'r(�	Frozen_ILr�rrrrr��sr�c@seZdZeZdS)�Source_ILSourceToCodeTestsN)rr'r(�	Source_ILr�rrrrr��sr�c@s4eZdZdd�Zdd�Zdd�ZdS)�InspectLoaderGetCodeTestsc	Cs{tjd�}tjj|jd��+}d|_|j�}|jd�}WdQXt||j	�|j
|jd�dS)Nrfrsz	attr = 42r�)r3rgr�patchr�r��return_value�get_coder�r�r_r�)r
r��mockedr�r�rrr�
test_get_code�s	z'InspectLoaderGetCodeTests.test_get_codec	CsVtjj|jd��+}d|_|j�}|jd�}WdQX|j|�dS)Nrsrf)rr�r�r�r�r�rY)r
r�r�r�rrr�test_get_code_source_is_None�s
	z6InspectLoaderGetCodeTests.test_get_code_source_is_Nonec	Cs3|j�}|jt��|jd�WdQXdS)Nrf)r�rcrdr�)r
r�rrr�test_get_code_source_not_found�sz8InspectLoaderGetCodeTests.test_get_code_source_not_foundN)rr'r(r�r�r�rrrrr��s
r�c@seZdZeZdS)�Frozen_ILGetCodeTestsN)rr'r(r�r�rrrrr��sr�c@seZdZeZdS)�Source_ILGetCodeTestsN)rr'r(r�r�rrrrr��sr�c@sXeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
S)�InspectLoaderLoadModuleTestsz!Test InspectLoader.load_module().rfcCs*tj|j�|jtj|j�dS)N)rZunload�module_nameZ
addCleanup)r
rrr�setUp�sz"InspectLoaderLoadModuleTests.setUpcCstjj|jd�S)Nr�)rr�r�r�)r
rrr�
mock_get_codesz*InspectLoaderLoadModuleTests.mock_get_codecCsw|j��e}t|_|jt��D|j�}tj��%tjdt�|j	|j
�WdQXWdQXWdQXdS)N�ignore)r�rd�side_effectrcr��warnings�catch_warnings�simplefilter�DeprecationWarningrar�)r
�mocked_get_coder�rrr�test_get_code_ImportErrors	
z6InspectLoaderLoadModuleTests.test_get_code_ImportErrorcCsT|j��B}d|_|jt��!|j�}|j|j�WdQXWdQXdS)N)r�r�rcrdr�rar�)r
r�r�rrr�test_get_code_Nones
	z/InspectLoaderLoadModuleTests.test_get_code_NonecCsltddd�}|j��H}||_|j�}|j|j�}|j|tj|j�WdQXdS)Nz	attr = 42z<string>r�)	�compiler�r�r�rar�r_r�r�)r
r�r�r�r�rrr�test_module_returneds	z1InspectLoaderLoadModuleTests.test_module_returnedN)
rr'r(r)r�r�r�r�r�r�rrrrr��s
r�c@seZdZeZdS)�Frozen_ILLoadModuleTestsN)rr'r(r�r�rrrrr�"sr�c@seZdZeZdS)�Source_ILLoadModuleTestsN)rr'r(r�r�rrrrr�%sr�c@sXeZdZdddddd�Zdd�Zdd	�Zd
d�Zdd
�ZdS)�ExecutionLoaderGetCodeTestsrsFrwcCsXd\}}|r-tjj|jd�}n|rNtjj|jd�}n||fS)Nrsrw)NN)rr�r��ExecutionLoaderSubclass)r
rsrw�source_mock_context�filename_mock_contextrrr�mock_methods,sz(ExecutionLoaderGetCodeTests.mock_methodsc	Cs�d}|jdddd�\}}|�C}|�4}d|_||_|j�}|jd�}WdQXWdQX|j|j|�tjd�}t||j	�|j|j
d�dS)Nzblah.pyrsTrwz	attr = 42rfr�)r�r�r�r�r_r�r3rgr�r�r�)	r
rVr�r��source_mock�	name_mockr�r�r�rrrr�6s			z)ExecutionLoaderGetCodeTests.test_get_codec	Cs\|jdd�\}}|�+}d|_|j�}|jd�}WdQX|j|�dS)NrsTrf)r�r�r�r�rY)r
r�rr�r�r�rrrr�Ds		z8ExecutionLoaderGetCodeTests.test_get_code_source_is_Nonec	Cs3|j�}|jt��|jd�WdQXdS)Nrf)r�rcrdr�)r
r�rrrr�Msz:ExecutionLoaderGetCodeTests.test_get_code_source_not_foundcCs�|jdddd�\}}|�C}|�4}d|_t|_|j�}|jd�}WdQXWdQX|j|jd�tj	d�}t
||j�|j|jd�dS)NrsTrwz	attr = 42rfz<string>r�)
r�r�rdr�r�r�r_r�r3rgr�r�r�)r
r�r�r�r�r�r�r�rrr�test_get_code_no_pathSs			z1ExecutionLoaderGetCodeTests.test_get_code_no_pathN)rr'r(r�r�r�r�r�rrrrr�*s

	r�c@seZdZeZdS)�Frozen_ELGetCodeTestsN)rr'r(�	Frozen_ELr�rrrrr�csr�c@seZdZeZdS)�Source_ELGetCodeTestsN)rr'r(�	Source_ELr�rrrrr�fsr�c@sFeZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)rLsN_ = '::'.join([__name__, __file__, __cached__, __package__, repr(__loader__)])cCs
||_dS)N)rV)r
rVrrrrqszSourceLoader.__init__cCs||jkrt�n|jS)N)rVrpr�)r
rVrrrrnts	zSourceLoader.get_datacCs|jS)N)rV)r
rUrrrrwyszSourceLoader.get_filenamecCsdS)Nz<module>r)r
r�rrrri|szSourceLoader.module_reprN)rr'r(r�rrnrwrirrrrrLks
csUeZdZdZd�fdd�Z�fdd�Zdd�Zd	d
�Z�S)rLrNcs�t�j|�|jj|j�|_t|j�|_|dkrU|jj	}nt
|�}|j|jj
|j��|j|jj
|j��t|j|jddd�}|jtj|��t|�|_i|_dS)Nr��dont_inheritT)rrr�cache_from_sourcerV�
bytecode_path�lenr��source_size�MAGIC_NUMBER�	bytearray�extend�init�_w_long�source_mtimer��marshal�dumps�bytes�bytecode�written)r
rV�magicr��code_object)rrrr�s	zSourceLoader.__init__cs?||jkrt�j|�S||jkr5|jSt�dS)N)rVrrnr�r��OSError)r
rV)rrrrn�s
zSourceLoader.get_datacCs0||jkrt�ni|jd6|jd6S)N�mtime�size)rVrpr�r�)r
rVrrr�
path_stats�s	zSourceLoader.path_statscCs t|�|j|<||jkS)N)r�r�r�)r
rVr�rrr�set_data�szSourceLoader.set_data)rr'r(r�rrnr�r�rr)rrrL�s
c@s:eZdZdddd�Zdd�Zdd�Zd	S)
�SourceLoaderTestHarnessrrTcKs�d|_|r9tjj|jd�|_|j|_nKd}tjj|jdjddg��|_dj|j|g�|_|jj|j�|_|j|j|�|_	dS)NZpkgz__init__.pyrl�.�py)
�package�osrVr5rMrr��cached�loader_mockr�)r
rrr r�rrrr��s	*zSourceLoaderTestHarness.setUpcCs�|j|j|j�|j|j|j�|j|j|j�|j|j|j�|j|j	|j
�|jjd�}|j|d|j�|j|d|j�|j|d|j�|j|d|j�|j|dt
|j
��dS)Nz::rrr��)r_rrM�__file__rV�
__cached__r��__package__r�rkr�r�splitrj)r
r��valuesrrr�
verify_module�sz%SourceLoaderTestHarness.verify_modulecCsltj|j�}|j|_|j|_|j|_|j	|_
g|_t||j
�|j|�dS)N)r3rgrMrVr�r�r�r�r�r�rkr�r�r�r)r
r�r�rrr�verify_code�s	z#SourceLoaderTestHarness.verify_codeN)rr'r(r�rrrrrrr��s
r�c@sjeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�SourceOnlyLoaderTestsz�Test importlib.abc.SourceLoader for source-only loading.

    Reload testing is subsumed by the tests for
    importlib.util.module_for_loader.

    c	Cs�|jjjd�}|j|jj|j�|�dd�}||j_|jt��}|jj|j�WdQX|j|j	j|j�dS)Nzutf-8cSs
t�dS)N)r�)rVrrr�
raise_OSError�sz<SourceOnlyLoaderTests.test_get_source.<locals>.raise_OSError)
r�r��decoder_rsrMrnrcrdZ	exception)r
Zexpected_sourcer�cmrrrrv�sz%SourceOnlyLoaderTests.test_get_sourcecCs||jdd�|j|jj|j��|jdd�|j|jj|j��|j|jj|jd��dS)NrrFTz	.__init__)r��assertFalser�rrrMr!)r
rrrru�s
z%SourceOnlyLoaderTests.test_is_packagecCs&|jj|j�}|j|�dS)N)r�r�rMr)r
r�rrrr��sz#SourceOnlyLoaderTests.test_get_codecCs/|jj|jj|j�}|j|�dS)N)r�r�r�rVr)r
r�rrr�test_source_to_code�sz)SourceOnlyLoaderTests.test_source_to_codecCs�tj|j���tj��*tjdt�|jj|j�}WdQX|j	|�|j
|jtj
j|j
�g�|j|jtj�WdQXdS)Nr�)rr�rMr�r�r�r�r�rarr_r�r�rV�dirname�assertInr�r�)r
r�rrrre�s

%z&SourceOnlyLoaderTests.test_load_modulecCs�|jdd�tj|j��`tj��*tjdt�|jj	|j�}WdQX|j
|�|jt|d��WdQXdS)NrrFr�r�)
r�rr�rMr�r�r�r�r�rarrr)r
r�rrr�test_package_settingss

z+SourceOnlyLoaderTests.test_package_settingscCs�d}|jd�|j_|jj|j�}|j||�d}|jd�|j_|jj|j�}|j||�dS)Nu_ = 'ü'zutf-8u# coding: latin-1
_ = üzlatin-1)�encoder�r�rsrMr_)r
r��returned_sourcerrr�test_get_source_encodingsz.SourceOnlyLoaderTests.test_get_source_encodingN)rr'r(r)rvrur�rrer
r
rrrrr�src@seZdZeZeZdS)�Frozen_SourceOnlyLTestsN)rr'r(�Frozen_SourceOnlyLr��frozen_utilrrrrrr!src@seZdZeZeZdS)�Source_SourceOnlyLTestsN)rr'r(�Source_SourceOnlyLr��source_utilrrrrrr%srzsys.dont_write_bytecode is truecs�eZdZdZdd�fdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Z�S)�SourceLoaderBytecodeTestszsTest importlib.abc.SourceLoader's use of bytecode.

    Source-only testing handled by SourceOnlyLoaderTests.

    �bytecode_writtenFcs�t�j|�|r�|j|j|jj�t|jj�}|j	|j
j|jj��|j	|j
j|jj
��|j	tj|��|j|jj|jt|��ndS)N)rrr	r�r�r�r�rr�r�r�r�r�r�r�r�r_r�)r
r�rr�)rrrr3sz%SourceLoaderBytecodeTests.verify_codecCs&|jj|j�}|j|�dS)N)r�r�rMr)r
r�rrr�test_code_with_everything=sz3SourceLoaderBytecodeTests.test_code_with_everythingc
Cssd|j_|jt��*|jj|j�}|jj|�WdQX|jj|j	�}|j
|dd�dS)Nz<does not exist>rT)r�r�rcr�rr�rVrnr�rMr)r
r�r�rrr�test_no_bytecodeBsz*SourceLoaderBytecodeTests.test_no_bytecodecCs�x�dD]�}||jjks%t�|jj}||j_|jjdd�|j_|jj|j�}|j|dd�||j_qWdS)Nrr�rT)rr)r�r�rr�r�rMr)r
r�Zoriginalr�rrr�test_code_bad_timestampLs
z1SourceLoaderBytecodeTests.test_code_bad_timestampcCsX|jdd�|jjdd�|j_|jj|j�}|j|dd�dS)Nr�s0000rrT)r�r�r�r�rMr)r
r�rrr�test_code_bad_magicXsz-SourceLoaderBytecodeTests.test_code_bad_magiccCsXzGdt_d|j_|jj|j�}|j|j|jj�Wddt_XdS)NTz<does not exist>F)	r��dont_write_bytecoder�r�r�rMZassertNotInr�r�)r
r�rrr�test_dont_write_bytecode`s	z2SourceLoaderBytecodeTests.test_dont_write_bytecodecCs�|jdd�|jjj�dj}z<|jjj�d`|jj|j�}|j|�Wd||jjj�d_XdS)Nr�s0000r)r�r�r�mror�r�rMr)r
Zoriginal_set_datar�rrr�test_no_set_dataksz*SourceLoaderBytecodeTests.test_no_set_datacCsTdd�}|jdd�|t�|j_|jj|j�}|j|�dS)Ncs�fdd�}|S)Ncs
��dS)Nr)rr )�excrr�closureyszcSourceLoaderBytecodeTests.test_set_data_raises_exceptions.<locals>.raise_exception.<locals>.closurer)rr r)rr�raise_exceptionxszRSourceLoaderBytecodeTests.test_set_data_raises_exceptions.<locals>.raise_exceptionr�s0000)r�rhr�r�r�rMr)r
r!r�rrr�test_set_data_raises_exceptionsvs
z9SourceLoaderBytecodeTests.test_set_data_raises_exceptions)rr'r(r)rrrrrrrr"rr)rrr*s

rc@s"eZdZeZeZeZdS)�Frozen_SLBytecodeTestsN)	rr'r(�	Frozen_SLr��frozen_initr�rrrrrrr#�sr#c@s"eZdZeZeZeZdS)�SourceSLBytecodeTestsN)	rr'r(�	Source_SLr��source_initr�rrrrrrr&�sr&c@s:eZdZdZdd�Zdd�Zdd�ZdS)	�SourceLoaderGetSourceTestsz2Tests for importlib.abc.SourceLoader.get_source().cCsPd}|jd�}d}|jd�|_|j|�}|j||�dS)Nrlzmod.fileux = "ü"zutf-8)�SourceOnlyLoaderMockrr�rsr_)r
rMrr�rrrr�test_default_encoding�sz0SourceLoaderGetSourceTests.test_default_encodingcCstd}|jd�}d}|jd�|jd�ks?t�|jd�|_|j|�}|j||�dS)Nrlzmod.fileu# coding: Latin-1
x='ü'zlatin-1zutf-8)r*rrr�rsr_)r
rMrr�rrrr�test_decoded_source�s$z.SourceLoaderGetSourceTests.test_decoded_sourcecCsed}|jd�}d}|jd�|_tjdd�j|�}|j|j|�|�dS)Nrlzmod.filezx = 42
y = -13
zutf-8T)r*rr��io�IncrementalNewlineDecoderrr_rs)r
rMrr�Zexpectrrr�test_universal_newlines�sz2SourceLoaderGetSourceTests.test_universal_newlinesN)rr'r(r)r+r,r/rrrrr)�s	
r)c@seZdZeZdS)� Frozen_SourceOnlyLGetSourceTestsN)rr'r(rr*rrrrr0�sr0c@seZdZeZdS)� Source_SourceOnlyLGetSourceTestsN)rr'r(rr*rrrrr1�sr1�__main__)y�
contextlib�inspectr-r�r�r�Ztestrr3r6rr�r�rZimport_importlibr%r(r*r-rrrrr;r<rRZ%Frozen_MetaPathFinderInheritanceTestsZ%Source_MetaPathFinderInheritanceTestsrBZ&Frozen_PathEntryFinderInheritanceTestsZ&Source_PathEntryFinderInheritanceTestsrDZ%Frozen_ResourceLoaderInheritanceTestsZ%Source_ResourceLoaderInheritanceTestsrFZ$Frozen_InspectLoaderInheritanceTestsZ$Source_InspectLoaderInheritanceTestsrHZ&Frozen_ExecutionLoaderInheritanceTestsZ&Source_ExecutionLoaderInheritanceTestsrIZ!Frozen_FileLoaderInheritanceTestsZ!Source_FileLoaderInheritanceTestsrLZ#Frozen_SourceLoaderInheritanceTestsZ#Source_SourceLoaderInheritanceTestsrNrSZ
Frozen_MPFZ
Source_MPFrWZFrozen_MPFDefaultTestsZSource_MPFDefaultTestsZ
Frozen_PEFZ
Source_PEFr^ZFrozen_PEFDefaultTestsZSource_PEFDefaultTestsrEZFrozen_LZSource_LrbZFrozen_LDefaultTestsZSourceLDefaultTestsZ	Frozen_RLZ	Source_RLroZFrozen_RLDefaultTestsZSource_RLDefaultTestsr�r�rtZFrozen_ILDefaultTestsZSource_ILDefaultTestsr�r�rxZFrozen_ELDefaultTestsZSource_ELDefaultsTestsrzZ	test_bothZFrozen_MPFFindModuleTestsZSource_MPFFindModuleTestsr�ZFrozen_PEFFindLoaderTestsZSource_PEFFindLoaderTestsr�ZFrozen_LoaderLoadModuleTestsZSource_LoaderLoadModuleTestsr�r7r�r�r�r�r�r�r�r�r�r�r�rrr$r'r�r�rrrZskipIfrrr#r&r)r0r1r�mainrrrr�<module>s�$
	%+*)9%				&LX!