Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_runpy.cpython-312.opt-1.pyc

�

'Μg����R�ddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlmZmZmZmZddlmZmZmZddlmZmZmZddlmZmZddl Z ddl m!Z!m"Z"m#Z#m$Z$dZ%ddddddd�Z&ee d	d
gejNddde(e&dd
d��d�Z)e)jUe&�Gd�d�Z+Gd�dejXe+�Z-Gd�dejXe+�Z.Gd�dejXe+�Z/Gd�dejX�Z0e1dk(rejd�yy)�N)�
no_tracing�verbose�requires_subprocess�requires_resource)�forget�make_legacy_pyc�unload)�create_empty_file�temp_dir�FakePath)�make_script�make_zip_script)�	_run_code�_run_module_code�
run_module�run_patha�# Check basic code execution
result = ['Top level assignment']
def f():
    result.append('Lower level reference')
f()
del f
# Check the sys module
import sys
run_argv0 = sys.argv[0]
run_name_in_sys_modules = __name__ in sys.modules
module_in_sys_modules = (run_name_in_sys_modules and
                         globals() is sys.modules[__name__].__dict__)
# Check nested operation
import runpy
nested = runpy._run_module_code('x=1\n', mod_name='<run>')
)�__name__�__file__�
__cached__�__package__�__doc__�__spec__zTop level assignmentzLower level referenceF�z<run>)�xr�
__loader__)�sys�runpy�result�	run_argv0�run_name_in_sys_modules�module_in_sys_modules�nestedc� �eZdZgd�Zd�Zd�Zy)�CodeExecutionMixin)�name�parent�origin�cached�has_location�submodule_search_locationsc� �|j�}|j�}t|�D]W}|jd�s�|jd�s�'||vr|j	|�||dvs�D|dj	|��Y|j	d�}|j	d�}|�|j|�n�|j�8|jt|j�t|j��|jD]5}d|z}|t||�f}|t||�f}|j||��7|jt|�t|��|D]"}|||f}|||f}|j||��$y)zbCheck two namespaces match.

           Ignores any unspecified interpreter created names
        �__r"rNz	__spec__.)�copy�list�
startswith�endswith�pop�assertIsNone�loader�assertEqual�type�CHECKED_SPEC_ATTRIBUTES�getattr�set)	�self�	result_ns�expected_ns�k�result_spec�
expected_spec�attr�actual�expecteds	         �,/usr/local/lib/python3.12/test/test_runpy.py�assertNamespaceMatchesz)CodeExecutionMixin.assertNamespaceMatchesPs}���N�N�$�	�!�&�&�(���i��A��|�|�D�!�a�j�j��&6��K�'��M�M�!�$��K��1�1��h�'�+�+�A�.�!� �m�m�J�/��#���
�3�
�� ����k�*��#�#�/�� � ��k�&8�&8�!9�!%�m�&:�&:�!;�=��4�4���$�&���W�[�$�7�8���w�}�d�;�<��� � ���2�	5�	
����Y���[�)9�:��A���1��&�F��;�q�>�*�H����V�X�.��c��t�}|j�}|d}tjd}tjj||�}|d�}|j
||�|jtjd|�|jtjj||�|�d|i}	||d<||	�}|j||	�|j
||�|jtjd|�|jtjj||�|�y)z�Check that an interface runs the example code correctly

           First argument is a callable accepting the initial globals and
           using them to create the actual namespace
           Second argument is the expected result
        rrN�sentinel)	�objectr-r�argv�modules�getrC�assertIs�assertIsNot)
r9�create_namespace�expected_namespacerFr;�run_name�saved_argv0�	saved_modr:�
initial_nss
          rB�check_code_executionz'CodeExecutionMixin.check_code_executionxs���8��(�-�-�/���z�*���h�h�q�k���K�K�O�O�H�h�7�	�$�T�*�	��#�#�I�{�;��
�
�c�h�h�q�k�;�/��
�
�c�k�k�o�o�h��9�9�E� �(�+�
�"*��J��$�Z�0�	�����J�/��#�#�I�{�;��
�
�c�h�h�q�k�;�/��
�
�c�k�k�o�o�h��9�9�ErDN)r�
__module__�__qualname__r6rCrS�rDrBr$r$Ds��M��&/�PFrDr$c��eZdZdZd�Zd�Zy)�ExecutionLayerTestCasez9Unit tests for runpy._run_code and runpy._run_module_codec�|�tj�}|jddi�d�}|j||�y)Nrc�$�tti|�S�N)r�example_source)�init_globalss rB�	create_nsz7ExecutionLayerTestCase.test_run_code.<locals>.create_ns�s���^�R��>�>rD)�example_namespacer-�updaterS)r9r;r^s   rB�
test_run_codez$ExecutionLayerTestCase.test_run_code�s=��'�,�,�.������$�
�	�	?��!�!�)�[�9rDc�����d�d}d}d}tjj�||���tj	�}|j�|||�|ddd����fd�}|j
||�y)	Nz
<Nonsense>zSome other nonsensezNow you're just being silly�)r'r3T)rrrrrrr r!c�(��tt|���Sr[)rr\)r]�mod_name�mod_specs ��rBr^z>ExecutionLayerTestCase.test_run_module_code.<locals>.create_ns�s���#�N�$0�$,�$,�.�
.rD)�	importlib�	machinery�
ModuleSpecr_r-r`rS)r9�	mod_fname�
mod_loader�mod_packager;r^rerfs      @@rB�test_run_module_codez+ExecutionLayerTestCase.test_run_module_code�s������)�	�2�
����&�&�1�1�(�9B�9C�2�E��(�,�,�.����� �!�$�&� �"�'+�%)�	
�		�	.�
	
�!�!�)�[�9rDN)rrTrUrrarmrVrDrBrXrX�s��C�:�:rDrXc���eZdZdZd�Zd�Zd�Zdd�Zd ddd�d�Zd	�Z	d
�Z
dddd�d�Zdddd�d�Zd
�Z
d!d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)"�RunModuleTestCasezUnit tests for runpy.run_modulec�b�	t|�|jd|z�y#t$rYywxYw)NzExpected import error for )r�fail�ImportError)r9res  rB�expect_import_errorz%RunModuleTestCase.expect_import_error�s7��	?��x� �
�I�I�2�X�=�>���	��	�s�"�	.�.c�6�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd	�y)
Nrzsys.imp.ericzos.path.halfza.beez.howardz..eatenz.test_runpyz	.unittest�multiprocessing)rs�r9s rB�test_invalid_namesz$RunModuleTestCase.test_invalid_names�s���� � ��'�� � ��0�� � ��0�� � ��)�� � ��+�� � ��+�� � ��/�� � ��-�� � �!2�3rDc�@�|jtd�dd�y)Nrr)r4rrvs rB�test_library_modulez%RunModuleTestCase.test_library_module�s������G�,�Z�8�'�BrDFc��tj|�|rytjj|d�}t	|�|S)N�__init__.py)�os�mkdir�path�joinr
)r9�pkg_dir�	namespace�	pkg_fnames    rB�_add_pkg_dirzRunModuleTestCase._add_pkg_dir�s6��
��������G�G�L�L��-�8�	��)�$��rD�r��parent_namespacesc��|s|r
|std��d}|tjzdz}tjj	tj��x}}	tdkDrtd|	�tjjd|�tdkDrtdtjd�|ro|g|z}
||
d<|
D]_}tjj|	|�}	|j|	|�}tdkDrtd	|	�tdkDs�Ttd
|��atjj|	|�}
t|
d�5}|j|�ddd�tdkDrtd
|
�|dz|z|z}tj j#||
�}||
||fS#1swY�OxYw)
Nz2Can't mark top level module as a namespace package�
__runpy_pkg__�pyrz  Package tree in:rz  Updated sys.path:���z  Next level in:z
  Created:�w�.)�RuntimeErrorr|�extsepr~�realpath�tempfile�mkdtempr�printr�insertrr��open�writerg�util�spec_from_file_location)r9�source�depth�mod_baser�r��pkg_name�
test_fnamer��sub_dir�namespace_flags�namespace_flagr�rj�mod_filererfs                 rB�	_make_pkgzRunModuleTestCase._make_pkg�s���
�*�E�� 3�4�
4�"���b�i�i�'��,�
��G�G�,�,�X�-=�-=�-?�@�@��'��Q�;��2�G�<�������7�#��Q�;��3�S�X�X�a�[�A��0�1�E�9�O�"+�O�B��"1���'�'�,�,�w��9�� �-�-�g�~�F�	��Q�;��&8�'� B��Q�;��l�I� >�	#2�
�G�G�L�L��*�5�	�
�)�S�
!�X��N�N�6�"�"��Q�;��l�I�6��S�L�%�'�(�2���>�>�9�9�(�:C�E���	�8�X�5�5�
"�
!�s�F5�5F>c��ttj�D]%}|jd�s�tj|=�'tdkDrtd�tjd=tdkDrtd�tj|d��D]~\}}}|D]6}	tjtjj||���8|D]8}tjj||�}	tj|��:��	tj|�tdkDrtd�yy#t$r}tdkDrt|�Yd}~��d}~wwxYw#t$r}tdkDrt|�Yd}~��d}~wwxYw#t$r#}tdkDrt|�Yd}~yYd}~yd}~wwxYw)	Nr�rz  Removed sys.modules entriesrz  Removed sys.path entryF)�topdownz  Removed package tree)
r.rrIr/rr�r~r|�walk�remover�OSError�rmdir)	r9�top�entry�root�dirs�filesr%�ex�fullnames	         rB�_del_pkgzRunModuleTestCase._del_pkg�sS���#�+�+�&�E�����0��K�K��&�'��Q�;��=�>��H�H�Q�K��Q�;��8�9�!#����e�!<��D�$����.��I�I�b�g�g�l�l�4��6�7��
���7�7�<�<��d�3��.��H�H�X�&��
"=�	&��H�H�S�M���{�E�":�;�{���.���{�E�"�I���.���.���{�E�"�I���.��
�	&���{�E�"�I�I�{��	&�sH�3D?�:E)�)F�?	E&�E!�!E&�)	F�2F�F�	F?�F:�:F?c��d}|dxx|z
cc<|d|d<|d}tjj|j|d�}||d<|r|dxx|z
cc<yy)N�crrrr)rgr�r�r%)r9�ns�	alter_sys�char_to_add�spec�new_specs      rB�_fix_ns_for_legacy_pycz(RunModuleTestCase._fix_ns_for_legacy_pycsm����
�:��+�%���j�>��<���*�~���>�>�9�9�$�)�)�:<�Z�.�J��!��:����{�O�{�*�O�rDc�8��
�|jt|||��\}}�
}t�
�tj	�}|j�
||j�
jd�d|d���r|j|ddd����
fd�}		tdkDrtd	�
�|j|	|�tj�t�
�tj|�t j"sct%|�t'�
�tj�tdkDrtd
�
�|j)|��|j|	|�|j+|�tdkDrtd�yy#|j+|�wxYw)Nr�r�r�rrrrrT�rr r!c� ��t�|���S�N�r��r)r]r�res ��rBr^z2RunModuleTestCase._check_module.<locals>.create_ns6�����h��	�J�JrDr�Running from source:�Running from compiled:�Module executed successfully)r�r\rr_r-r`r(�
rpartitionrr�rSrg�invalidate_caches�
__import__r|r�r�dont_write_bytecoderr	r�r�)r9r�r�r�r�r�rjrfr;r^res  `       @rB�
_check_modulezRunModuleTestCase._check_module!sl����~�~�n�e�(1�0A��C�	/���H�h�	�x��'�,�,�.����� �!�"�/�/�#�.�.�s�3�A�6� �
�	�����&�+/�)-� �
�
	K�	#���{�E�"8�(�C��%�%�i��=��'�'�)��x� ��I�I�i� ��*�*��	�*��x� ��+�+�-��Q�;��&>�� I��+�+�K��C��)�)�)�[�A��M�M�'�"��Q�;��<�=�;��
�M�M�'�"�s
�CF�Fc�d���|jt|d||��\}}}}|jd�d�t|�tj�}	|	j
||tjj|��|d���r|	j
|ddd����fd�}
	td	kDrtd
��|j|
|	�tj�t|�tj |�t"j$sct'|�t)|�td	kDrtd��tj�|j+|	��|j|
|	�|j-|�td	kDrtd�yy#|j-|�wxYw)
N�__main__r�r�rr�Tr�c� ��t�|���Sr�r�)r]r�r�s ��rBr^z3RunModuleTestCase._check_package.<locals>.create_ns_r�rDrr�r�zPackage executed successfully)r�r\r�rr_r-r`rgr��cache_from_sourcerr�rSr�r�r|r�rr�rr	r�r�)r9r�r�r�r�r�rjrerfr;r^r�s  `        @rB�_check_packagez RunModuleTestCase._check_packageIs~����~�~�n�e�Z�(1�0A��C�	/���H�h��&�&�s�+�A�.���x��'�,�,�.����� �!�#�.�.�:�:�9�E�#� �
�	�����&�+/�)-� �
�
	K�	#���{�E�"8�(�C��%�%�i��=��'�'�)��x� ��I�I�i� ��*�*��	�*��x� ��Q�;��&>�� I��+�+�-��+�+�K��C��)�)�)�[�A��M�M�'�"��Q�;��=�>�;��
�M�M�'�"�s
�'CF�F/c��|dkrtd��d}|}t|�D]$}|}tjj	||�}�&tjj	|d�}t|�tdkDrtd|�tjj	d�}	|j|	�tdkDrtd|	�tjj	|	d�}
|j|
�tdkDrtd	|
�tjj	|
d
�}t|�tdkDr
td|�yy)Nrz$Relative module test needs depth > 1r�z
sibling.pyz  Added sibling module:�unclez  Added uncle package:�cousinz  Added cousin package:z	nephew.pyz  Added nephew module:)	�
ValueError�ranger|r~rr
rr�r�)r9�base_dirr�r�r��
module_dir�i�
parent_dir�
sibling_fname�	uncle_dir�
cousin_dir�nephew_fnames            rB�_add_relative_modulesz'RunModuleTestCase._add_relative_modulesrs
���A�:��C�D�D�"���
��u��A�#�J������j�(�;�J�������Z��>�
��-�(��Q�;��7��G��G�G�L�L��W�5�	����)�$��Q�;��6�	�B��W�W�\�\�)�X�6�
����*�%��Q�;��7��D��w�w�|�|�J��<���,�'��Q�;��6��E�;rDNc��d}|j||�\}}}}|�|}n|}	|j|||�|jd�d}	tdkDrt	d|�t||��}
|j
|
d|�|j
|
d|	�|jd	|
�|jd
|
�~
tj�t|�tj|�tjs�t|�t!|�tdkDrt	d|�tj�t||��}|j
|d|�|j
|d|	�|jd	|�|jd
|�~|j#|�tdkDrt	d�yy#|j#|�wxYw)
Nza\
from __future__ import absolute_import
from . import sibling
from ..uncle.cousin import nephew
r�rrr�)rOrr�sibling�nephewr�r�)r�r�r�rr�rr4�assertInrgr�r�r|r�rr�rr	r�)r9r�rO�contentsr�rjrerf�
expected_namer��d1�d2s            rB�_check_relative_importsz)RunModuleTestCase._check_relative_imports�s������~�~�h��.�	/���H�h���$�M�$�M�	#��&�&�w��%�@��*�*�3�/��2�H���{�E�"8�(�C��H�x�8�B����R�
�^�]�;����R�
�.��9��M�M�)�R�(��M�M�(�B�'���'�'�)��x� ��I�I�i� ��*�*��	�*��x� ��Q�;��&>�� I��+�+�-���8�<��� � ��J���?�� � ��M�!2�H�=��
�
�i��,��
�
�h��+���M�M�'�"��Q�;��<�=�;��
�M�M�'�"�s�E7G�Gc�p�td�D](}tdkDrtd|�|j|��*y)N�r�Testing package depth:�r�rr�r��r9r�s  rB�test_run_modulez!RunModuleTestCase.test_run_module�s/���1�X�E���{�E�":�E�B����u�%�rDc�x�tdd�D]+}tdkDrtd|�|j|dd���-y�Nrr�r�Tr�r�r�s  rB�$test_run_module_in_namespace_packagez6RunModuleTestCase.test_run_module_in_namespace_package�s8���1�a�[�E���{�E�":�E�B����u����M�!rDc�r�tdd�D](}tdkDrtd|�|j|��*y)Nrr�r��r�rr�r�r�s  rB�test_run_packagez"RunModuleTestCase.test_run_package�s1���1�a�[�E���{�E�":�E�B�����&�!rDc	�j�|jddd�}|\}}}}|jdd�}|j|j|�tj
j
|dd�}ttttf}|D]�}|j}|j|�5dj|�}	t|dd	�
�5}
|
j|	�ddd�	t!|�|j#dj|��	t!|d
z�|j#dj|��ddd���y#1swY�oxYw#|$r%}|j%dt|��Yd}~�kd}~wwxYw#|$r%}|j%dt|��Yd}~�id}~wwxYw#1swY��0xYw)Nrcrr��	.__main__r�r{z raise {0}('{0} in __init__.py.')�wt�ascii��encodingzNothing raised; expected {}zfinding specz
.submodule)r��replace�
addCleanupr�r|r~rrr�AttributeError�	TypeErrorr�r�subTest�formatr�r�rrq�assertNotIn)r9rr��_re�init�
exceptions�	exceptionr%r�r��errs            rB� test_run_package_init_exceptionsz2RunModuleTestCase.test_run_package_init_exceptions�s}������A�z�2��"(����H�a��#�#�K��4������
�
�w�/��w�w�|�|�G�_�m�D��!�>�9�j�I�
�#�I��%�%�D����d�#�;�B�B�4�H���$��w�7�8��N�N�6�*�8�J��x�(��I�I�;�B�B�4�H�I�J��x�,�6�7��I�I�;�B�B�4�H�I�$�#�$�8�7��!�B��$�$�^�V�C�[�A�A��B��!�B��$�$�^�V�C�[�A�A��B��$�#�sx�" F(�E�F(�E�( F(�	E;� F(�E�F(�E8�E3�.F(�3E8�8F(�;F%�F �F(� F%�%F(�(F2	c��|jdd�\}}}}	t|�|jtd�5t	|�ddd�|j|�y#1swY�xYw#|j|�wxYw)Nrcr�found in sys\.modules)r�r��assertWarnsRegex�RuntimeWarningrr�)r9r�r�res    rB�test_submodule_imported_warningz1RunModuleTestCase.test_submodule_imported_warning�sp��"&�.�.��Q�"7����H�a�	#��x� ��&�&�~�,�.��8�$�.�
�M�M�'�"�	.�.��
�M�M�'�"�s"�!A,�A �A,� A)�%A,�,A?c��|jddd�\}}}}|j|j|�|jdd�}t	|�|j|tj�tj�5tjdt�t|�ddd�t	|�|jtd�5t|�ddd�y#1swY�?xYw#1swYyxYw)Nrcrr�r��errorr)r�r�r�r�r�r�rrI�warnings�catch_warnings�simplefilterrrr)r9r�r�re�packages     rB� test_package_imported_no_warningz2RunModuleTestCase.test_package_imported_no_warning�s���"&�.�.��Q�
�"C����H�a�����
�
�w�/��"�"�;��3���7���
�
�g�s�{�{�+�
�
$�
$�
&��!�!�'�>�:��w��'�	�8��
�
"�
"�>�3K�
L��w��M�
L�'�
&��
M�
L�s�&C*�C6�*C3�6C?c�v�tdd�D]*}tdkDrtd|�|j|d���,y)Nrr�r�T)r�r�r�s  rB�%test_run_package_in_namespace_packagez7RunModuleTestCase.test_run_package_in_namespace_package�s6���1�a�[�E���{�E�":�E�B�������>�!rDc�v�tdd�D]*}tdkDrtd|�|j|d���,y)Nrr�r�T)r�r�r�s  rB�test_run_namespace_packagez,RunModuleTestCase.test_run_namespace_package��6���1�a�[�E���{�E�":�E�B�������6�!rDc�x�tdd�D]+}tdkDrtd|�|j|dd���-yr�r�r�s  rB�/test_run_namespace_package_in_namespace_packagezARunModuleTestCase.test_run_namespace_package_in_namespace_package�s8���1�a�[�E���{�E�":�E�B��������N�!rDc�t�td�D]*}tdkDrtd|�|j|d���,y)Nr�rr�Tr�r�r�s  rB�test_run_module_alter_sysz+RunModuleTestCase.test_run_module_alter_syss4���1�X�E���{�E�":�E�B����u���5�rDc�v�tdd�D]*}tdkDrtd|�|j|d���,y)Nrr�r�Tr�r�r�s  rB�test_run_package_alter_sysz,RunModuleTestCase.test_run_package_alter_sys	rrDc�r�tdd�D](}tdkDrtd|�|j|��*y)N��rz"Testing relative imports at depth:�r�rr�r�r�s  rB�test_explicit_relative_importz/RunModuleTestCase.test_explicit_relative_imports1���1�a�[�E���{�E�"F��N��(�(��/�!rDc�t�tdd�D])}tdkDrtd|�|j|d��+y)Nrrrz'Testing main relative imports at depth:r�rr�s  rB�test_main_relative_importz+RunModuleTestCase.test_main_relative_imports3���1�a�[�E���{�E�"K�U�S��(�(��
�;�!rDc����d}d�|jt|�\}}�}t��tj	�}|j�|tjj|��jd�d|d����fd�}	|j||�|j|�y#|j|�wxYw)Nrz*And now for something completely differentr�rr�c���t�|��Sr[r�)r]rerOs ��rBr^z2RunModuleTestCase.test_run_name.<locals>.create_ns&s����h��h�?�?rD)r�r\rr_r-r`rgr�r�r�rSr�)	r9r�r�rjrfr;r^rerOs	       @@rB�
test_run_namezRunModuleTestCase.test_run_names������?���~�~�n�e�4�	/���H�h��x��'�,�,�.����� �!�#�.�.�:�:�9�E�#�.�.�s�3�A�6� �
�	�	@�	#��%�%�i��=��M�M�'�"��D�M�M�'�"�s�B2�2Cc�$�ddl}d}d}ddg}d|dzg}t�}t�}td|�D]d}d	j|g|z�}	|j	|	�|D]}
|j	|	d	z|
z��|D]}
|j	|	d	z|
z���fd	j|g|z�}	|j	|	�|j	|	d
z�|jd|�\}}}
}|j
|j|�td|dz�D]}|j|d|��|j|g�D]�}|j||j�|j|jtjj�|j r|j#|j$��{|j#|j$���|j't)|�d|�|j't)|�d|�y)
Nrr�r�r�zuncle.cousinzuncle.cousin.nephewz.siblingrr�z.runpy_testrcr)�pkgutilr8r�r�addr�r�r�r��
walk_packages�assertIsInstance�
ModuleInfo�
module_finderrgrh�
FileFinder�ispkgr�r%r4�len)r9r$�	max_depth�	base_name�package_suffixes�module_suffixes�expected_packages�expected_modulesr�r�r%r�rjrerf�
moduleinfos                rB�test_pkgutil_walk_packagesz,RunModuleTestCase.test_pkgutil_walk_packages-s���	��	�#�	�#�^�4��0�)�j�2H�I���E���5���1�i�(�E��x�x���e� 3�4�H��!�!�(�+�(��!�%�%�h��n�t�&;�<�)�'�� �$�$�X��^�d�%:�;�(�)��8�8�Y�K�)�3�4�����h�'����X�
�5�6��~�~�b�)�,�	/���H�h�����
�
�w�/��1�i��k�*�E��&�&�w��E�:�+�!�/�/��	�:�J��!�!�*�g�.@�.@�A��!�!�*�":�":�"+�"5�"5�"@�"@�
B����!�(�(����9� �'�'�
���8�;�	
����.�/��4E�F�����-�.��3C�DrD)F)�
runpy_testr[)rrTrUrrsrwryr�r�r�r�r�r�r�r�r�r�r�rrr
rrrrrrrr"r4rVrDrBroro�s���)�?�
4�C��6�"'�5�6�:&�2	+�&>�&+�u�&>�P'?�',��'?�RF�.&>�P&�
N�
'�
J�8#�
 �?�
7�
O�
6�
7�
0�
<�
#�*"ErDroc��eZdZdZ	dd�Z		dd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zeed�d���Zd�Zy)�RunPathTestCasezUnit tests for runpy.run_pathNc�.�|�t}t||||�Sr[)r\r
)r9�
script_dir�script_basenamer��omit_suffixs     rB�_make_test_scriptz!RunPathTestCase._make_test_scriptTs"���>�#�F��:��!�;�0�	0rDc����
��fd�}tj�}	|�|}
n|}
|r6tjj	|
|�}|j
}|sd|_ndx}}|	j|||d||ddd��|j||	�d�
�
�fd�}|r0|�.tjj	�
|�}|sd|_||	d<�
|	d<�
jd	�d
|	d<|j||	�y)Nc���t�|�Sr[�r)r]�script_names �rBr^z0RunPathTestCase._check_script.<locals>.create_ns_s����K��6�6rDrcT)rrrrrrr r!zprove.issue15230.is.fixedc���t�|��Sr[r?)r]rOr@s ��rBr^z0RunPathTestCase._check_script.<locals>.create_ns|s����K��x�@�@rDrrr�rr)
r_r-rgr�r�r(r3r`rSr�)r9r@r��
expected_file�expected_argv0re�expect_spec�check_loaderr^r;�	spec_namerf�
mod_cachedrOs `           @rB�
_check_scriptzRunPathTestCase._check_script[s���	7�'�,�,�.����%�I� �I�� �~�~�=�=�i�>K�M�H�!���J��"&���$(�(�H�z����%�%�$�� �'�'+�%)�	
�		�	
�!�!�)�[�9�.��	A��8�+� �~�~�=�=�h�>K�M�H��"&���&.�K�
�#�"*��J��%-�%8�%8��%=�a�%@��M�"��!�!�)�[�9rDc�f�tj|�}|jt|t|�yr[)�re�escape�assertRaisesRegexrrr)r9r@�msgs   rB�_check_import_errorz#RunPathTestCase._check_import_error�s#���i�i��n�����{�C��;�GrDc��t�5}d}|j||�}|j|d||d��ddd�y#1swYyxYw�N�script�
<run_path>F�rD�rr<rH�r9r9rer@s    rB�test_basic_scriptz!RunPathTestCase.test_basic_script�sH��
�Z�:��H��0�0��X�F�K����{�L�+�*��
�
?��Z�Z��	�+?�Ac	���t�5}d}t|j||��}|j|dt	j
|�t	j
|�d��ddd�y#1swYyxYwrP)rrr<rHr|�fsdecoderUs    rB�&test_basic_script_with_pathlike_objectz6RunPathTestCase.test_basic_script_with_pathlike_object�sa��
�Z�:��H�"�4�#9�#9�*�h�#O�P�K����{�L�!�{�{�;�7�!�{�{�;�7�+0�
�
2��Z�Z�s�AA.�.A7c��t�5}d}|j||d��}|j|d||d��ddd�y#1swYyxYw)NrQT)r;rRFrSrTrUs    rB�test_basic_script_no_suffixz+RunPathTestCase.test_basic_script_no_suffix�sS��
�Z�:��H��0�0��X�=A�1�C�K����{�L�+�*��
�
?�	�Z�Z�s�-A�A
c���t�5}d}|j||�}tj|d��}t	j
|�|j
|d||d��ddd�y#1swYyxYw)NrQT��doraiserRFrS)rr<�
py_compile�compiler|r�rH)r9r9rer@�
compiled_names     rB�test_script_compiledz$RunPathTestCase.test_script_compiled�sg��
�Z�:��H��0�0��X�F�K�&�.�.�{�D�I�M��I�I�k�"����}�l�M�,�%�
�
A��Z�Z�s�AA+�+A4c��t�5}d}|j||�}|j|d|||��ddd�y#1swYyxYw)Nr�rR�rerTrUs    rB�test_directoryzRunPathTestCase.test_directory�sH��
�Z�:�!�H��0�0��X�F�K����z�<��)�H�
�
>��Z�Z�rWc�$�t�5}d}|j||�}tj|d��}t	j
|�tjs!t|�}|j|d|||��ddd�y#1swYyxYw)Nr�Tr^rRre)
rr<r`rar|r�rr�rrH)r9r9rer@rb�
legacy_pycs      rB�test_directory_compiledz'RunPathTestCase.test_directory_compiled�sz��
�Z�:�!�H��0�0��X�F�K�&�.�.�{�D�I�M��I�I�k�"��*�*�,�[�9�
��"�"�:�|�Z�#-��#�B��Z�Z�s�A2B�Bc��t�5}d}|j||�}d|z}|j||�ddd�y#1swYyxYw)N�not_main�"can't find '__main__' module in %r)rr<rN)r9r9rer@rMs     rB�test_directory_errorz$RunPathTestCase.test_directory_error�sD��
�Z�:�!�H��0�0��X�F�K�6��C�C��$�$�Z��5�	�Z�Z�s�,A�A	c	��t�5}d}|j||�}t|d|�\}}|j|d|||d��ddd�y#1swYyxYw)Nr��test_ziprRF�rerE)rr<rrH)r9r9rer@�zip_name�fnames      rB�test_zipfilezRunPathTestCase.test_zipfile�s]��
�Z�:�!�H��0�0��X�F�K�-�j�*�k�R�O�H�e����x��u�h�(0�u�
�
F�	�Z�Z���<A�Ac	���t�5}d}|j||�}tj|d��}t	|d|�\}}|j|d|||d��ddd�y#1swYyxYw)Nr�Tr^rorRFrp)rr<r`rarrH)r9r9rer@rbrqrrs       rB�test_zipfile_compiledz%RunPathTestCase.test_zipfile_compiled�sr��
�Z�:�!�H��0�0��X�F�K�&�.�.�{�D�I�M�-�j�*�.;�=�O�H�e����x��u�h�(0�u�
�
F�
�Z�Z�s�AA'�'A0c��t�5}d}|j||�}t|d|�\}}d|z}|j||�ddd�y#1swYyxYw)Nrkrorl)rr<rrN)r9r9rer@rqrrrMs       rB�test_zipfile_errorz"RunPathTestCase.test_zipfile_error�sV��
�Z�:�!�H��0�0��X�F�K�-�j�*�k�R�O�H�e�6��A�C��$�$�X�s�3��Z�Z�rt�cpuc�
�t�5}t�5}d}d|z}|j|||�}t|d|�\}}|jtt
|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nr�z import runpy
runpy.run_path(%r)
ro)rr<r�assertRaises�RecursionErrorr)r9r9�	dummy_dirrer�r@rqrrs        rB�test_main_recursion_errorz)RunPathTestCase.test_main_recursion_error�sp���Z�:�x�z�Y�!�H�-�09�:�F��0�0��X�v�N�K�-�j�*�k�R�O�H�e����n�h��A�
(2�Z�Z�z�z��Z�Z�s#�A9�AA-�A9�-A6	�2A9�9Bc�*�t�5}tjj|d�}t	|dd��5}|jd�ddd�t
|�}|j|dd�ddd�y#1swY�2xYw#1swYyxYw)Nz	script.pyr��latin1r�u%
#coding:latin1
s = "non-ASCII: hé"
�sunon-ASCII: hé)rr|r~rr�r�rr4)r9r9�filename�frs     rB�
test_encodingzRunPathTestCase.test_encoding�sx��
�Z�:��w�w�|�|�J��<�H��h��h�7�1������8�
�h�'�F����V�C�[�*<�=��Z�7�7���Z�s"�/B	�A=�(B	�=B	�B	�	B)NF)NTT)rrTrUrr<rHrNrVrZr\rcrfrirmrsrvrxrrr~r�rVrDrBr7r7Qs���'�49�0�6:�;?�+:�ZH�?�2�?�A�>�	B�6�F�F�4���u��B���B�	>rDr7c����eZdZdZej
dk(renejZe	e
jd���Z�fd�Z
e�d��Zd�Zd�Zd�Zd	�Zd
�Zd�Zd�Z�xZS)
�TestExitl:�win32c/�xK�t�5}tj|���ddd�y#1swYyxYw�wr[)r�pathlib�Path)�args�kwargs�tmp_fns   rB�tmp_pathzTestExit.tmp_path�s'�����Z�6��,�,�v�&�&��Z�Z�s�:�.�	:�7�:c����|j�5}|dzx|_}|jtjd��t�|�|i|��ddd�y#1swYyxYw)Nzham.pyz@                    raise KeyboardInterrupt
                    )r��ham�
write_text�textwrap�dedent�super�run)r9r�r��tmpr��	__class__s     �rBr�zTestExit.runsX���
�]�]�_�� �8�^�+�D�H�s��N�N������
�
�G�K��(��(��_�_�s�AA�A$c�:�tjdg|�}tj|g|��i|�dtjd���}|j|jjd�|j�|j|j|j�y)Nz-ET)�text�stderrz
KeyboardInterrupt
)r�
executable�
subprocessr��PIPE�
assertTruer�r0r4�
returncode�
EXPECTED_CODE)r9�cmdr�r��procs     rB�assertSigIntzTestExit.assertSigIntsv���~�~�t�*�c�*���~�~�c�V�D�V�F�V��j�o�o�V��������,�,�-D�E�t�{�{�S�������$�*<�*<�=rDc�<�|j|jg�yr[)r�r�rvs rB�test_pymain_run_filezTestExit.test_pymain_run_files�����4�8�8�*�%rDc��|jj}|dz}|jtjd��|j|g|��y)Nz
run_module.pyzU                import runpy
                runpy.run_module("ham")
                ��cwd�r�r&r�r�r�r�)r9r�rs   rB�%test_pymain_run_file_runpy_run_modulez.TestExit.test_pymain_run_file_runpy_run_modulesQ���h�h�o�o���?�*�
