Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_zipimport.cpython-311.opt-1.pyc
�

�Kez����ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZddlmZmZmZmZddlZddlZddlZddlZddlZddlmZmZmZ	ddlZn
#e$rdZYnwxYwdZe edd	��Z!d
Z"d�Z#d�Z$ej��Z%e#e!e%e&e����Z'd
Z(dZ)dZ*ej+�,d��Z-ej+�,d��Z.ej/�0e(dz��Z1dZ2Gd�dej3��Z4Gd�de4��Z5ej6��Gd�de5����Z7Gd�dej3��Z8d�Z9e:dkrej;��dSdS)�N)�support)�
import_helper)�	os_helper)�ZipFile�ZipInfo�
ZIP_STORED�ZIP_DEFLATED)�
extract_tb�
extract_stack�print_tbzHdef get_name():
    return __name__
def get_file():
    return __file__
�<???>�execz def do_raise(): raise TypeError
c��tj|��}tjjtjddt|��dz|dz��z|z}|S)Nz<iLLr���)�marshal�dumps�	importlib�util�MAGIC_NUMBER�struct�pack�int)�co�mtime�size�data�pycs     �=/usr/local/apps/python3/lib/python3.11/test/test_zipimport.py�make_pycr&s[���=����D��>�&���F�A���J�J��,�d�[�.@�	B�	B�B�DH�I�C��J�c�B�|�tjd��S)N�.)�replace�os�sep)�paths r�module_path_to_dotted_namer'-s���<�<����$�$�$r �
ziptestmodule�ziptestpackage�ziptestpackage2�	junk95142z
junk95142.zip�.py�.pycc��eZdZd�Zd�ZdS)�ImportHooksBaseTestCasec��tjdd�|_tjdd�|_tjdd�|_tj���t
j��|_dS�N)	�sysr&�	meta_path�
path_hooks�path_importer_cache�clearr�
modules_setup�modules_before��selfs r�setUpzImportHooksBaseTestCase.setUp@sc���H�Q�Q�Q�K��	���q�q�q�)����.����+�����%�%�'�'�'�+�9�;�;����r c���|jtjdd�<|jtjdd�<|jtjdd�<tj���t
j|j�dSr1)	r&r2r3r4r5r6r�modules_cleanupr8r9s r�tearDownz ImportHooksBaseTestCase.tearDownGsc���i��������>��
�a�a�a�� �O���q�q�q����%�%�'�'�'��%�t�':�;�;�;�;r N)�__name__�
__module__�__qualname__r;r>�r rr/r/>s2������<�<�<�<�<�<�<�<r r/c��eZdZeZd�Zefd�Zefd�Z	d�Z
d�Zd�Zd�Z
d�Zd	�Zej�d
d��d���Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d �Z'd!�Z(d"�Z)d#�Z*d$�Z+d%�Z,d&�Z-d'�Z.ej/e0j1d(ud)��d*���Z2d+�Z3d,�Z4d-�Z5d.�Z6d(S)/�UncompressedZipImportTestCasec��tj��tj���t
�|��dSr1)�	linecache�
clearcache�	zipimport�_zip_directory_cacher6r/r;r9s rr;z#UncompressedZipImportTestCase.setUpSsB��	������&�,�,�.�.�.��%�%�d�+�+�+�+�+r c�v�|�tj|��|���D�]\}\}}tj�||��}|dtjkr4tj�|��st	j	|���stj�
|��}tj�|��st	j	|��t|d��5}|�|��ddd��n#1swxYwY��dS)N����wb)
�
addCleanupr�rmtree�itemsr$r&�joinr%�isdir�makedirs�dirname�open�write)	r:�files�dirName�namerrr&�dname�fps	         r�makeTreez&UncompressedZipImportTestCase.makeTreeZs=��	
���	�(�'�2�2�2�#(�;�;�=�=�
	#�
	#��D�-�5�$��7�<�<���.�.�D��B�x�2�6�!�!��w�}�}�T�*�*�&��K��%�%�%�������-�-���w�}�}�U�+�+�'��K��&�&�&��$��%�%�#���H�H�T�N�N�N�#�#�#�#�#�#�#�#�#�#�#����#�#�#�#��
	#�
	#s�
D,�,D0	�3D0	c���|�tj|��t|d��5}|���D]L\}\}}t|t
j|����}|j|_	|�
||���M|�dd��}	|	�|	|_ddd��n#1swxYwY|�dd��}
|
��t|d��5}|���}ddd��n#1swxYwYt|d��5}|�|
��|�|��ddd��dS#1swxYwYdSdS)N�w�comment�stuff�rbrL)rMr�unlinkrrOr�time�	localtime�compression�
compress_type�writestr�getr^rT�readrU)r:rV�zipName�kw�zrXrr�zinfor^r_�fs            r�makeZipz%UncompressedZipImportTestCase.makeZipks��	
���	�(�'�2�2�2�
�W�c�
"�
"�	$�a�',�{�{�}�}�
(�
(�#��m�u�d���d�n�U�&;�&;�<�<��&*�&6��#��
�
�5�$�'�'�'�'��f�f�Y��-�-�G��"�#��	�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$����w��%�%�����g�t�$�$�
 ���v�v�x�x��
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 ��g�t�$�$�
�������������
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
�	�s6�BB>�>C�C�1D�D�D�-+E%�%E)�,E)c��|j|fi|��tj�dt��tjd�|����}|�d��}|�||��|rI|�	��}|�
|tjjtg|�R�|z��dSdS)Nrr"�call)rnr2r&�insert�TEMP_ZIPr�
import_modulerPrg�get_file�assertEqualr$)r:�expected_extrV�modulesrj�modrp�files        r�doTestz$UncompressedZipImportTestCase.doTest�s������U�!�!�b�!�!�!������8�$�$�$��%�c�h�h�w�&7�&7�8�8���v�v�f�~�~�����D��I�I�I��	;��<�<�>�>�D����T�2�7�<��$+�")�$+�$+�$+�-9�$:�
;�
;�
;�
;�
;�	;�	;r c��dtjvr|�d��dtjvr
tjd=dtt
fi}	|�d|d��|jtkr|�	d��dSdS#t$r,|jtkr|�	d��YdSYdSwxYw)N�zlibzzlib is a builtin modulezzlib.pyr,z"expected test to raise ImportErrorz&expected test to not raise ImportError)r2�builtin_module_names�skipTestrw�NOW�test_srcrzrdr�fail�ImportErrorr	�r:rVs  r�
testAFakeZlibz+UncompressedZipImportTestCase.testAFakeZlib�s���&�S�-�-�-��M�M�4�5�5�5��S�[� � ���F�#��S�(�O�,��	@��K�K��u�f�-�-�-�
��:�-�-��	�	�>�?�?�?�?�?�.�-��	�	D�	D�	D���<�/�/��	�	�B�C�C�C�C�C�C�0�/�/�	D���s�B�/C�Cc�n�tdzttfi}|�d|t��dS�Nr,��TESTMODrr�rzr�s  r�testPyz$UncompressedZipImportTestCase.testPy�s0���5��3��/�2�����E�5�'�*�*�*�*�*r c��ttzttfi}|�t|t��dSr1)r��pyc_extr�test_pycrzr�s  r�testPycz%UncompressedZipImportTestCase.testPyc�s1���7�"�S�(�O�4�����G�U�G�,�,�,�,�,r c��tdzttfttzttfi}|�t|t��dSr�)r�rr�r�r�rzr�s  r�testBothz&UncompressedZipImportTestCase.testBoth�s@���5��3��/��7�"�S�(�O�5�����G�U�G�,�,�,�,�,r c�>��d}tj�|��}tj�t|dd��|d��}tdztdftdztdz
|fi}�fd	�}��d|t|�
��dS)N�
state = 'old'�???rFr,�
state = 'new'r-�c�>����|jd��dS)N�old�ru�state�rxr:s �r�checkzFUncompressedZipImportTestCase.testUncheckedHashBasedPyc.<locals>.check��!������S�Y��.�.�.�.�.r �rp�	rr�source_hash�_bootstrap_external�_code_to_hash_pyc�compiler�rrz�r:�sourcer��bytecoderVr�s`     r�testUncheckedHashBasedPycz7UncompressedZipImportTestCase.testUncheckedHashBasedPyc�s����!���n�0�0��8�8���0�B�B��F�E�6�*�*���
�
��
�5��3��"8��6�!�C�"�H�h�#7�9��	/�	/�	/�	/�	/����D�%��u��5�5�5�5�5r z_imp.check_hash_based_pycs�alwaysc�>��d}tj�|��}tj�t|dd��|d��}tdztdftdztdz
|fi}�fd	�}��d|t|�
��dS)Nr�r�rFr,r�r-r�c�>����|jd��dS)N�newr�r�s �rr�zOUncompressedZipImportTestCase.test_checked_hash_based_change_pyc.<locals>.check�r�r r�r�r�s`     r�"test_checked_hash_based_change_pycz@UncompressedZipImportTestCase.test_checked_hash_based_change_pyc�s����!���n�0�0��8�8���0�B�B��F�E�6�*�*���
�
��
�5��3��"8��6�!�C�"�H�h�#7�9��	/�	/�	/�	/�	/����D�%��u��5�5�5�5�5r c�d�tdztdfi}|�d|t��dS)Nr,�)r�rrzr�s  r�testEmptyPyz)UncompressedZipImportTestCase.testEmptyPy�s0���5��3��)�,�����D�%��)�)�)�)�)r c���tt��}|dxxdzcc<tdzttftt
zt|fi}|�d|t��dS)Nr�r,��	bytearrayr�r�rr�r�rz)r:�badmagic_pycrVs   r�testBadMagicz*UncompressedZipImportTestCase.testBadMagic�sd�� ��*�*���Q����4������5��3��/��7�"�S�,�$7�9�����E�5�'�*�*�*�*�*r c��tt��}|dxxdzcc<ttzt|fi}	|�d|t��|�d��dS#tj$rK}|�	|j
t��|�d|j
j
��Yd}~dSd}~wwxYw)Nrr�r,zThis should not be reachedzmagic number)r�r�r�r�rrzr�rH�ZipImportError�assertIsInstance�	__cause__r��assertIn�msg)r:r�rV�excs    r�
testBadMagic2z+UncompressedZipImportTestCase.testBadMagic2�s��� ��*�*���Q����4������7�"�S�,�$7�8��	=��K�K��u�g�.�.�.��I�I�2�3�3�3�3�3���'�	=�	=�	=��!�!�#�-��=�=�=��M�M�.�#�-�*;�<�<�<�<�<�<�<�<�<�����	=���s�1A1�1C�AC�Cc���tt��}|dxxdzcc<tdzttftt
zt|fi}|�d|t��dS)N��r,r�)r:�badtime_pycrVs   r�testBadMTimez*UncompressedZipImportTestCase.testBadMTime�sf����)�)��	�B����4������5��3��/��7�"�S�+�$6�8�����E�5�'�*�*�*�*�*r c���ttdtt����}tdzt
tfttzt
|fi}|�d|t��dS)Nrr,)r�test_co�lenr�r�rr�rz)r:�twenty_thirty_eight_pycrVs   r�
test2038MTimez+UncompressedZipImportTestCase.test2038MTime�s]��#+�7�I�s�8�}�}�"M�"M���5��3��/��7�"�S�*A�$B�D�����E�5�'�*�*�*�*�*r c���ttjz}|dztztt
f|tztztt
fi}|�t|tt��dS�N�__init__)�TESTPACKr$r%r�rr�r�rz)r:�packdirrVs   r�testPackagez)UncompressedZipImportTestCase.testPackagesY���R�V�#���:�%��/�#�x���7�"�W�,�s�H�o�?�����G�U�H�g�6�6�6�6�6r c�Z�ttjz}|tztjz}|dztzt
tf|dztzt
tf|tztzt
tfi}|�t|ttt��dSr�)	r�r$r%�	TESTPACK2r�rr�r�rz�r:r��packdir2rVs    r�testSubPackagez,UncompressedZipImportTestCase.testSubPackage
s����R�V�#���Y�&���/���:�%��/�#�x���J�&��0�3��/��G�#�g�-��X��@��	
���G�U�H�i��A�A�A�A�Ar c��ttjz}|tztjz}|tdf|tdf|t
ztzttfi}|�t|ttt
��dS�Nr�)	r�r$r%r�rr�r�r�rzr�s    r�testSubNamespacePackagez5UncompressedZipImportTestCase.testSubNamespacePackagesp���R�V�#���Y�&���/���3��)��C��9��G�#�g�-��X��@��	
���G�U�H�i��A�A�A�A�Ar c�*�ttjz}|tztjz}|tzdztjz}|tdf|t
ztzttf|tdf|tdf|t
ztzttf|t
zdztzttf|t
ztzttfi}|tdf|t
zdztzttf|tdf|t
zdztzttf|t
ztzttfi}tj�	d��}|�
||��t}|�||��tj�d|��tj�d|��tjt��}|�dt%|j����|j\}	}
|�tj�t��|	�tj��d��|�d|
�tj��d��tj|�tjd��dd	���}|�d
t%|j����t/|j��d�dtjz��d
}|�|dd	�|��tjd�tt
f����}|�d|j�tj��d��tjd�tt
dzf����}|�tj�t��|j�tj��d��d�ttf��}tj|��}|�dt%|j����|j\}	}
|�tj�t��|	�tj��d��|�d|
�tj��d��tjd�|t
f����}|�tj�t��|j�tj��d��tjd�|t
dzf����}|�tj�t��|j�tj��d��tjd�|t
dzf����}|�d|j�tj��d��dS)
N�3r��2�	path1.ziprr����r"rK�������)r�r$r%r�rr�r�r�r&�abspathrn�TEMP_DIRr[r2rqrrsrur��__path__�basename�splitr#�listrP�__file__)
r:r�r��packdir3�files1�files2�zip1�zip2rx�p1�p2�mpath�subpkgs
             r�testMixedNamespacePackagez7UncompressedZipImportTestCase.testMixedNamespacePackage"sN���R�V�#���Y�&���/���h�&��,�r�v�5���C��9��G�#�g�-��X���S�"�I��S�"�I��W�$�w�.��h���W�$�s�*�W�4�s�H�o��W�$�w�.��h��
A���C��9��G�#�c�)�G�3�c�8�_��S�"�I��W�$�s�*�W�4�s�H�o��W�$�w�.��h��	A���w���{�+�+�����V�T�"�"�"����
�
�f�d�#�#�#�	�����4� � � ������4� � � ��%�h�/�/��
	
����C���-�-�.�.�.�����B������)�)�(�3�3�R�X�X�b�f�5E�5E�b�5I�J�J�J�����b�h�h�r�v�&6�&6�r�&:�;�;�;��%�h�&6�&6�r�v�s�&C�&C�C�R�C�&H�I�I������C���-�-�.�.�.��S�\�"�"�1�%�+�+�K�"�&�,@�A�A�!�D������#�2�#���.�.�.��%�c�h�h��'�/B�&C�&C�D�D������c�l�&8�&8���&@�&@��&D�E�E�E��%�c�h�h��'�C�-�/H�&I�&I�J�J�������)�)�(�3�3���+�+�B�F�3�3�B�7�	9�	9�	9����8�Y�/�0�0���%�f�-�-������C���-�-�.�.�.�����B������)�)�(�3�3�R�X�X�b�f�5E�5E�b�5I�J�J�J�����b�h�h�r�v�&6�&6�r�&:�;�;�;��%�c�h�h���/@�&A�&A�B�B�������)�)�(�3�3���+�+�B�F�3�3�B�7�	9�	9�	9��%�c�h�h���#�
�/F�&G�&G�H�H�������)�)�(�3�3���+�+�B�F�3�3�B�7�	9�	9�	9��%�c�h�h���#�
�/F�&G�&G�H�H������c�l�&8�&8���&@�&@��&D�E�E�E�E�Er c�
�ttjz}|tztjz}|tzdztjz}|tdf|t
ztzttf|tdf|tdf|t
ztzttf|t
zdztzttf|t
ztzttfi}tj�	d��}|�
||��|tdf|t
zdztzttf|tdf|t
zdztzttf|t
ztzttfi}tj�	d��}|�
||��tj�d|��tj�d|��tjt��}|�dt!|j����|j\}	}
|�d|	�tj��d��|�d|
�tj��d��tj|�tjd	��dd
���}|�dt!|j����t)|j��d�dtjz��d}|�|dd
�|��tjd	�tt
f����}|�d|j�tj��d��tjd	�tt
dzf����}|�d|j�tj��d��d	�ttf��}tj|��}|�dt!|j����|j\}	}
|�d|	�tj��d��|�d|
�tj��d��tjd	�|t
f����}|�d|j�tj��d
��tjd	�|t
dzf����}|�d|j�tj��d
��tjd	�|t
dzf����}|�d|j�tj��d
��dS)Nr�r�r�r�z	path2.ziprr�r�r"rKr�r�r�)r�r$r%r�rr�r�r�r&r�rnr2rqrrsrur�r�r�r#r�rPr�)
r:r�r�r�r�r�r�r�rxr�r�r�r�s
             r�testNamespacePackagez2UncompressedZipImportTestCase.testNamespacePackageos����R�V�#���Y�&���/���h�&��,�r�v�5���C��9��G�#�g�-��X���S�"�I��S�"�I��W�$�w�.��h���W�$�s�*�W�4�s�H�o��W�$�w�.��h��
A���w���{�+�+�����V�T�"�"�"��C��9��G�#�c�)�G�3�c�8�_��S�"�I��W�$�s�*�W�4�s�H�o��W�$�w�.��h��	A��
�w���{�+�+�����V�T�"�"�"�	�����4� � � ������4� � � ��%�h�/�/��
	
����C���-�-�.�.�.�����B�����b�h�h�r�v�&6�&6�r�&:�;�;�;�����b�h�h�r�v�&6�&6�r�&:�;�;�;��%�h�&6�&6�r�v�s�&C�&C�C�R�C�&H�I�I������C���-�-�.�.�.��S�\�"�"�1�%�+�+�K�"�&�,@�A�A�!�D������#�2�#���.�.�.��%�c�h�h��'�/B�&C�&C�D�D������c�l�&8�&8���&@�&@��&D�E�E�E��%�c�h�h��'�C�-�/H�&I�&I�J�J������c�l�&8�&8���&@�&@��&D�E�E�E����8�Y�/�0�0���%�f�-�-������C���-�-�.�.�.�����B�����b�h�h�r�v�&6�&6�r�&:�;�;�;�����b�h�h�r�v�&6�&6�r�&:�;�;�;��%�c�h�h���/@�&A�&A�B�B������c�l�&8�&8���&@�&@��&D�E�E�E��%�c�h�h���#�
�/F�&G�&G�H�H������c�l�&8�&8���&@�&@��&D�E�E�E��%�c�h�h���#�
�/F�&G�&G�H�H������c�l�&8�&8���&@�&@��&D�E�E�E�E�Er c	��ttjz}|tztjz}|dztzt
tf|dztzt
tf|tztzt
tfdtzt
tfi}|�tj
t��ttd��5}|�
��D]S\}\}}t|tj|����}|j|_d|_|�||���T	ddd��n#1swxYwYt+jt��}	|�|	jt��|�|	�t����t7j��5t7jdt<��|	�d��}
|� |
��|�!|
t*j��|�"|
�d����|
�#d��}|�|
�$d��|j%��|	�#t��}|�|	�$t��|j%��ddd��n#1swxYwY|	�&d��}
|� |
��|�!|
j't*j��|�"|
j'�d����tPj)�*|
��}|
j'�+|��|�|
j'�$d��|j%��|	�&t��}
tPj)�*|
��}|
j'�+|��|�|	�$t��|j%��tQj,t��j-d}tj.�/tt��}|�||��|�"|	�|dz����|�|	�|tz����|�"|	�|tz����|tz}ta|��}tQj,|��}|�|tbj2v��|�3|	�4t����|�3|	�4|����|�|	�$|��|j%��|j5j'}|�3|�4|����|�|�$|��|j%��t+jttjztz��}|�|jt��|�|j6ttjz��dS)Nr��spamr]�spam�ignorer)7r�r$r%r�r�rr�r�rMrrarrrrOrrbrcrdrer^rfrH�zipimporterru�archive�
assertTrue�
is_package�warnings�catch_warnings�simplefilter�DeprecationWarning�find_module�assertIsNotNoner��assertFalse�load_module�get_filenamer��	find_spec�loaderrr�module_from_spec�exec_modulersr�r&rPr'r2rw�assertIsNone�
get_source�__spec__�prefix)r:r�r�rVrkrXrrrl�zi�find_mod�load_modrx�spec�exec_mod�existing_pack_path�expected_path_path�mod_path�mod_namer�zi2s                     r�testZipImporterMethodsz4UncompressedZipImportTestCase.testZipImporterMethods�s���R�V�#���Y�&���/���:�%��/�#�x���J�&��0�3��/��G�#�g�-��X���'�!�C��?�4��
	
���	�(�(�3�3�3�
�X�s�
#�
#�	(�q�',�{�{�}�}�
(�
(�#��m�u�d���d�n�U�&;�&;�<�<��&*�&6��#� '��
��
�
�5�$�'�'�'�'�	
(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(��
"�8�
,�
,�������X�.�.�.�����
�
�h�/�/�0�0�0��
$�
&�
&�
	F�
	F��!�(�,>�?�?�?��~�~�f�-�-�H�� � ��*�*�*��!�!�(�I�,A�B�B�B����X�0�0��8�8�9�9�9��+�+�F�3�3�H����X�2�2�6�:�:�H�<M�N�N�N��.�.��*�*�C����R�_�_�X�6�6���E�E�E�
	F�
	F�
	F�
	F�
	F�
	F�
	F�
	F�
	F�
	F�
	F����
	F�
	F�
	F�
	F��|�|�F�#�#�����T�"�"�"����d�k�9�+@�A�A�A������/�/��7�7�8�8�8��>�2�2�4�8�8�������)�)�)������1�1�&�9�9�8�;L�M�M�M��|�|�H�%�%���n�-�-�d�3�3�������$�$�$��������2�2�C�L�A�A�A�&�4�X�>�>�G��J���W�\�\�(�H�=�=�����+�-?�@�@�@�������w��';�<�<�=�=�=�����
�
�g�	�&9�:�:�;�;�;�������x�'�'9�:�:�;�;�;��g�%��-�h�7�7���%�h�/�/������C�K�/�0�0�0����"�-�-��1�1�2�2�2����"�-�-��1�1�2�2�2��������2�2�C�L�A�A�A���$�����&�+�+�H�5�5�6�6�6�����,�,�X�6�6���E�E�E��#�H�r�v�$5��$@�A�A�������h�/�/�/������X���%6�7�7�7�7�7s&�A)E�E�E�DK1�1K5�8K5c	��ttjz}|tztjz}|dztzt
tf|dztzt
tf|tztzt
tfdtzt
tfi}|�tj
t��ttd��5}|�
��D]S\}\}}t|tj|����}|j|_d|_|�||���T	ddd��n#1swxYwYt+jt��}	|�|	j���|�����|	���|�|	j���|�����dtzt
tfi}
|�|
��ttd��5}|
�
��D]S\}\}}t|tj|����}|j|_d|_|�||���T	ddd��n#1swxYwY|	���|�|	j���|�����|	�d��}|�|��|�|jt*j��tj t��|	���|�!|	j��|�"t*j#�$|	j%����|�"|	�d����dS)Nr�r�r]r��spam2�a�name_does_not_matter)&r�r$r%r�r�rr�r�rMrrarrrrOrrbrcrdrer^rfrHr�ru�_files�keys�invalidate_caches�updaterr�r�r�remover�rrIrgr�)r:r�r�rVrkrXrrrlr�newfilers            r�testInvalidateCachesz2UncompressedZipImportTestCase.testInvalidateCachess����R�V�#���Y�&���/���:�%��/�#�x���J�&��0�3��/��G�#�g�-��X���'�!�C��?�4��	
���	�(�(�3�3�3�
�X�s�
#�
#�	(�q�',�{�{�}�}�
(�
(�#��m�u�d���d�n�U�&;�&;�<�<��&*�&6��#� '��
��
�
�5�$�'�'�'�'�	
(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(��
"�8�
,�
,���������)�)�5�:�:�<�<�8�8�8�
�������������)�)�5�:�:�<�<�8�8�8��W�$�s�H�o�6��
���W����
�X�s�
#�
#�	(�q�'.�}�}���
(�
(�#��m�u�d���d�n�U�&;�&;�<�<��&*�&6��#� '��
��
�
�5�$�'�'�'�'�	
(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	�������������)�)�5�:�:�<�<�8�8�8��|�|�G�$�$�����T�"�"�"����d�k�9�+@�A�A�A�
�	�(����
�����������#�#�#����)�8�<�<�R�Z�H�H�I�I�I����"�,�,�'=�>�>�?�?�?�?�?s&�A)E�E�E�<A)J2�2J6�9J6c�
�ttjz}|tztjz}|dztzt
tf|tztzt
tfi}|�tj
t��ttd��5}|�
��D]S\}\}}t|tj|����}|j|_d|_|�||���T	ddd��n#1swxYwYt+jttjz|z��}	|�|	jt��|�|	j|��|�|	�t����t9j��5t9jdt>��|	� t��}
|�|	�!t��|
j"��ddd��n#1swxYwY|	�#t��}tHj%�&|��}
|j'�(|
��|�|j'�!t��|
j"��|�)|	�ttjzdz����|�)|	�ttjztz����ttjz|ztz}t+j|��}
t9j��5t9jdt>��|
�*t��}|�+|��|�,|t*j��|�)|
�t����|� t��}|�|�!t��|j"��ddd��n#1swxYwY|
�#t��}|�+|��|�,|j't*j��|�)|j'�t����tHj%�&|��}|j'�(|��|�|j'�!t��|j"��ttjztz}t[|��}tIj.|��}
|�|t^j0v��|�1|	�2t����|�1|	�2|����|�|	�!|��|
j"��|
j3}|�1|�2|����|�|�!|��|
j"��dS)Nr�r]seggsr�)4r�r$r%r�r�rr�r�rMrrarrrrOrrbrcrdrer^rfrHr�rur�rr�r�r�r�r�r�r�r�r�rrrrrrr�r�r�r�r'rsr2rwrr�
__loader__)r:r�r�rVrkrXrrrlrrxr�pkg_pathr�find_mod_dottedr
rrrs                   r�$testZipImporterMethodsInSubDirectoryzBUncompressedZipImportTestCase.testZipImporterMethodsInSubDirectory+s0���R�V�#���Y�&���/���J�&��0�3��/��G�#�g�-��X��@��	
���	�(�(�3�3�3�
�X�s�
#�
#�	(�q�',�{�{�}�}�
(�
(�#��m�u�d���d�n�U�&;�&;�<�<��&*�&6��#� '��
��
�
�5�$�'�'�'�'�	
(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(��
"�8�b�f�#4�w�#>�
?�
?�������X�.�.�.������G�,�,�,�����
�
�i�0�0�1�1�1�
�
$�
&�
&�	G�	G��!�(�,>�?�?�?��.�.��+�+�C����R�_�_�Y�7�7���F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�
�|�|�I�&�&���n�-�-�d�3�3�������$�$�$������1�1�)�<�<�c�l�K�K�K�������y�2�6�'9�J�'F�G�G�H�H�H�������y�2�6�'9�G�'C�D�D�E�E�E��b�f�$�w�.��:���#�H�-�-��
�
$�
&�
&�	J�	J��!�(�,>�?�?�?�!�o�o�g�6�6�O�� � ��1�1�1��!�!�/�9�3H�I�I�I����S�^�^�G�4�4�5�5�5�&�2�2�7�;�;�H�����,�,�W�5�5�x�7H�
J�
J�
J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J��}�}�W�%�%�����T�"�"�"����d�k�9�+@�A�A�A������/�/��8�8�9�9�9��>�2�2�4�8�8�������)�)�)�����K�$�$�W�-�-�x�/@�	B�	B�	B��r�v�%��/��-�h�7�7���%�h�/�/������C�K�/�0�0�0����"�-�-�	�2�2�3�3�3����"�-�-��1�1�2�2�2��������2�2�C�L�A�A�A�������&�+�+�H�5�5�6�6�6�����,�,�X�6�6���E�E�E�E�Es9�A)D�D�D�A(H8�8H<�?H<�C$R�R�
Rc��|�tjt��t	td��5}|j|_d}t
d�td��D����}|�||��ddd��n#1swxYwYtj
t��}|�||�|����|�
dt|����dS)Nr]ztestdata.datc3�K�|]}|V��dSr1rB)�.0�xs  r�	<genexpr>z<UncompressedZipImportTestCase.testGetData.<locals>.<genexpr>ts"����/�/�q��/�/�/�/�/�/r �zzipimporter object)rMrrarrrrd�bytes�rangerfrHr�ru�get_datar��repr)r:rkrXrrs     r�testGetDataz)UncompressedZipImportTestCase.testGetDataos�����	�(�(�3�3�3�
�X�s�
#�
#�	#�q� �,�A�M�!�D��/�/�E�#�J�J�/�/�/�/�/�D�
�J�J�t�T�"�"�"�		#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#��
"�8�
,�
,������r�{�{�4�0�0�1�1�1��
�
�*�D��H�H�5�5�5�5�5s�AB�B�Bc���d}tt|dd��tt|����}tt
zt|fdtdfi}|�t
|t��dS)Nz�if 1:  # indent hack
        def get_file():
            return __file__
        if __loader__.get_data("some.data") != b"some data":
            raise AssertionError("bad data")
r
rz	some.dataz	some data)rr�rr�r�r�rz)r:�srcrrVs    r�testImporterAttrz.UncompressedZipImportTestCase.testImporterAttr{si��2��
�w�s�G�V�4�4�c�3�s�8�8�D�D���7�"�S�#�J��s�K�0�2�����G�U�G�,�,�,�,�,r c�|�d}tdzt|fi}|�|��tj�dt��tjt��}|�	|�
d��d��	|�	|�
d��d��dS)Nz[if 1:  # indent hack
        def test(val):
            assert(val)
            return val
r,rr�)
r�rrnr2r&rqrrrrsru�test�assertRaises�AssertionError)r:r/rVrxs    r�testDefaultOptimizationLevelz:UncompressedZipImportTestCase.testDefaultOptimizationLevel�s������5��3��*�-�����U���������8�$�$�$��%�g�.�.��������!���a�(�(�(�	-�
���S�X�X�a�[�[�!�,�,�,�,�,r c�r�tdzttfi}|�d|td���dS)Nr,s6Some StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome Stuff)r_r�r�s  r�testImport_WithStuffz2UncompressedZipImportTestCase.testImport_WithStuff�sD���5��3��/�2�����E�5�'�*�	�	,�	,�	,�	,�	,r c�`�|�tj|��t��dSr1)ru�inspect�	getsourcer�)r:�modules  r�assertModuleSourcez0UncompressedZipImportTestCase.assertModuleSource�s)������*�6�2�2�H�=�=�=�=�=r c�|�tdzttfi}|�d|t|j���dS�Nr,r�)r�rr�rzr<r�s  r�
testGetSourcez+UncompressedZipImportTestCase.testGetSource�s7���5��3��/�2�����E�5�'��0G��H�H�H�H�Hr c�*�tttdd��tt	t����}t
dzttft
tzt|fi}|�t|t
|j���dS)Nr
rr,r�)	rr�r�rr�r�r�rzr<)r:rrVs   r�testGetCompiledSourcez3UncompressedZipImportTestCase.testGetCompiledSource�sj���w�x��&�9�9�3��H�
�
�N�N���5��3��/��7�"�S�#�J�0�����G�U�G�$�2I��J�J�J�J�Jr c��tdzttfdtdfi}|�d|t|���dS)Nr,�xyz.txtz>>> log.append(True)
r�r�)r:�callbackrVs   r�
runDoctestz(UncompressedZipImportTestCase.runDoctest�sA���5��3��/��S�":�;�=�����E�5�'���9�9�9�9�9r c���g}tjdc}t_	tjd|dt�����|t_n#|t_wxYw|�|dg��dS�NrCT)�package�module_relative�globs)�doctest�master�testfile�localsru)r:r;�log�
old_masters    r�
doDoctestFilez+UncompressedZipImportTestCase.doDoctestFile�s�����%,�^�T�"�
�G�N�	(����6�4��h�h�
�
�
�
�
(�G�N�N��Z�G�N�'�'�'�'�����d�V�$�$�$�$�$s�$A�Ac�:�|�|j��dSr1)rErQr9s r�testDoctestFilez-UncompressedZipImportTestCase.testDoctestFile�s������*�+�+�+�+�+r c��g}tjd|dt��������|�|dg��dSrG)rK�DocFileTestrN�runru)r:r;rOs   r�doDoctestSuitez,UncompressedZipImportTestCase.doDoctestSuite�sU�������v�t��(�(�	
�	
�	
��#�%�%�%�����d�V�$�$�$�$�$r c�:�|�|j��dSr1)rErWr9s r�testDoctestSuitez.UncompressedZipImportTestCase.testDoctestSuite�s������+�,�,�,�,�,r c��	|���td���#t$�r}|jj}t|d��d\}}}}|�|t�����t|j
d��d\}}}}|�|t�����tj��}t|d|��|�|����t#j��rdnd����Yd}~dSd}~wwxYw)NzThis ought to be impossibler�rz$    def do_raise(): raise TypeError
z$                    ^^^^^^^^^^^^^^^
)�do_raiser4�	Exception�
__traceback__�tb_nextr
ru�	raise_src�stripr�tb_frame�io�StringIOrr��getvalue�endswithr�has_no_debug_ranges)	r:r;�e�tbrm�lno�n�line�ss	         r�doTracebackz)UncompressedZipImportTestCase.doTraceback�sW��	@��O�O����$!�!>�?�?�?��#�	�	�	���(�B�%�b�!�,�,�Q�/�L�A�c�!�D����T�9�?�?�#4�#4�5�5�5�(���a�8�8��;�L�A�c�!�D����T�9�?�?�#4�#4�5�5�5���
�
�A��R��A�����O�O�A�J�J�L�L�1�1��1�3�3�8���7���
�
�
�
�
�
�
�
�
�����	���s�%�E�DE
�
Ec�|�tdzttfi}|�d|t|j���dSr>)r�rr_rzrmr�s  r�
testTracebackz+UncompressedZipImportTestCase.testTraceback�s8���5��3�	�"2�3�����D�%��t�/?��@�@�@�@�@r Nzneed an unencodable filenamec�*�tjdz}|�tj|��t	|d��5}ttdztjt����}|j
|_|�|t��ddd��n#1swxYwYtj|���t��}t"j�|��}|j�|��dS�Nz.zipr]r,)r�TESTFN_UNENCODABLErMrarrr�rbrcrrdrerfr�rHr�rrrrrr)r:�filenamerkrlrrxs      r�testUnencodablez-UncompressedZipImportTestCase.testUnencodable�s���/�&�8�����	�(�(�3�3�3�
�X�s�
#�
#�	(�q��G�e�O�T�^�C�-@�-@�A�A�E�"&�"2�E��
�J�J�u�h�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(��$�X�.�.�8�8��A�A���n�-�-�d�3�3�������$�$�$�$�$s�AB#�#B'�*B'c���tjdz}|�tj|��t	|d��5}ttdztjt����}|j
|_|�|t��ddd��n#1swxYwYtj|��|�t"��5tjt%j|����ddd��n#1swxYwY|�t"��5tjt)t%j|������ddd��n#1swxYwY|�t"��5tjt+t%j|������ddd��dS#1swxYwYdSrq)r�TESTFNrMrarrr�rbrcrrdrerfr�rHr�r3�	TypeErrorr$�fsencoder��
memoryview)r:rsrkrls    r�
testBytesPathz+UncompressedZipImportTestCase.testBytesPath�s����#�f�,�����	�(�(�3�3�3�
�X�s�
#�
#�	(�q��G�e�O�T�^�C�-@�-@�A�A�E�"&�"2�E��
�J�J�u�h�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
	��h�'�'�'�
�
�
�y�
)�
)�	9�	9��!�"�+�h�"7�"7�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�
�
�
�y�
)�
)�	D�	D��!�)�B�K��,A�,A�"B�"B�C�C�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�
�
�
�y�
)�
)�	E�	E��!�*�R�[��-B�-B�"C�"C�D�D�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�	E�	EsI�AB#�#B'�*B'�'D�D�D�44E4�4E8�;E8�4G�G�!Gc�r�tdzttfi}|�d|td���dS)Nr,scomment�r^r�r�s  r�testCommentz)UncompressedZipImportTestCase.testComments4���5��3��/�2�����E�5�'�:��>�>�>�>�>r c�t�tdzttfi}|�d|tdd���dS)Nr,s@cruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftshi)r_r^r�r�s  r�testBeginningCruftAndCommentz:UncompressedZipImportTestCase.testBeginningCruftAndComments6���5��3��/�2�����E�5�'����N�N�N�N�Nr c�x�tdzttfi}|�d|tddz���dS)Nr,�ci��r|r�r�s  r�testLargestPossibleCommentz8UncompressedZipImportTestCase.testLargestPossibleComments9���5��3��/�2�����E�5�'�4�=�3I��J�J�J�J�Jr )7r?r@rArrdr;r�r[rrrnrzr�r�r�r�r��unittest�mock�patchr�r�r�r�r�r�r�r�r�r�r�rrr"r-r0r5r7r<r?rArErQrSrWrYrmro�skipIfrrrrtrzr}rr�rBr rrDrDOs,�������K�,�,�,�'/�#�#�#�#�"&.�����0;�;�;� @�@�@�B+�+�+�-�-�-�-�-�-�
6�6�6��]���5�x�@�@�6�6�A�@�6�*�*�*�+�+�+�
=�
=�
=�+�+�+�+�+�+�7�7�7�B�B�B�	B�	B�	B�KF�KF�KF�ZGF�GF�GF�RG8�G8�G8�R(@�(@�(@�TBF�BF�BF�H
6�
6�
6�	-�	-�	-�-�-�-� ,�,�,�>�>�>�I�I�I�K�K�K�:�:�:�

%�
%�
%�,�,�,�%�%�%�-�-�-�@�@�@�,A�A�A��X�_�Y�1�T�9�3�5�5�	%�	%�5�5�	%�E�E�E� ?�?�?�O�O�O�K�K�K�K�Kr rDc��eZdZeZdS)�CompressedZipImportTestCaseN)r?r@rAr	rdrBr rr�r�
s�������K�K�Kr r�c�|�eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	j
ejd��d���Z
d	�Zd
�ZdS)�BadFileZipImportTestCasec�\�|�tjtj|��dSr1)r3rHr�r�)r:rss  r�assertZipFailurez)BadFileZipImportTestCase.assertZipFailures1�����)�2�#�/��	;�	;�	;�	;�	;r c�0�|�d��dS)N�AdfjdkFJKDFJjdklfjs�r�r9s r�
testNoFilez#BadFileZipImportTestCase.testNoFiles�����3�4�4�4�4�4r c�0�|�d��dSr�r�r9s r�testEmptyFilenamez*BadFileZipImportTestCase.testEmptyFilenames�����b�!�!�!�!�!r c	�@�|�ttjd��|�ttjtd���|�ttjtt
jt������dS)N)�kwd)r3rwrHr�r�r�r$rxr9s r�testBadArgsz$BadFileZipImportTestCase.testBadArgss{�����)�Y�%:�D�A�A�A����)�Y�%:�G���N�N�N����)�Y�%:��r�{�7�3�3�4�4�	6�	6�	6�	6�	6r c�6�|�ddz��dS)N�Ai�r�r9s r�testFilenameTooLongz,BadFileZipImportTestCase.testFilenameTooLong#s �����c�E�k�*�*�*�*�*r c��tjt��tjt��|�t��dSr1)rrar��create_empty_filer�r9s r�
testEmptyFilez&BadFileZipImportTestCase.testEmptyFile&s>�����!�!�!��#�G�,�,�,����g�&�&�&�&�&r zmode 000 not supported.c�"�tjt��tjttjd��}	tj|��|�tj	��5}tj
t��ddd��n#1swxYwYtjtd��tjt��dS#tjtd��tjt��wxYw)Nri�)rrar�r$rT�O_CREAT�closer3rHr�r��chmod)r:�fd�cms   r�testFileUnreadablez+BadFileZipImportTestCase.testFileUnreadable+s�����!�!�!�
�W�W�b�j�#�
.�
.��		&��H�R�L�L�L��"�"�9�#;�<�<�
/���%�g�.�.�.�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/�

