HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/test_importlib/__pycache__/test_util.cpython-311.opt-1.pyc
�

��Vc1����ddlmZejd��Zejd��Zejd��Zejd��ZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlZddlZddlZddlZGd�d	��Zejee���\ZZGd
�d��Zejeeee���\ZZGd
�d��Zejee���\ZZGd�d��Zejee���\ZZGd�d��Z eje e���\Z!Z"Gd�d��Z#eje#e���\Z$Z%Gd�d��Z&eje&eee���\Z'Z(Gd�d��Z)eje)e���\Z*Z+Gd�d��Z,eje,e���\Z-Z.Gd�dej/��Z)e0dkrej1��dSdS)�)�utilz
importlib.abc�	importlibzimportlib.machineryzimportlib.utilN)�supportc�$�eZdZdZd�Zd�Zd�ZdS)�DecodeSourceBytesTestsustring ='ü'c��|j�d��}|�|j�|��|j��dS)N�utf-8��source�encode�assertEqualr�
decode_source)�self�source_bytess  �1D:\Python311\Lib\test\test_importlib\test_util.py�test_ut8_defaultz'DecodeSourceBytesTests.test_ut8_defaultsE���{�)�)�'�2�2�������0�0��>�>���L�L�L�L�L�c��d|jz}|�d��}|�|j�|��|��dS)Nz# coding=latin-1
zlatin-1r
�rrrs   r�test_specified_encodingz.DecodeSourceBytesTests.test_specified_encodingsK��%���3���}�}�Y�/�/�������0�0��>�>��G�G�G�G�Grc��d�|j|jg��}|�d��}|�|j�|��d�|j|jg����dS)Nz
r	�
)�joinrrr
rrrs   r�test_universal_newlinesz.DecodeSourceBytesTests.test_universal_newlines"s~�����d�k�4�;�7�8�8���}�}�W�-�-�������0�0��>�>����D�K���#=�>�>�	@�	@�	@�	@�	@rN)�__name__�
__module__�__qualname__rrrr�rrrrsQ������
�F�M�M�M�H�H�H�@�@�@�@�@rrc�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�ModuleFromSpecTestsc��Gd�d��}|j�d|����}|�t��5|j�|��}ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�9ModuleFromSpecTests.test_no_create_module.<locals>.Loaderc��dS�Nr�r�modules  r�exec_modulezEModuleFromSpecTests.test_no_create_module.<locals>.Loader.exec_module2s���rN)rrrr(rrr�Loaderr#1s#������
�
�
�
�
rr)�test)�	machinery�
ModuleSpec�assertRaises�ImportErrorr�module_from_spec�rr)�specr's    r�test_no_create_modulez)ModuleFromSpecTests.test_no_create_module0s���	�	�	�	�	�	�	�	��~�(�(������:�:��
�
�
�{�
+�
+�	6�	6��Y�/�/��5�5�F�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6s�A3�3A7�:A7c�0�Gd�d|jj��}|j�d|����}|j�|��}|�|tj��|�	|j
|j��dS)Nc��eZdZd�ZdS)�CModuleFromSpecTests.test_create_module_returns_None.<locals>.Loaderc��dSr%r)rr1s  r�
create_modulezQModuleFromSpecTests.test_create_module_returns_None.<locals>.Loader.create_module:����trN�rrrr7rrrr)r59s#������
�
�
�
�
rr)r*)�abcr)r+r,rr/�assertIsInstance�types�
ModuleTyper
r�namer0s    r�test_create_module_returns_Nonez3ModuleFromSpecTests.test_create_module_returns_None8s���	�	�	�	�	�T�X�_�	�	�	��~�(�(������:�:����+�+�D�1�1�����f�e�&6�7�7�7������$�)�4�4�4�4�4rc�P���d�Gd�dtj���G��fd�d|jj��}|j�d|����}|j�|��}|�|���|�	|j
���dS)Nzalready setc��eZdZdS)�<ModuleFromSpecTests.test_create_module.<locals>.CustomModuleN)rrrrrr�CustomModulerBCs�������DrrCc���eZdZ��fd�ZdS)�6ModuleFromSpecTests.test_create_module.<locals>.Loaderc�6���|j��}�|_|Sr%)r>r)rr1r'rCr>s   ��rr7zDModuleFromSpecTests.test_create_module.<locals>.Loader.create_moduleFs ���%��d�i�0�0��"&����
rNr9)rCr>s��rr)rEEs3�������
�
�
�
�
�
�
�
rr)r*)r<r=r:r)r+r,rr/r;r
r)rr)r1r'rCr>s    @@r�test_create_modulez&ModuleFromSpecTests.test_create_moduleAs�������	�	�	�	�	�5�+�	�	�	�	�	�	�	�	�	�	�	�T�X�_�	�	�	�
�~�(�(������:�:����+�+�D�1�1�����f�l�3�3�3������$�/�/�/�/�/rc���|j�dt����}|j�|��}|�|j|j��dS�Nr*)r+r,�objectrr/r
rr>�rr1r's   r�
test___name__z!ModuleFromSpecTests.test___name__OsR���~�(�(�����:�:����+�+�D�1�1�������$�)�4�4�4�4�4rc��|j�dt����}|j�|��}|�|j|��dSrI)r+r,rJrr/r
�__spec__rKs   r�
test___spec__z!ModuleFromSpecTests.test___spec__TsP���~�(�(�����:�:����+�+�D�1�1�������$�/�/�/�/�/rc���t��}|j�d|��}|j�|��}|�|j|��dSrI)rJr+r,rr/�assertIs�
__loader__)r�loaderr1r's    r�test___loader__z#ModuleFromSpecTests.test___loader__YsT�������~�(�(���8�8����+�+�D�1�1���
�
�f�'��0�0�0�0�0rc���|j�dt����}|j�|��}|�|j|j��dS)Nztest.pkg)r+r,rJrr/r
�__package__�parentrKs   r�test___package__z$ModuleFromSpecTests.test___package___sS���~�(�(��V�X�X�>�>����+�+�D�1�1������+�T�[�9�9�9�9�9rc���|j�dt��d���}|j�|��}|�|j|j��dS)Nr*T)�
is_package)r+r,rJrr/r
�__path__�submodule_search_locationsrKs   r�
test___path__z!ModuleFromSpecTests.test___path__dsX���~�(�(�����d�(�K�K����+�+�D�1�1�������$�*I�J�J�J�J�Jrc���|j�dt��d���}d|_|j�|��}|�|j|j��dS)Nr*�	some/path)�originT)	r+r,rJ�has_locationrr/r
�__file__r`rKs   r�
test___file__z!ModuleFromSpecTests.test___file__is_���~�(�(�����+�(�N�N�� �����+�+�D�1�1�������$�+�6�6�6�6�6rc���|j�dt����}d|_d|_|j�|��}|�|j|j��dS)Nr*r_T)	r+r,rJ�cachedrarr/r
�
__cached__rKs   r�test___cached__z#ModuleFromSpecTests.test___cached__osb���~�(�(�����:�:��!��� �����+�+�D�1�1������*�D�K�8�8�8�8�8rN)
rrrr2r?rGrLrOrTrXr]rcrgrrrr r .s�������6�6�6�5�5�5�0�0�0�5�5�5�
0�0�0�
1�1�1�:�:�:�
K�K�K�
7�7�7�9�9�9�9�9rr )r:r+rc�d�eZdZdZed���Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
S)�ModuleForLoaderTestsz+Tests for importlib.util.module_for_loader.c���tj��5tjdt��|j�|��cddd��S#1swxYwYdS)N�ignore)�warnings�catch_warnings�simplefilter�DeprecationWarningr�module_for_loader)�cls�funcs  rrpz&ModuleForLoaderTests.module_for_loader�s���
�
$�
&�
&�	4�	4��!�(�,>�?�?�?��8�-�-�d�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s�4A�A�Ac�,�tj��5tjdt��|�t��5|j�d���}ddd��n#1swxYwYddd��dS#1swxYwYdS)N�errorc��|Sr%r)�xs r�<lambda>z3ModuleForLoaderTests.test_warning.<locals>.<lambda>�s��Q�r)rlrmrnror-rrp)rrrs  r�test_warningz!ModuleForLoaderTests.test_warning�s/��
�
$�
&�
&�	@�	@��!�'�+=�>�>�>��"�"�#5�6�6�
@�
@��y�2�2�;�;�?�?��
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@s5�5B	�	A1�%B	�1A5	�5B	�8A5	�9B	�	B
�B
c�F�|�d���}|||��S)Nc��|Sr%rr&s  rrwz4ModuleForLoaderTests.return_module.<locals>.<lambda>�s��&�r)rp)rr>�fxns   r�
return_modulez"ModuleForLoaderTests.return_module�s)���$�$�%@�%@�A�A���s�4����rc�r�d�}|�|��}	|||��dS#t$rYdSwxYw)Nc��t�r%)r.r&s  r�to_wrapz5ModuleForLoaderTests.raise_exception.<locals>.to_wrap�s���r)rpr.)rr>rr{s    r�raise_exceptionz$ModuleForLoaderTests.raise_exception�s^��	�	�	��$�$�W�-�-��	��C��d�O�O�O�O�O���	�	�	��D�D�	���s�(�
6�6c�B�d}tj|��5|�|��}|�|tj��ddd��n#1swxYwY|�|tj��|�	|j
|��dS�N�a.b.c)r�uncacher|�assertIn�sys�modulesr;r<r=r
r)r�module_namer's   r�test_new_modulez$ModuleForLoaderTests.test_new_module�s�����
�\�+�
&�
&�	4�	4��'�'��4�4�F��M�M�+�s�{�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	
���f�e�&6�7�7�7������+�6�6�6�6�6s�6A�A� Ac����G�fd�d��}d}tjd��}d|_d|_t	j|��5|tj|<|��}|�|��}��	|tj|����
|j|����
|j|��ddd��dS#1swxYwYdS)Nc�6��eZdZd�Z�jd���ZdS)�4ModuleForLoaderTests.test_reload.<locals>.FakeLoaderc��dS)NTr�rr>s  rrZz?ModuleForLoaderTests.test_reload.<locals>.FakeLoader.is_package�r8rc��|Sr%rr&s  r�load_modulez@ModuleForLoaderTests.test_reload.<locals>.FakeLoader.load_module�����
rN)rrrrZrpr��rs�r�
FakeLoaderr��sA�������
�
�
�
�
#�
�
�$�
#�
�
�
rr�r��*)r<r=rRrVrr�r�r�r�rQr
)rr�r>r'rS�returned_modules`     r�test_reloadz ModuleForLoaderTests.test_reload�sG���	�	�	�	�	�	�	�	�	�	����!�'�*�*��������
�\�$�
�
�	7�	7� &�C�K����Z�\�\�F�$�0�0��6�6�O��M�M�/�3�;�t�+<�=�=�=����V�.��7�7�7����V�/��6�6�6�
	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s�	BC!�!C%�(C%c���d}tj|��5|�|��|�|tj��ddd��dS#1swxYwYdSr�)rr�r��assertNotInr�r�r�s  r�test_new_module_failurez,ModuleForLoaderTests.test_new_module_failure�s�����
