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

�Ke�?����	ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddlm
Z
ddlmZGd�dej
��ZGd�dej
��Zed	krej��dSdS)
�N)�
requires_zlib)�	os_helper)�patchc�f�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
��d���Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zejejdkd��e j!d�����Z"ejejdkd��d���Z#dS)�
ZipAppTestc��tj��}|�|j��t	j|j��|_dS�N��tempfile�TemporaryDirectory�
addCleanup�cleanup�pathlib�Path�name�tmpdir��selfrs  �:/usr/local/apps/python3/lib/python3.11/test/test_zipapp.py�setUpzZipAppTest.setUp�;���,�.�.�������'�'�'��l�6�;�/�/�����c�0�|jdz}|���|dz���|jdz}tjt|��t|����|�|�����dS�N�source�__main__.py�
source.pyz�r�mkdir�touch�zipapp�create_archive�str�
assertTrue�is_file�rr�targets   r�test_create_archivezZipAppTest.test_create_archives����x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�7�7�7�������(�(�)�)�)�)�)rc��|jdz}|���|dz���|jdz}tj||��|�|�����dSr)rrr r!r"r$r%r&s   r� test_create_archive_with_pathlibz+ZipAppTest.test_create_archive_with_pathlib"ss����x�'��������	�-�	�&�&�(�(�(���|�+����f�f�-�-�-�������(�(�)�)�)�)�)rc��|jdz}|���|dz���|dz���|dz���|dzdz���tj��}tjt|��|��|�d��tj
|d��5}|�d|�����|�d	|�����ddd��dS#1swxYwYdS)
Nrr�foo�barz__init__.pyr�rzfoo/zbar/)
rrr �io�BytesIOr!r"r#�seek�zipfile�ZipFile�assertIn�namelist�rrr'�zs    r� test_create_archive_with_subdirsz+ZipAppTest.test_create_archive_with_subdirs+sW����x�'��������	�-�	�&�&�(�(�(�	�%���� � � �	�%���� � � �	�%��-�	'�.�.�0�0�0��������c�&�k�k�6�2�2�2����A����
�_�V�S�
)�
)�	0�Q��M�M�&�!�*�*�,�,�/�/�/��M�M�&�!�*�*�,�,�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s�AD;�;D?�D?c�`�d�}|jdz}|���|dz���|dz���|dz���|jdz}tj|||���tj|d��5}|�d|�����|�d|�����|�	d|�����ddd��dS#1swxYwYdS)	Nc��|jdkS)Nz.pyc)�suffix��paths r�skip_pyc_fileszBZipAppTest.test_create_archive_with_filter.<locals>.skip_pyc_files=s���;�&�(�(rrr�test.pyztest.pycr��filterr.)
rrr r!r"r2r3r4r5�assertNotIn)rr>rr'r7s     r�test_create_archive_with_filterz*ZipAppTest.test_create_archive_with_filter:s\��	)�	)�	)���x�'��������	�-�	�&�&�(�(�(�	�)�	�"�"�$�$�$�	�*�	�#�#�%�%�%���|�+����f�f�^�D�D�D�D�
�_�V�S�
)�
)�	7�Q��M�M�-������6�6�6��M�M�)�Q�Z�Z�\�\�2�2�2����Z������6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s�A9D#�#D'�*D'c��d�}|jdz}|���|dz���|dz���|dz���|dzdz���|jdz}tj|||���tj|d	��5}|�t|�	����d
��|�
d|�	����|�
d|�	����ddd��dS#1swxYwYdS)Nc�$�|jddkS)Nr�dummy)�partsr<s r�skip_dummy_dirzIZipAppTest.test_create_archive_filter_exclude_dir.<locals>.skip_dummy_dirPs���:�a�=�G�+�+rrrr?rFztest2.pyrr@r.�)rrr r!r"r2r3�assertEqual�lenr5r4)rrHrr'r7s     r�&test_create_archive_filter_exclude_dirz1ZipAppTest.test_create_archive_filter_exclude_dirLs���	,�	,�	,���x�'��������	�-�	�&�&�(�(�(�	�)�	�"�"�$�$�$�	�'�	� � �"�"�"�	�'�	�J�	&�-�-�/�/�/���|�+����f�f�^�D�D�D�D�
�_�V�S�
)�
)�	3�Q����S������.�.��2�2�2��M�M�-������6�6�6��M�M�)�Q�Z�Z�\�\�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s�7BE
�
E�Ec��|jdz}|���|dz���tjt|����|jdz}|�|�����dSrr)rr�expected_targets   r�"test_create_archive_default_targetz-ZipAppTest.test_create_archive_default_target`sy����x�'��������	�-�	�&�&�(�(�(���c�&�k�k�*�*�*��+��4������/�/�1�1�2�2�2�2�2rc��|jdz}|���|dz���|dz���|jdz}tj||d���tj|d��5}dD]:}|�|�|��j	t
j
���;	ddd��dS#1swxYwYdS)	Nrrr?rT)�
compressedr.)rr?)rrr r!r"r2r3rJ�getinfo�
compress_type�ZIP_DEFLATED)rrr'r7rs     r�$test_create_archive_with_compressionz/ZipAppTest.test_create_archive_with_compressionis(����x�'��������	�-�	�&�&�(�(�(�	�)�	�"�"�$�$�$���|�+����f�f��>�>�>�>�
�_�V�S�
)�
)�	7�Q�2�
7�
7��� � ����4���!>�!(�!5�7�7�7�7�
7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s�>C�C�Cc�R�|jdz}|���|dz���|jdz}|�tj��5t	jt|��t|����ddd��dS#1swxYwYdS)Nr�foo.pyr�rrr �assertRaisesr!�ZipAppErrorr"r#r&s   r�test_no_mainzZipAppTest.test_no_mainxs�����x�'��������	�(�	�!�!�#�#�#���|�+��
�
�
�v�1�
2�
2�	<�	<��!�#�f�+�+�s�6�{�{�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s�0B�B �#B c�V�|jdz}|���|dz���|jdz}|�tj��5t	jt|��t|��d���ddd��dS#1swxYwYdS)Nrrr�
pkg.mod:fn��mainrXr&s   r�test_main_and_main_pyz ZipAppTest.test_main_and_main_py�s�����x�'��������	�-�	�&�&�(�(�(���|�+��
�
�
�v�1�
2�
2�	O�	O��!�#�f�+�+�s�6�{�{��N�N�N�N�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O�	O�	Os�2B�B"�%B"c��|jdz}|���|dz���|jdz}tjt|��t|��d���t
jt|��d��5}|�d|�	����|�d|�
d����ddd��dS#1swxYwYdS)	NrrWrr]r^r.rspkg.mod.fn())rrr r!r"r#r2r3r4r5�readr6s    r�test_main_writtenzZipAppTest.test_main_written�s*����x�'��������	�(�	�!�!�#�#�#���|�+����c�&�k�k�3�v�;�;�\�J�J�J�J�
�_�S��[�[�#�
.�
.�	B�!��M�M�-������6�6�6��M�M�/�1�6�6�-�+@�+@�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs�AC2�2C6�9C6c��|jdz}|���|dz���|dz���|jdz}tjt|��t|��d���t
jt|��d��5}|�d|�	���
d	����ddd��dS#1swxYwYdS)
NrrWzbar.pyrr]r^r.�r)rrr r!r"r#r2r3rJr5�countr6s    r�test_main_only_written_oncez&ZipAppTest.test_main_only_written_once�s5����x�'��������

�(�	�!�!�#�#�#�	�(�	�!�!�#�#�#���|�+����c�&�k�k�3�v�;�;�\�J�J�J�J�
�_�S��[�[�#�
.�
.�	C�!����Q��
�
��� 2� 2�=� A� A�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	C�	Cs�*<C3�3C7�:C7c	��|jdz}|���|jdz}gd�}|D]�}|�|���5|�tj��5t	jt|��t|��|���ddd��n#1swxYwYddd��n#1swxYwY��dS)Nrr)
�r,zfoo:z:barz12:barza.b.c.:dz.a:bza:b.za:.bza:silly namer^)rr�subTestrYr!rZr"r#)rrr'�problemsr_s     r�test_main_validationzZipAppTest.test_main_validation�ss����x�'����������|�+��
�
�
���	O�	O�D����4��(�(�
O�
O��&�&�v�'9�:�:�O�O��)�#�f�+�+�s�6�{�{��N�N�N�N�O�O�O�O�O�O�O�O�O�O�O����O�O�O�O�
O�
O�
O�
O�
O�
O�
O�
O�
O�
O�
O����
O�
O�
O�
O��	O�	Os6� B<�'2B%�B<�%B)�)B<�,B)�-B<�<C	�C	c��|jdz}|���|dz���|jdz}tjt|��t|����|�d��5}|�|�d��d��ddd��dS#1swxYwYdS)Nrrr�rbrI�#!)	rrr r!r"r#�open�assertNotEqualrb�rrr'�fs    r�test_default_no_shebangz"ZipAppTest.test_default_no_shebang�s�����x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�7�7�7�
�[�[��
�
�	2�!�������q�	�	�5�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s�*B;�;B?�B?c���|jdz}|���|dz���|jdz}tjt|��t|��d���|�d��5}|�|�d��d��|�d	|�	����ddd��dS#1swxYwYdS)
Nrrr�python��interpreterrnrIrospython
)
rrr r!r"r#rprJrb�readlinerrs    r�test_custom_interpreterz"ZipAppTest.test_custom_interpreter�s����x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�H�M�M�M�M�
�[�[��
�
�	8�!����Q�V�V�A�Y�Y��.�.�.����[�!�*�*�,�,�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s�AC%�%C)�,C)c�R�|jdz}|���|dz���tj��}tjt|��|d���|�|�	���
d����dS)Nrrrvrws	#!python
)rrr r/r0r!r"r#r$�getvalue�
startswithr&s   r�test_pack_to_fileobjzZipAppTest.test_pack_to_fileobj�s�����x�'��������	�-�	�&�&�(�(�(��������c�&�k�k�6�x�H�H�H�H�������)�)�4�4�]�C�C�D�D�D�D�Drc�P�|jdz}|���|dz���|jdz}tjt|��t|��d���|�tjt|����d��dS�Nrrrrvrw�rrr r!r"r#rJ�get_interpreterr&s   r�test_read_shebangzZipAppTest.test_read_shebang�s�����x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�H�M�M�M�M�����/��F���<�<�h�G�G�G�G�Grc�L�|jdz}|���|dz���|jdz}tjt|��t|����|�tjt|����d��dSrr�r&s   r�test_read_missing_shebangz$ZipAppTest.test_read_missing_shebang�s�����x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�7�7�7�����/��F���<�<�d�C�C�C�C�Crc���|jdz}|���|dz���|jdz}tjt|��t|��d���|jdz}tjt|��t|��d���|�tjt|����d��dS)Nrrrrvrw�changed.pyz�	python2.7r��rrr'�
new_targets    r�test_modify_shebangzZipAppTest.test_modify_shebang�s�����x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�H�M�M�M�M��[�=�0�
���c�&�k�k�3�z�?�?��T�T�T�T�����/��J���@�@�+�N�N�N�N�Nrc���|jdz}|���|dz���|jdz}tjt|��t|��d���t
j��}tjt|��|d���|�|�	���
d����dS)Nrrrrvrwr��#!python2.7
)rrr r!r"r#r/r0r$r|r}r�s    r�test_write_shebang_to_fileobjz(ZipAppTest.test_write_shebang_to_fileobj�s�����x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�H�M�M�M�M��Z�\�\�
���c�&�k�k�:�;�O�O�O�O����
�+�+�-�-�8�8�9I�J�J�K�K�K�K�Krc�D�|jdz}|���|dz���|jdz}|jdz}tj||d���tj||d���|�tj|��d��dS)Nrrztarget1.pyzztarget2.pyzrvrwr�)rrr r!r"rJr�)rr�target1�target2s    r�test_read_from_pathobjz!ZipAppTest.test_read_from_pathobj�s�����x�'��������	�-�	�&�&�(�(�(��+�
�-���+�
�-����f�g�8�D�D�D�D���g�w�K�H�H�H�H�����/��8�8�+�F�F�F�F�Frc���|jdz}|���|dz���|jdz}tj��}tjt|��|d���tj��}|�d��tj||d���|�	|�
���d����dS)	Nrrrrvrwrr�r�)rrr r/r0r!r"r#r1r$r|r})rrr'�temp_archiver�s     r�test_read_from_fileobjz!ZipAppTest.test_read_from_fileobjs�����x�'��������	�-�	�&�&�(�(�(���|�+���z�|�|����c�&�k�k�<�X�N�N�N�N��Z�\�\�
����!������l�J�K�P�P�P�P����
�+�+�-�-�8�8�9I�J�J�K�K�K�K�Krc���|jdz}|���|dz���|jdz}tjt|��t|��d���|jdz}tjt|��t|��d���|�tjt|����d��dS)Nrrrrvrwr�r�r�s    r�test_remove_shebangzZipAppTest.test_remove_shebangs�����x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�H�M�M�M�M��[�=�0�
���c�&�k�k�3�z�?�?��M�M�M�M�����/��J���@�@�$�G�G�G�G�Grc�N�|jdz}|���|dz���tj��}tjt|��|d���tj��}|�d��tj||d���|�d��tj
|d��5}|�t|�
����dh��ddd��dS#1swxYwYdS)Nrrrvrwrr.)rrr r/r0r!r"r#r1r2r3rJ�setr5)rrr'r�r7s     r�test_content_of_copied_archivez)ZipAppTest.test_content_of_copied_archive sM����x�'��������	�-�	�&�&�(�(�(��������c�&�k�k�6�x�H�H�H�H��Z�\�\�
����A������f�j�d�C�C�C�C��������
�_�Z��
-�
-�	A�����S������.�.���@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	A�	As�7D�D�!D�win32z*Windows does not support an executable bitc�X�|jdz}|���|dz���|jdz}tjt|��t|��d���|�|���jtj	z��dSr�)
rrr r!r"r#r$�stat�st_mode�S_IEXECr&s   r�test_shebang_is_executablez%ZipAppTest.test_shebang_is_executable/s���
��x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�H�M�M�M�M�������
�
�-���<�=�=�=�=�=rc�X�|jdz}|���|dz���|jdz}tjt|��t|��d���|�|���jtj	z��dS)Nrrrrw)
rrr r!r"r#�assertFalser�r�r�r&s   r�!test_no_shebang_is_not_executablez,ZipAppTest.test_no_shebang_is_not_executable;s�����x�'��������	�-�	�&�&�(�(�(���|�+����c�&�k�k�3�v�;�;�D�I�I�I�I���������.���=�>�>�>�>�>rN)$�__name__�
__module__�__qualname__rr(r*r8rCrLrOrrUr[r`rcrgrlrtrzr~r�r�r�r�r�r�r�r��unittest�skipIf�sys�platformr�skip_unless_working_chmodr�r��rrrrs>������+�0�0�0�
*�*�*�*�*�*�
0�
0�
0�7�7�7�$3�3�3�(3�3�3��]�_�_�7�7��_�7�<�<�<�O�O�O�	B�	B�	B�C�C�C�"O�O�O�2�2�2�
8�
8�
8�E�E�E�H�H�H�D�D�D�	O�	O�	O�
L�
L�
L�
G�
G�
G�L�L�L�	H�	H�	H�A�A�A��X�_�S�\�W�,�A�C�C��(�>�>�)�(�C�C�>��X�_�S�\�W�,�A�C�C�?�?�C�C�?�?�?rrc�p�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Ze	de
j���d	���Zd
�Z
dS)�ZipAppCmdlineTestc��tj��}|�|j��t	j|j��|_dSr	r
rs  rrzZipAppCmdlineTest.setUpKrrc��|jdz}|���|dz���|jdz}tj||��|Sr)rrr r!r"r&s   r�make_archivezZipAppCmdlineTest.make_archivePsV����x�'��������	�-�	�&�&�(�(�(���|�+����f�f�-�-�-��
rc�0�|jdz}|���|dz���t|��g}t	j|��|�d��}|�|�����dS)Nrrz.pyz)	rrr r#r!r_�with_suffixr$r%)rr�argsr's    r�test_cmdline_createz%ZipAppCmdlineTest.test_cmdline_createYs�����x�'��������	�-�	�&�&�(�(�(��F���}����D�����#�#�F�+�+��������(�(�)�)�)�)�)rc��|���}|jdz}t|��dt|��g}tj|��|�|�����dS�N�
target.pyz�-o)r�rr#r!r_r$r%)r�originalr'r�s    r�test_cmdline_copyz#ZipAppCmdlineTest.test_cmdline_copycsi���$�$�&�&����|�+���H�
�
�t�S��[�[�1����D����������(�(�)�)�)�)�)rc�J�|���}|jdz}t|��dt|��g}|�t��5}tj|��ddd��n#1swxYwY|�|jj	��dSr��
r�rr#rY�
SystemExitr!r_r$�	exception�code�rr�r'r��cms     r�test_cmdline_copy_inplacez+ZipAppCmdlineTest.test_cmdline_copy_inplaceks����$�$�&�&����|�+���H�
�
�t�S��]�]�3��
�
�
�z�
*�
*�	�b��K�����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�����)�*�*�*�*�*s�A9�9A=�A=c�N�|���}|jdz}t|��dt|��ddg}|�t��5}tj|��ddd��n#1swxYwY|�|jj	��dS)Nr�r�z-mzfoo:barr�r�s     r�test_cmdline_copy_change_mainz/ZipAppCmdlineTest.test_cmdline_copy_change_mainus����$�$�&�&����|�+���H�
�
�t�S��[�[�$�	�B��
�
�
�z�
*�
*�	�b��K�����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�����)�*�*�*�*�*s�A;�;A?�A?z
sys.stdout)�new_callablec�l�|���}t|��dg}|�t��5}t	j|��ddd��n#1swxYwY|�|jjd��|�|�	��d��dS)N�--inforzInterpreter: <none>
)
r�r#rYr�r!r_rJr�r�r|)r�mock_stdoutr'r�r�s     r�test_info_commandz#ZipAppCmdlineTest.test_info_commands����"�"�$�$���F���X�&��
�
�
�z�
*�
*�	�b��K�����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�����*�A�.�.�.�����-�-�/�/�1H�I�I�I�I�Is�A!�!A%�(A%c��|jdz}t|��dg}|�t��5}t	j|��ddd��n#1swxYwY|�|jj��dS)Nz	dummy.pyzr�)	rr#rYr�r!r_r$r�r�)rr'r�r�s    r�test_info_errorz!ZipAppCmdlineTest.test_info_error�s�����{�*���F���X�&��
�
�
�z�
*�
*�	�b��K�����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�����)�*�*�*�*�*s�A�A�AN)r�r�r�rr�r�r�r�r�rr/�StringIOr�r�r�rrr�r�Gs�������.�0�0�0�
���*�*�*�*�*�*�+�+�+�+�+�+��U�<�b�k�2�2�2�J�J�3�2�J�+�+�+�+�+rr��__main__)r/rr�r�rr�r!r2�test.supportrr�
unittest.mockr�TestCaserr�r�r_r�rr�<module>r�s��)�	�	�	�	���������
�
�
�
���������
�
�
�
�����&�&�&�&�&�&�"�"�"�"�"�"�������t?�t?�t?�t?�t?��"�t?�t?�t?�n	J+�J+�J+�J+�J+��)�J+�J+�J+�Z�z����H�M�O�O�O�O�O��r