�H�W�e�$�$�$���W�%�%�%�%�%��
�H�W�e�$�$�$���W�%�%�%�%���s0�3C�3B�
C�B�C� B�!C�5Dc���tjt��ttd��}|�d��|���|�t��dS)N�w+�aaaaaaaaaaaaaaaaaaaaaa)rrar�rTrUr�r�)r:rZs  r�testNotZipFilez'BadFileZipImportTestCase.testNotZipFile:s[�����!�!�!�
�'�4�
 �
 ��
�������
���
�
�
����g�&�&�&�&�&r c��tjt��ttd��}|�tjdd����|�d��|���tj	t��}	tj��5tjdt��|�t|jd��ddd��n#1swxYwY|�t|jd��|�t|jd��|�t|jd��|�t|jd��|�t|jd��|�t|jd��|�t|jd��tj}|�|�d����|�|�d����tj��5tjdt��|�||jd��ddd��n#1swxYwY|�||jd��|�t4|jd��|�||jd��|�||jd��tj���dS#tj���wxYw)Nr�z=IiPK�aaaaaaaaaaaaaaaaaar��abc)rrar�rTrUrrr�rHr�r�r�r�r�r3rwr�r�rrr��get_coder+rr�r�OSErrorrIr6)r:rZrk�errors    r�_testBogusZipFilez*BadFileZipImportTestCase._testBogusZipFileBsI�����!�!�!�
�'�4�
 �
 ��
�����T�:�.�.�/�/�/�
�������
���
�
�
��!�'�*�*��	3��(�*�*�
B�
B��%�h�0B�C�C�C��!�!�)�Q�]�D�A�A�A�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B�
���i����=�=�=����i���d�;�;�;����i����=�=�=����i���t�<�<�<����i���T�:�:�:����i���T�:�:�:����i���t�<�<�<��,�E����a�m�m�E�2�2�3�3�3����a�k�k�%�0�0�1�1�1��(�*�*�
?�
?��%�h�0B�C�C�C��!�!�%����>�>�>�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?����
?�
?�
?�
?�
���e�Q�Z��7�7�7����g�q�z�5�9�9�9����e�Q�\�5�9�9�9����e�Q�\�5�9�9�9��*�0�0�2�2�2�2�2��I�*�0�0�2�2�2�2���sV�L9�-<C5�)L9�5C9�9L9�<C9�=EL9�7J�
L9�J�L9� J�!A8L9�9 MN)r?r@rAr�r�r�r�r�r�r�r�r�is_wasir�r�r�rBr rr�r�s�������;�;�;�5�5�5�"�"�"�6�6�6�+�+�+�'�'�'�
�X�_�W�_�&?�@�@�&�&�A�@�&�'�'�'� 3� 3� 3� 3� 3r r�c�8�tjt��dSr1)rrar�rBr r�tearDownModuler�es��
��W�����r �__main__)<r2r$rr�importlib.utilrrbr��
unittest.mockr�r2r�test.supportrr�zipfilerrrr	rHrFrKr9rb�	tracebackr
rrr|r�r�r�r�r_rr'rr�r�r�r�r�r&r�r�rrr�cache_from_source�pyc_filer��TestCaser/rD�
requires_zlibr�r�r�r?�mainrBr r�<module>r�s��
�
�
�
�	�	�	�	�������������
�
�
�
�����������������������&�&�&�&�&�&�"�"�"�"�"�"�>�>�>�>�>�>�>�>�>�>�>�>�����������������	�	�	�	�9�9�9�9�9�9�9�9�9�9���K�K�K�K�������D�D�D��������'�(�G�V�
,�
,��/�	����%�%�%��d�i�k�k���8�G�S�#�#�h�-�-�0�0�������	�
�7�?�?�;�'�'��
�7�?�?�?�+�+���>�+�+�G�e�O�<�<��
��<�<�<�<�<�h�/�<�<�<�"{
K�{
K�{
K�{
K�{
K�$;�{
K�{
K�{
K�|����������"?������P3�P3�P3�P3�P3�x�0�P3�P3�P3�f����z����H�M�O�O�O�O�O��s�&A+�+A5�4A5