�\�$�
�
�	0�	0�� � ��&�&�&����T�3�;�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s�6A�A�!Ac� �d}tj|��}tj|��5|tj|<|�|��|�|tj|��ddd��dS#1swxYwYdSr�)r<r=rr�r�r�r�rQ�rr>r's   r�test_reload_failurez(ModuleForLoaderTests.test_reload_failure�s������!�$�'�'��
�\�$�
�
�	5�	5� &�C�K���� � ��&�&�&��M�M�&�#�+�d�"3�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5s�AB�B�
Bc��d�}|�|��}|�|j|j��|�|j|j��dS)Nc��dSr%rr&s  rr{z6ModuleForLoaderTests.test_decorator_attrs.<locals>.fxn�����r)rpr
rr�rr{�wrappeds   r�test_decorator_attrsz)ModuleForLoaderTests.test_decorator_attrs�s[��#�#�#��(�(��-�-������)�3�<�8�8�8�����-�s�/?�@�@�@�@�@rc�H�Gd�dtj��}d}||��}tj|��5|�|��|t
j|<|�|��}|�||��ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�;ModuleForLoaderTests.test_false_module.<locals>.FalseModulec��dS)NFrr�s r�__bool__zDModuleForLoaderTests.test_false_module.<locals>.FalseModule.__bool__�s��u�urN�rrrr�rrr�FalseModuler��s������,�,�,�,�,rr��mod)	r<r=rr��assertFalser�r�r|rQ)rr�r>r'�givens     r�test_false_modulez&ModuleForLoaderTests.test_false_module�s��	-�	-�	-�	-�	-�%�*�	-�	-�	-�����T�"�"��
�\�$�
�
�	)�	)����V�$�$�$� &�C�K����&�&�t�,�,�E��M�M�%��(�(�(�		)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�AB�B�Bc���G�fd�d��}d}tj|��5|d��}|�|��}��|j|����|j|����|jd��ddd��n#1swxYwYd}tj|��5|d��}|�|��}��|j|����|j|����|j|��ddd��dS#1swxYwYdS)Nc�<��eZdZd�Zd�Z�jd���ZdS)�<ModuleForLoaderTests.test_attributes_set.<locals>.FakeLoaderc��||_dSr%��_pkg)rrZs  r�__init__zEModuleForLoaderTests.test_attributes_set.<locals>.FakeLoader.__init__�s
��&��	�	�	rc��|jSr%r�r�s  rrZzGModuleForLoaderTests.test_attributes_set.<locals>.FakeLoader.is_package�s
���y� rc��|Sr%rr&s  rr�zHModuleForLoaderTests.test_attributes_set.<locals>.FakeLoader.load_module�r�rN)rrrr�rZrpr�r�s�rr�r��sP�������
'�
'�
'�
!�
!�
!�
�
#�
�
�$�
#�
�
�
rr��pkg.modF�pkgzpkg.subT)rr�r�r
rrQrRrV)rr�r>rSr's`    r�test_attributes_setz(ModuleForLoaderTests.test_attributes_set�s����	�	�	�	�	�	�	�	�	�	���
�\�$�
�
�	8�	8��Z��&�&�F��'�'��-�-�F����V�_�d�3�3�3��M�M�&�+�V�4�4�4����V�/��7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8���
�\�$�
�
�	7�	7��Z��%�%�F��'�'��-�-�F����V�_�d�3�3�3��M�M�&�+�V�4�4�4����V�/��6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s%�A2B%�%B)�,B)�A2E�E	�E	N)rrr�__doc__�classmethodrprxr|r�r�r�r�r�r�r�r�rrrriri|s�������5�5��4�4��[�4�
@�@�@�������7�7�7�7�7�7�(0�0�0�5�5�5�A�A�A�)�)�)�7�7�7�7�7rric�<�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�SetPackageTestsz%Tests for importlib.util.set_package.c�`���fd�}|j�|��}tj��5tjdt
��|��ddd��n#1swxYwY|�t�d����|�|�j	��dS)zcVerify the module has the expected value for __package__ after
        passing through set_package.c����Sr%r�r's�rrwz(SetPackageTests.verify.<locals>.<lambda>s���f�rrkNrV)
r�set_packagerlrmrnro�
assertTrue�hasattrr
rV)rr'�expectr{r�s `   r�verifyzSetPackageTests.verifys�����n�n�n���)�'�'��,�,��
�
$�
&�
&�	�	��!�(�,>�?�?�?��G�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�����
�6�6�7�7�7������!3�4�4�4�4�4s�%A%�%A)�,A)c�h�tjd��}d|_|�|d��dS)Nr'��r<r=rVr�r&s  r�test_top_levelzSetPackageTests.test_top_levels6���!�(�+�+��!������F�B�����rc�x�tjd��}dg|_d|_|�|d��dS)Nr�z<path>)r<r=r[rVr�r&s  r�test_packagezSetPackageTests.test_packages=���!�%�(�(��#�*���!������F�E�"�"�"�"�"rc�h�tjd��}d|_|�|d��dS)Nr�r�r�r&s  r�test_submodulezSetPackageTests.test_submodules4���!�)�,�,��!������F�E�"�"�"�"�"rc��tjd��}t|d��rt|d��|�|d��dS)Nr�rVr�)r<r=r��delattrr�r&s  r�test_setting_if_missingz'SetPackageTests.test_setting_if_missing"sN���!�%�(�(���6�=�)�)�	+��F�M�*�*�*����F�B�����rc�r�dD]3}tjd��}||_|�||���4dS)N)TFr�r�)r�valuer's   r�test_leaving_alonez"SetPackageTests.test_leaving_alone)sJ��"�	'�	'�E��%�e�,�,�F�!&�F���K�K���&�&�&�&�	'�	'rc�J�d�}tj��5tjdt��|j�|��}ddd��n#1swxYwY|�|j|j��|�|j|j��dS)Nc��dSr%rr�s rr{z1SetPackageTests.test_decorator_attrs.<locals>.fxn1r�rrk)	rlrmrnrorr�r
rrr�s   rr�z$SetPackageTests.test_decorator_attrs0s������
�
$�
&�
&�	1�	1��!�(�,>�?�?�?��i�+�+�C�0�0�G�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	
����)�3�<�8�8�8�����-�s�/?�@�@�@�@�@s�5A�A�AN)rrrr�r�r�r�r�r�r�r�rrrr�r��s�������/�/�	5�	5�	5� � � �#�#�#�#�#�#� � � �'�'�'�A�A�A�A�Arr�c�:�eZdZdZed���Zd�Zd�Zd�ZdS)�SetLoaderTestsz"Tests importlib.util.set_loader().c�>��G�fd�d��}|�j_|S)Nc�:��eZdZ�jjd���ZdS)�/SetLoaderTests.DummyLoader.<locals>.DummyLoaderc��|jSr%r�r&s  rr�z;SetLoaderTests.DummyLoader.<locals>.DummyLoader.load_moduleFs
���{�"rN)rrrr�
set_loaderr�r�s�r�DummyLoaderr�Es4�������
�Y�
!�
#�
#�"�
!�
#�
#�
#rr�)�	__class__r�)rr�s` rr�zSetLoaderTests.DummyLoaderBsG���	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�&1���"��rc�z�|���}tjd��|_	|j`n#t
$rYnwxYwt
j��5t
jdt��|�
||�d��j��ddd��dS#1swxYwYdS�N�blahrk)r�r<r=r'rR�AttributeErrorrlrmrnror
r��rrSs  r�test_no_attributez SetLoaderTests.test_no_attributeLs���!�!�#�#���(��0�0��
�	��
�(�(���	�	�	��D�	����
�
$�
&�
&�	L�	L��!�(�,>�?�?�?����V�V�%7�%7��%?�%?�%J�K�K�K�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�	L�	Ls"�7�
A�A�A	B0�0B4�7B4c�`�|���}tjd��|_d|j_tj��5tjdt��|�	||�
d��j��ddd��dS#1swxYwYdSr��r�r<r=r'rRrlrmrnror
r�r�s  r�test_attribute_is_Nonez%SetLoaderTests.test_attribute_is_NoneWs����!�!�#�#���(��0�0��
�#'��
� �
�
$�
&�
&�	L�	L��!�(�,>�?�?�?����V�V�%7�%7��%?�%?�%J�K�K�K�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�	L�	L��
A	B#�#B'�*B'c�`�|���}tjd��|_d|j_tj��5tjdt��|�	d|�
d��j��ddd��dS#1swxYwYdS)Nr�r�rkr�r�s  r�test_not_resetzSetLoaderTests.test_not_reset_s����!�!�#�#���(��0�0��
�#%��
� �
�
$�
&�
&�	H�	H��!�(�,>�?�?�?����R��!3�!3�F�!;�!;�!F�G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�	H�	Hr�N)	rrrr��propertyr�r�r�r�rrrr�r�>sk������,�,�
����X��	L�	L�	L�L�L�L�H�H�H�H�Hrr�c�6�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�ResolveNameTestsz$Tests importlib.util.resolve_name().c�d�|�d|j�dd����dS)N�bacon�r
r�resolve_namer�s r�
test_absolutezResolveNameTests.test_absoluteqs0������$�)�"8�"8��$�"G�"G�H�H�H�H�Hrc�d�|�d|j�dd����dS)Nr��spamr�r�s r�test_absolute_within_packagez-ResolveNameTests.test_absolute_within_packageus0������$�)�"8�"8��&�"I�"I�J�J�J�J�Jrc��|�t��5|j�dd��ddd��dS#1swxYwYdS)N�.baconr��r-r.rr�r�s r�test_no_packagez ResolveNameTests.test_no_packageys���
�
�
�{�
+�
+�	1�	1��I�"�"�8�R�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1��A�A�Ac�d�|�d|j�dd����dS)Nzspam.eggs.baconr��	spam.eggsr�r�s r�test_in_packagez ResolveNameTests.test_in_package~sA�����*���/�/��+�F�F�	H�	H�	H�	H�	Hrc�d�|�d|j�dd����dS)Nz
spam.bacon�..baconr�r�r�s r�test_other_packagez#ResolveNameTests.test_other_package�s@��������/�/�	�;�G�G�	I�	I�	I�	I�	Irc��|�t��5|j�dd��ddd��dS#1swxYwYdS)Nr�r�r�r�s r�test_escapezResolveNameTests.test_escape�s���
�
�
�{�
+�
+�	6�	6��I�"�"�9�f�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6r�N)
rrrr�r�r�r�r�rrrrrr�r�ms�������.�.�I�I�I�K�K�K�1�1�1�
H�H�H�
I�I�I�
6�6�6�6�6rr�c�p�eZdZGd�d��Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�ZdS)�
FindSpecTestsc�&�eZdZedd���ZdS)�FindSpecTests.FakeMetaFinderNc��|||fSr%r)r>�path�targets   r�	find_specz&FindSpecTests.FakeMetaFinder.find_spec�s��<@�$��<N�5Nr)NN)rrr�staticmethodr
rrr�FakeMetaFinderr�s&������	�N�N�N�
��N�N�Nrrc�`�d}tj|��5tj|��}d}|j�||��}||_||_|tj	|<|j�
|��}|�||��ddd��dS#1swxYwYdS�N�some_modz	a loader!)rr�r<r=r+r,rRrNr�r�r
r
�rr>r'rSr1�founds      r�test_sys_moduleszFindSpecTests.test_sys_modules�s�����
�\�$�
�
�	*�	*��%�d�+�+�F� �F��>�,�,�T�6�:�:�D� &�F��"�F�O� &�C�K����I�'�'��-�-�E����U�D�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�A?B#�#B'�*B'c�V�d}tj|��5tj|��}|`d}|j�||��}||_|tj	|<|j�
|��}|�||��ddd��dS#1swxYwYdSr)rr�r<r=rRr+r,rNr�r�r
r
rs      r�#test_sys_modules_without___loader__z1FindSpecTests.test_sys_modules_without___loader__�s�����
�\�$�
�
�	*�	*��%�d�+�+�F��!� �F��>�,�,�T�6�:�:�D�"�F�O� &�C�K����I�'�'��-�-�E����U�D�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�A:B�B"�%B"c�P�d}tj|��5tj|��}d|_|t
j|<|�t��5|j�	|��ddd��n#1swxYwYddd��dS#1swxYwYdS�Nr)
rr�r<r=rNr�r�r-�
ValueErrorr
r�s   r�test_sys_modules_spec_is_Nonez+FindSpecTests.test_sys_modules_spec_is_None�s����
�\�$�
�
�	*�	*��%�d�+�+�F�"�F�O� &�C�K����"�"�:�.�.�
*�
*��	�#�#�D�)�)�)�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*�		*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s6�AB�B�7B�B	�B�
B	�B�B�"Bc�N�d}tj|��5tj|��}|j�|d��}||_|tj|<|j�	|��}|�
||��ddd��dS#1swxYwYdSr)rr�r<r=r+r,rNr�r�r
r
)rr>r'r1rs     r�test_sys_modules_loader_is_Nonez-FindSpecTests.test_sys_modules_loader_is_None�s�����
�\�$�
�
�	*�	*��%�d�+�+�F��>�,�,�T�4�8�8�D�"�F�O� &�C�K����I�'�'��-�-�E����U�D�)�)�)�
	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�A6B�B�!Bc�j�d}tj|��5tj|��}	|`n#t
$rYnwxYw|tj|<|�t��5|j�
|��ddd��n#1swxYwYddd��dS#1swxYwYdSr)rr�r<r=rNr�r�r�r-rr
r�s   r� test_sys_modules_spec_is_not_setz.FindSpecTests.test_sys_modules_spec_is_not_set�sB����
�\�$�
�
�	*�	*��%�d�+�+�F�
��O�O��!�
�
�
���
���� &�C�K����"�"�:�.�.�
*�
*��	�#�#�D�)�)�)�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*sP�B(�0�B(�
=�B(�=�,B(�)B�B(�B	�B(�B	�B(�(B,�/B,c�,�d}tj|��5tj|jg���5|�|ddf|j�|����ddd��n#1swxYwYddd��dS#1swxYwYdS)Nr)�	meta_path)rr��import_staterr
r
r�s  r�test_successzFindSpecTests.test_success�s����
�\�$�
�
�	<�	<��"�d�.A�-B�C�C�C�
<�
<�� � �$��d�!3�!%��!4�!4�T�!:�!:�<�<�<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<����
<�
<�
<�
<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s4�B	�2A1�%B	�1A5	�5B	�8A5	�9B	�	B
�B
c�`�|�|j�d����dS)N�nevergoingtofindthismodule)�assertIsNonerr
r�s r�test_nothingzFindSpecTests.test_nothing�s-�����$�)�-�-�.J�K�K�L�L�L�L�Lrc��d}d}tj|d���5}tj|||��\}}|j�|��}|�|d��|�|t
tj����|�	|t
tj����|j�|��}|�
||��ddd��dS#1swxYwYdS�Nr��hamT�r��r�temp_module�	submoduler
�assertIsNotr��sortedr�r�r�r
�rr>�subname�pkg_dir�fullname�_r1�
spec_agains        r�test_find_submodulez!FindSpecTests.test_find_submodule�s.������
�
�d��
-�
-�
-�	/���.��w��@�@�K�H�a��9�&�&�x�0�0�D����T�4�(�(�(��M�M�$��s�{� 3� 3�4�4�4����X�v�c�k�':�':�;�;�;���,�,�X�6�6�J����Z��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�CC<�<D�Dc�F�d}d}tj|d���5}|j�|��tj|||��\}}|j�|��}|�|d��|�|ttj
����|�|ttj
����|j�|��}|�||��ddd��dS#1swxYwYdSr&)
rr*�init�
import_moduler+r
r,r�r-r�r�r�r
r.s        r�+test_find_submodule_parent_already_importedz9FindSpecTests.test_find_submodule_parent_already_imported�sD������
�
�d��
-�
-�
-�		/���I�#�#�D�)�)�)��.��w��@�@�K�H�a��9�&�&�x�0�0�D����T�4�(�(�(��M�M�$��s�{� 3� 3�4�4�4����X�v�c�k�':�':�;�;�;���,�,�X�6�6�J����Z��.�.�.�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/����		/�		/�		/�		/�		/�		/s�C.D�D�Dc��d}d}tj|d���5}tj|||��\}}d|z}|j�||��}|�|d��|�|t
tj����|�	|t
tj����|j�|��}|�
||��ddd��dS#1swxYwYdS�Nr�r'Tr(�.r))	rr>r/r0r1r2�relnamer1r3s	         r�test_find_relative_modulez'FindSpecTests.test_find_relative_module�s9������
�
�d��
-�
-�
-�		/���.��w��@�@�K�H�a��G�m�G��9�&�&�w��5�5�D����T�4�(�(�(��M�M�$��s�{� 3� 3�4�4�4����X�v�c�k�':�':�;�;�;���,�,�X�6�6�J����Z��.�.�.�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/����		/�		/�		/�		/�		/�		/s�CD�D�	Dc���d}d}tj|d���5}tj|||��\}}d|z}|�t��5|j�|��ddd��n#1swxYwY|�|ttj	����|�|ttj	����ddd��dS#1swxYwYdSr:)
rr*r+r-r.r
r�r-r�r�)rr>r/r0r1r2r<s       r�)test_find_relative_module_missing_packagez7FindSpecTests.test_find_relative_module_missing_packagesb������
�
�d��
-�
-�
-�	<���.��w��@�@�K�H�a��G�m�G��"�"�;�/�/�
-�
-��	�#�#�G�,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-����T�6�#�+�#6�#6�7�7�7����X�v�c�k�':�':�;�;�;�
	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s6�9C-�A;�/C-�;A?	�?C-�A?	�AC-�-C1�4C1c��|�t��5|j�d��ddd��dS#1swxYwYdS)Nzmodule.name)r-�ModuleNotFoundErrorrr
r�s r�test_find_submodule_in_modulez+FindSpecTests.test_find_submodule_in_modules����
�
�2�
3�
3�	/�	/��I���
�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/��A�A�
AN)rrrrrrrrrr r$r4r8r=r?rBrrrrr�s�������O�O�O�O�O�O�O�O�
*�
*�
*�
*�
*�
*�*�*�*�*�*�*�
*�
*�
*�<�<�<�M�M�M�/�/�/�/�/�/�/�/�/�	<�	<�	<�/�/�/�/�/rr)r6rr+c��eZdZd�Zd�ZdS)�MagicNumberTestsc�`�|�t|jj��d��dS)N�)r
�lenr�MAGIC_NUMBERr�s r�test_lengthzMagicNumberTests.test_lengths+������T�Y�3�4�4�a�8�8�8�8�8rc�j�|�|jj�d����dS)Ns
)r�rrI�endswithr�s r�test_incorporates_rnz%MagicNumberTests.test_incorporates_rn"s-������	�.�7�7��@�@�A�A�A�A�ArN)rrrrJrMrrrrErEs7������9�9�9�B�B�B�B�BrrEc�R�eZdZdZejjZej	ejjdud��d���Z
d�Zd�Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zejejdko
ejdkd��d���Zej	ejjdud��d���Zej	ejjdud��d���Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#ej	ejjdud��d���Z$ej	ejjdud��d���Z%ej	ejjdud��d ���Z&ej	ejjdud��d!���Z'ej	ejjdud��d"���Z(dS)#�PEP3147TestszMTests of PEP 3147-related functions: cache_from_source and source_from_cache.Nz1requires sys.implementation.cache_tag not be Nonec	� �tj�dddd��}tj�ddddd�|j����}|�|j�|d���|��dS�	N�foo�bar�baz�qux.py�__pycache__�
qux.{}.pycr���optimization��osrr�format�tagr
r�cache_from_source�rrr�s   r�test_cache_from_sourcez#PEP3147Tests.test_cache_from_source2s���
�w�|�|�E�5�%��:�:������e�U�E�=�*�1�1�$�(�;�;�=�=�������4�4�T��4�K�K��	!�	!�	!�	!�	!rc��tjtjdd��5|�t
��5|j�d��ddd��n#1swxYwYddd��dS#1swxYwYdS)N�	cache_tagzwhatever.py)r�	swap_attrr��implementationr-�NotImplementedErrorrr^r�s r�#test_cache_from_source_no_cache_tagz0PEP3147Tests.test_cache_from_source_no_cache_tag=s���
�
�s�1�;��
E�
E�	;�	;��"�"�#6�7�7�
;�
;��	�+�+�M�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s4�A;�A#�A;�#A'	�'A;�*A'	�+A;�;A?�A?c��tj�dd��}tj�ddd�|j����}|�|j�|d���|��dS)Nzfoo.bar�filerVz
file{}.pycr�rXrZr_s   r�test_cache_from_source_no_dotz*PEP3147Tests.test_cache_from_source_no_dotCs���w�|�|�I�v�.�.������i��*�1�1�$�(�;�;�=�=�������4�4�T��4�K�K��	!�	!�	!�	!�	!rc��tj�dddd��}tj��5tjd��|�|j�|d��|j�|d�����|�|j�|d	��|j�|d
�����ddd��n#1swxYwYtj��5tjd��|�	t��5|j�|d��ddd��n#1swxYwY|�	t��5|j�|d	��ddd��n#1swxYwYddd��dS#1swxYwYdS)NrRrSrTrUrkF�rXTr�rt)r[rrrlrmrnr
rr^r-ro�rrs  r�%test_cache_from_source_debug_overridez2PEP3147Tests.test_cache_from_source_debug_overrideKs����w�|�|�E�5�%��:�:��
�
$�
&�
&�	Q�	Q��!�(�+�+�+����T�Y�8�8��u�E�E�!�Y�8�8��A�8�N�N�
P�
P�
P����T�Y�8�8��t�D�D�!�Y�8�8��B�8�O�O�
Q�
Q�
Q�		Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q����	Q�	Q�	Q�	Q��
$�
&�
&�	8�	8��!�'�*�*�*��"�"�#5�6�6�
9�
9��	�+�+�D�%�8�8�8�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9��"�"�#5�6�6�
8�
8��	�+�+�D�$�7�7�7�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8����
8�
8�
8�
8�		8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8sl�B'C)�)C-�0C-�/G�6E�G�E"	�"G�%E"	�&G�F+�G�+F/	�/G�2F/	�3G�G�
Gc���d}tj�dd�|j����}|�|j�|d���|��dS�N�foo.pyrVz
foo.{}.pycr�rXrZr_s   r�test_cache_from_source_cwdz'PEP3147Tests.test_cache_from_source_cwd\sh��������m�\�-@�-@���-J�-J�K�K�������4�4�T��4�K�K��	!�	!�	!�	!�	!rc��tj�ddd��}Gd�d��}tj��5tjd��|�|j�|g��|j�|d�����|�|j�|d	g��|j�|d
�����|�	t��5|j�d|����ddd��n#1swxYwYddd��dS#1swxYwYdS)NrRrSzbaz.pyc��eZdZd�ZdS)�=PEP3147Tests.test_cache_from_source_override.<locals>.Bearishc��t�r%)�RuntimeErrorr�s rr�zFPEP3147Tests.test_cache_from_source_override.<locals>.Bearish.__bool__is��l� 2rNr�rrr�Bearishrths������2�2�2�2�2rrwrkrkrX�r�z/foo/bar/baz.py)r[rrrlrmrnr
rr^r-rv)rrrws   r�test_cache_from_source_overridez,PEP3147Tests.test_cache_from_source_overridebs���w�|�|�E�5�(�3�3��	3�	3�	3�	3�	3�	3�	3�	3�
�
$�
&�
&�	J�	J��!�(�+�+�+����T�Y�8�8��r�B�B�!�Y�8�8��A�8�N�N�
P�
P�
P����T�Y�8�8���t�D�D�!�Y�8�8��B�8�O�O�
Q�
Q�
Q��"�"�<�0�0�
J�
J��	�+�+�,=�w�w�y�y�I�I�I�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J�
	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J�	J�	Js7�CE�$D4�(E�4D8	�8E�;D8	�<E�E�Ec���d}tj�dd�|j����}|�|j�|d���|��dSrorZr_s   r�0test_cache_from_source_optimization_empty_stringz=PEP3147Tests.test_cache_from_source_optimization_empty_stringtsh��������m�\�-@�-@���-J�-J�K�K�������4�4�T��4�K�K��	!�	!�	!�	!�	!rc��d}tjj}tj�dd�|j����}|dkr|dz}nI|dkr|d�|��z}n*d�|��}|�|��|�	|j
�|d�	��|��dS)
NrprV�foo.{}r�.pyc��.opt-{}.pycz){!r} is a non-standard optimization levelrX)r��flags�optimizer[rrr\r]�skipTestr
rr^)rr�optimization_level�
almost_expectr��msgs      r�(test_cache_from_source_optimization_Nonez5PEP3147Tests.test_cache_from_source_optimization_None{s����� �Y�/������]�H�O�O�D�H�4M�4M�N�N�
���"�	�"�V�+�F�F�
�1�
$�	�"�]�%9�%9�:L�%M�%M�M�F�F�=�D�D�EW�X�X�C��M�M�#���������4�4�T��4�M�M��	!�	!�	!�	!�	!rc�@�d}tjtjz}tj�dd�|j����}|j�	||���}|�
||d�|��z��|�
|j�	|d���|dz��|�t��5|j�	|d���ddd��dS#1swxYwYdS)	NrprVr}rXr�r�z.opt-42.pyczpath/is/bad)
�string�
ascii_letters�digitsr[rrr\r]rr^r
r-r)rr�valid_charactersr��gots     r�'test_cache_from_source_optimization_setz4PEP3147Tests.test_cache_from_source_optimization_set�sm����!�/�&�-�?������]�H�O�O�D�H�4M�4M�N�N�
��i�)�)�$�=M�)�N�N������&��)=�)=�>N�)O�)O�O�	Q�	Q�	Q�	
�����4�4�T��4�K�K�&��6�	8�	8�	8��
�
�z�
*�
*�	J�	J��I�'�'��=�'�I�I�I�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J�	J�	Js�)D�D�Dc�$�tj��5tjd��|�t��5|j�ddd���ddd��n#1swxYwYddd��dS#1swxYwYdS)NrkrpFr�rX)rlrmrnr-�	TypeErrorrr^r�s r�;test_cache_from_source_debug_override_optimization_both_setzHPEP3147Tests.test_cache_from_source_debug_override_optimization_both_set�s1��
�
$�
&�
&�	N�	N��!�(�+�+�+��"�"�9�-�-�
N�
N��	�+�+�H�e�"�+�M�M�M�
N�
N�
N�
N�
N�
N�
N�
N�
N�
N�
N����
N�
N�
N�
N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N����	N�	N�	N�	N�	N�	Ns5�/B�A-�!B�-A1	�1B�4A1	�5B�B	�B	�\�/z/test meaningful only where os.altsep is definedc��|�|j�dd���d�|j����dS)Nz\foo\bar\baz/qux.pyr�rXz#\foo\bar\baz\__pycache__\qux.{}.pyc)r
rr^r\r]r�s r�)test_sep_altsep_and_sep_cache_from_sourcez6PEP3147Tests.test_sep_altsep_and_sep_cache_from_source�sW��	
����I�'�'�(@�r�'�R�R�6�=�=�d�h�G�G�	I�	I�	I�	I�	Irc	�
�tjdddd��}tj�ddddd�|j����}|�|j�	|d���|��dSrQ)
�pathlib�PurePathr[rrr\r]r
rr^r_s   r�$test_cache_from_source_path_like_argz1PEP3147Tests.test_cache_from_source_path_like_arg�s������u�e�X�>�>������e�U�E�=�*�1�1�$�(�;�;�=�=�������4�4�T��4�K�K��	!�	!�	!�	!�	!rz4requires sys.implementation.cache_tag to not be Nonec	��tj�ddddd�|j����}tj�dddd��}|�|j�|��|��dS�NrRrSrTrVrWrU�r[rrr\r]r
r�source_from_cacher_s   r�test_source_from_cachez#PEP3147Tests.test_source_from_cache�sy��
�w�|�|�E�5�%��(�/�/���9�9�;�;������e�U�E�8�<�<�������4�4�T�:�:�F�C�C�C�C�Crc�R�tj�ddd��}tjt
jdd��5|�t��5|j	�
|��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nr�rVzwhatever.pycrb)r[rrrrcr�rdr-rerr�rls  r�#test_source_from_cache_no_cache_tagz0PEP3147Tests.test_source_from_cache_no_cache_tag�s���w�|�|�F�M�>�B�B��
�
�s�1�;��
E�
E�	2�	2��"�"�#6�7�7�
2�
2��	�+�+�D�1�1�1�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2����
2�
2�
2�
2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s6�B�B�8B�B	�B�B	�B�B �#B c�R�|�t|jjd��dS)Nz/foo/bar/bazqux.pyc�r-rrr�r�s r�test_source_from_cache_bad_pathz,PEP3147Tests.test_source_from_cache_bad_path�s8��	
�����	�3�5J�	L�	L�	L�	L�	Lrc�R�|�t|jjd��dS)Nzfoo.cpython-32.pycr�r�s r�test_source_from_cache_no_slashz,PEP3147Tests.test_source_from_cache_no_slash�s6�������	�3�5I�	K�	K�	K�	K�	Krc�R�|�t|jjd��dS)Nz__pycache__/foo.pycr�r�s r�#test_source_from_cache_too_few_dotsz0PEP3147Tests.test_source_from_cache_too_few_dots�s6�������	�3�5J�	L�	L�	L�	L�	Lrc��|�t��5|j�d��ddd��dS#1swxYwYdS)Nz(__pycache__/foo.cpython-32.opt-1.foo.pycr�r�s r�$test_source_from_cache_too_many_dotsz1PEP3147Tests.test_source_from_cache_too_many_dots�s���
�
�
�z�
*�
*�	@�	@��I�'�'�>�
@�
@�
@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@rCc�R�|�t|jjd��dS)Nz"__pycache__/foo.cpython-32.foo.pycr�r�s r�test_source_from_cache_not_optz+PEP3147Tests.test_source_from_cache_not_opt�s1�������	�3�0�	2�	2�	2�	2�	2rc�R�|�t|jjd��dS)Nz/foo/bar/foo.cpython-32.foo.pycr�r�s r�$test_source_from_cache_no__pycache__z1PEP3147Tests.test_source_from_cache_no__pycache__�s1�������	�3�-�	/�	/�	/�	/�	/rc���tj�dd�|j����}|�|j�|��d��dS)NrVzfoo.{}.opt-1.pycrpr�rls  r�)test_source_from_cache_optimized_bytecodez6PEP3147Tests.test_source_from_cache_optimized_bytecode�sT���w�|�|�M�+=�+D�+D�T�X�+N�+N�O�O�������4�4�T�:�:�H�E�E�E�E�Erc��tj�dd�|j����}|�t��5|j�|��ddd��dS#1swxYwYdS)NrVzfoo.{}.opt-.pyc)	r[rrr\r]r-rrr�rls  r�+test_source_from_cache_missing_optimizationz8PEP3147Tests.test_source_from_cache_missing_optimization�s����w�|�|�M�+<�+C�+C�D�H�+M�+M�N�N��
�
�
�z�
*�
*�	.�	.��I�'�'��-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s�A;�;A?�A?c	��tjddddd�|j����}tj�dddd��}|�|j�	|��|��dSr�)
r�r�r\r]r[rrr
rr�r_s   r�$test_source_from_cache_path_like_argz1PEP3147Tests.test_source_from_cache_path_like_arg�sv�����u�e�]� ,� 3� 3�D�H� =� =�?�?������e�U�E�8�<�<�������4�4�T�:�:�F�C�C�C�C�Crc���tj�tjjdd��tj�tjjdd��tj�tjjdd��tjjzg}d�tjdkrd��fd�|D��}|d	d
gz
}|D]�}|�|���5�tj�tjjdd
dd��z}tj�|dd
dd�|j����}tj	|��5|�
|j�|d���|��ddd��n#1swxYwYddd��n#1swxYwY��dS)N�tmp�bytecodeu☃ztrailing-slashr��ntzC:c���g|]}��|����	Srr)�.0�prefix�drives  �r�
<listcomp>zOPEP3147Tests.test_cache_from_source_respects_pycache_prefix.<locals>.<listcomp>s7��� C� C� C�'-�5�"�&�"�"� C� C� Crz
\\?\C:\fooz\\localhost\c$\bar)rrRrSrTrUrWrX)r[rr�sepr>�subTestr\r]r�temporary_pycache_prefixr
r^)r�pycache_prefixes�pycache_prefixrr�r�s     @r�.test_cache_from_source_respects_pycache_prefixz;PEP3147Tests.test_cache_from_source_respects_pycache_prefix�s;���
�G�L�L����e�Z�8�8��G�L�L����e�X�6�6��G�L�L����e�-=�>�>����L�
��
��
�7�d�?�	G��E� C� C� C� C�1A� C� C� C����0E� F�F��.�
	 �
	 �N����>��2�2�	
 �	
 ��r�w�|�|��G�K���u�h� @� @�@������"�E�5�%� �'�'���1�1�3�3���2�>�B�B� � ��$�$��	�3�3�D�r�3�J�J�� � � � � � � � � � � � � � ���� � � � �
	
 �	
 �	
 �	
 �	
 �	
 �	
 �	
 �	
 �	
 �	
 ����	
 �	
 �	
 �	
 ��
	 �
	 s7�&BF?�+1F(�F?�(F,�,F?�/F,�0F?�?G	�G	c
��tj�tjjdd��}tj�dddd��}tj�tj����dtjjz}tj�|tj�tj��|��dddd|j�d	���}tj	|��5|�
|j�|d
���|��ddd��dS#1swxYwYdS)Nr�r�rRrSrTrUr�qux.r~r�rX)r[rrr��
splitdrive�getcwd�relpathr]rr�r
r^)rr�r�rootr�s     r�7test_cache_from_source_respects_pycache_prefix_relativezDPEP3147Tests.test_cache_from_source_respects_pycache_prefix_relativesS������b�g�k�5�*�E�E���w�|�|�E�5�%��:�:���w�!�!�"�)�+�+�.�.�q�1�B�G�K�?��������G�O�O�B�I�K�K��.�.��5�%�!6���!6�!6�!6�8�8���
*�>�
:�
:�	�	�����	�+�+�D�r�+�B�B��
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�1E	�	E
�E
c	���tj�tjjdd��}tj�|dddd|j�d���}tj�tjjdddd��}tj|��5|�|j�|��|��ddd��dS#1swxYwYdS)	Nr�r�rRrSrTr�r~rU�	r[rrr�r]rr�r
r��rr�rr�s    r�,test_source_from_cache_inside_pycache_prefixz9PEP3147Tests.test_source_from_cache_inside_pycache_prefix(s������b�g�k�5�*�E�E���w�|�|�N�E�5�%�1�4�8�1�1�1�3�3������b�g�k�5�%���I�I��
�
*�>�
:�
:�	H�	H����T�Y�8�8��>�>��G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�	H�	Hs�#/C�C#�&C#c	��tj�tjjdd��}tj�ddddd|j�d���}tj�dddd	��}tj|��5|�|j�|��|��ddd��dS#1swxYwYdS)
Nr�r�rRrSrTrVr�r~rUr�r�s    r�-test_source_from_cache_outside_pycache_prefixz:PEP3147Tests.test_source_from_cache_outside_pycache_prefix5s������b�g�k�5�*�E�E���w�|�|�E�5�%��1�4�8�1�1�1�3�3������e�U�E�8�<�<��
�
*�>�
:�
:�	H�	H����T�Y�8�8��>�>��G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�	H�	Hs�/C�C�C))rrrr�r�rdrbr]�unittest�skipIfr`rfrirmrqryr{r�r�r��
skipUnlessr[r��altsepr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrOrO,s�������W�W�

�
�
&�C��X�_�S�'�1�T�9�H�J�J�!�!�J�J�!�;�;�;�!�!�!�8�8�8�"!�!�!�J�J�J�$!�!�!�!�!�!� J�J�J�"N�N�N��X����4��<�B�I��,<�F�H�H�I�I�H�H�I��X�_�S�'�1�T�9�H�J�J�!�!�J�J�!��X�_�S�'�1�T�9�K�M�M�D�D�M�M�D�2�2�2�L�L�L�K�K�K�
L�L�L�
@�@�@�
2�2�2�/�/�/�F�F�F�
.�.�.��X�_�S�'�1�T�9�K�M�M�D�D�M�M�D��X�_�S�'�1�T�9�K�M�M� � �M�M� �6�X�_�S�'�1�T�9�K�M�M���M�M�� �X�_�S�'�1�T�9�K�M�M�	H�	H�M�M�	H��X�_�S�'�1�T�9�K�M�M�	H�	H�M�M�	H�	H�	HrrOc�^�eZdZdZejejjdvd��d���Z	dS)rEzA
    Test release compatibility issues relating to importlib
    )�	candidate�finalz8only applies to candidate or final python release levelsc��d}t�tjjdd�d��}d}|�|||��dS)Ni�
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_bytesrrrIr
)r�EXPECTED_MAGIC_NUMBER�actualr�s    r�test_magic_numberz"MagicNumberTests.test_magic_numberLsV��&!%�����	�� ;�B�Q�B� ?��J�J��	
&�	�	
���.���<�<�<�<�<rN)
rrrr�r�r�r��version_info�releaselevelr�rrrrErEHs]���������X����%�)?�?�B���=�=�	��=�=�=r�__main__)2�test.test_importlibr�import_importlibr:r6r+�importlib_util�importlib.utilrr[r�r�r�r*rr<r��
unittest.mockrlr�	test_both�Frozen_DecodeSourceBytesTests�Source_DecodeSourceBytesTestsr �Frozen_ModuleFromSpecTests�Source_ModuleFromSpecTestsri�Frozen_ModuleForLoaderTests�Source_ModuleForLoaderTestsr��Frozen_SetPackageTests�Source_SetPackageTestsr��Frozen_SetLoaderTests�Source_SetLoaderTestsr��Frozen_ResolveNameTests�Source_ResolveNameTestsr�Frozen_FindSpecTests�Source_FindSpecTestsrE�Frozen_MagicNumberTests�Source_MagicNumberTestsrO�Frozen_PEP3147Tests�Source_PEP3147Tests�TestCaser�mainrrr�<module>r�s��$�$�$�$�$�$��d��O�,�,���t��[�)�)��!�D�!�"7�8�8�	�&��&�'7�8�8������	�	�	�	�����
�
�
�
�
�
�
�
�����������������������@�@�@�@�@�@�@�@�.�T�^�*��@�@�@����F9�F9�F9�F9�F9�F9�F9�F9�T�D�N�&�C�9�&�(�(�(����
{7�{7�{7�{7�{7�{7�{7�{7�@�T�^�(�~�>�>�>����7A�7A�7A�7A�7A�7A�7A�7A�x�T�^�O�.�9�9�9����'H�'H�'H�'H�'H�'H�'H�'H�X�T�^�N��8�8�8����6�6�6�6�6�6�6�6�F�T�^�$�>�:�:�:����@/�@/�@/�@/�@/�@/�@/�@/�J�T�^�M��>�#,�.�.�.����
B�B�B�B�B�B�B�B��T�^�$�>�:�:�:����TH�TH�TH�TH�TH�TH�TH�TH�r�T�^�L�~�6�6�6����&=�&=�&=�&=�&=�x�(�&=�&=�&=�R�z����H�M�O�O�O�O�O��r