��
����O�O��
�	
�	
���:�,�C��0rDc��|jj}|dz}|jtjd��|j|g|��y)Nzrun_module_as_main.pyz^                import runpy
                runpy._run_module_as_main("ham")
                r�r�)r9r��run_module_as_mains   rB�-test_pymain_run_file_runpy_run_module_as_mainz6TestExit.test_pymain_run_file_runpy_run_module_as_main)sS���h�h�o�o�� �#:�:���%�%��O�O��
�	
�	
���-�.�C��8rDc�V�|jddg|jj��y)N�-cz%import runpy; runpy.run_module('ham')r��r�r�r&rvs rB�"test_pymain_run_command_run_modulez+TestExit.test_pymain_run_command_run_module6s)�����
�:�;������	�	
rDc�V�|jddg|jj��y)Nr��
import hamr�r�rvs rB�test_pymain_run_commandz TestExit.test_pymain_run_command<s"�����4��.�D�H�H�O�O��DrDc�T�|jgd|jj��y)Nr�)�inputr�r�rvs rB�test_pymain_run_stdinzTestExit.test_pymain_run_stdin?s�����"�L�d�h�h�o�o��FrDc�n�|j}|jd|jg|j��y)Nz-mr�)r�r��stemr&)r9r�s  rB�test_pymain_run_modulezTestExit.test_pymain_run_moduleBs+���h�h�����4����*��
�
��;rD)rrTrU�STATUS_CONTROL_C_EXITr�platform�signal�SIGINTr��staticmethod�
contextlib�contextmanagerr�r�rr�r�r�r�r�r�r�r��
__classcell__)r�s@rBr�r��s����&���<�<�7�"�	��m�m�^��
����'���'�

)���>��>�&�1�9�
�E�G�<rDr�r�)3r��importlib.machineryrg�importlib.util�os.pathr|r�r`rJr�r�rr�r��unittestr	�test.supportrrrr�test.support.import_helperrrr	�test.support.os_helperr
rr�test.support.script_helperr
rrrrrrr\�implicit_namespacerH�dictr_r`r$�TestCaserXror7r�r�mainrVrDrB�<module>r�sB���*����	�
��
�����T�T�F�F�H�H�C�
�C�C���&������
���
�%�'>�?����!��$�"��%���T�;�	�����+�,�LF�LF�^$:�X�.�.�0B�$:�NUE��)�)�+=�UE�nc>�h�'�'�);�c>�LM<�x� � �M<�`�z���H�M�M�O�rD

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists