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_venv.cpython-312.opt-2.pyc

�

'Μg����Z�	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZmZmZmZmZmZmZmZmZmZddlmZmZmZmZmZddlZddlZddl m!Z!m"Z"	ddl#Z#ejJe	jLe	jNk(xse	jPe	jRk7d�Z*eserejVd��e�dd��Z,Gd�d	ejZ�Z.Gd
�de.�Z/e*Gd�d
e.��Z0e1dk(rejd�yy#e$$rdZ#Y��wxYw)�N)�captured_stdout�captured_stderr�*skip_if_broken_multiprocessing_synchronize�verbose�requires_subprocess�
is_emscripten�is_wasi�requires_venv_with_pip�
TEST_HOME_DIR�requires_resource�copy_python_src_ignore)�can_symlink�EnvironmentVarGuard�rmtree�TESTFN�FakePath)�patch�Mockz:cannot run venv.create from within a venv on this platformz)venv is not available on Emscripten/WASI.c�<�tj|tjtj|��}|j�\}}|jrEt
r|rt
|jdd��tj|j|||��||fS)N)�stdout�stderr�encoding�utf-8�backslashreplace)	�
subprocess�Popen�PIPE�communicate�
returncoder�print�decode�CalledProcessError)�cmdr�p�out�errs     �+/usr/local/lib/python3.12/test/test_venv.py�check_outputr(.s�������������	�A��}�}��H�C���|�|��s��#�*�*�W�&8�9�:��+�+�
�L�L�#�s�C�)�	)���8�O�c�6�eZdZ	dZd�Zd�Zd�Zd�Zdd�d�Zy	)
�BaseTesti�c�F�tjjtj��|_tjdk(rd|_d|_d|_	n+d|_ddtjddzf|_d	|_	tj}tjj|�d
|_tjdk(rFtjj!|�r'tjj#|�sd|_yd
|_y)N�nt�Scripts��Lib�Include�bin�lib�python%d.%d��include����win32TF)�os�path�realpath�tempfile�mkdtemp�env_dir�name�bindirr3r6�sys�version_info�_base_executable�split�exe�platform�lexists�exists�cannot_link_exe)�self�
executables  r'�setUpzBaseTest.setUp@s����w�w�'�'��(8�(8�(:�;���
�7�7�d�?�#�D�K��D�H�$�D�L��D�K��}�s�/?�/?���/C�C�D�D�H�$�D�L��)�)�
��7�7�=�=��,�R�0����L�L�G�#������
�+��G�G�N�N�:�.�#'�D� �#(�D� r)c�.�t|j�y�N)rr>�rJs r'�tearDownzBaseTest.tearDownSs���t�|�|�r)c���t�5}t�5}||i|��ddd�ddd�j�j�fS#1swY�1xYw#1swY�5xYwrN)rr�getvalue)rJ�func�args�kwargs�output�errors      r'�run_with_capturezBaseTest.run_with_captureVsV��
�
�&� �"�e��d�%�f�%�#����� �%�.�.�"2�2�2�#�"���
�s!�A�	A�A�A	�A�A$c�V�tjj|jg|���SrN)r9r:�joinr>)rJrTs  r'�get_env_filezBaseTest.get_env_file\s���w�w�|�|�D�L�L�0�4�0�0r)r�rc��t|j|�d|��5}|j�}ddd�|S#1swYSxYw)N�rr\)�openr[�read)rJrrT�f�results     r'�get_text_file_contentszBaseTest.get_text_file_contents_s@��
�#�$�#�#�T�*�C�(�
C�q��V�V�X�F�D��
�D��
�s	�7�AN)	�__name__�
__module__�__qualname__�maxDiffrLrPrXr[rc�r)r'r+r+<s(��$��G�)�&�3�1�6=�r)r+c	�2�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
d��Ze
d	��Ze
e
je�d
�d���Zej$dk(rd
Zn,dddddej(ddzfddej(ddzdffZd�Zd�Zd�Zd�Zd�Zd�Ze
je�d
�d��Ze
d��Ze
je�d
�d��Ze
jej>dk(d �d!��Z e
d"��Z!e
d#��Z"e
jFej>dk(d$�d%��Z$e
jej$d&k(d'�d(��Z%d)�Z&e
jFej>dk(d$�e
d*���Z'd+�Z(d,�Z)y)-�	BasicTestc�~�|j|�}|jtjj	|��yrN)r[�
assertTruer9r:�isdir)rJrT�fns   r'rmzBasicTest.isdirgs-��
�T�
�
��
%��������
�
�b�)�*r)c��	t|j�|jtj|j�|j�yrN)rr>rX�venv�create�_check_output_of_default_createrOs r'�test_defaults_with_str_pathz%BasicTest.test_defaults_with_str_pathks9��	�	�t�|�|�����d�k�k�4�<�<�8��,�,�.r)c��	t|j�|jtjt|j��|j
�yrN)rr>rXrprqrrrrOs r'�test_defaults_with_pathlikez%BasicTest.test_defaults_with_pathlikess>��	�	�t�|�|�����d�k�k�8�D�L�L�+A�B��,�,�.r)c�J�|j|j�|j|j�|j|j�|j	d�}tjd�dk(xr(tjdk(xrtjdk7}|r/|jtjj|��n.|jtjj|��|j!d�}tj"}tjj%|�}|j'd|z|�|j'dtjj)tj*�z|�tjd	k(rd
nd}dtj*�d
|�d|j,��}|j'||�|j	|j|j.�}tjj|�sJ|j	|j�}	t1d|	z�t1dtj2|	�z�|jtjj|�d|z�y)N�lib64�P��posix�darwin�
pyvenv.cfgz	home = %szexecutable = %sr-�z	 --copiesz
command = z -m venvz --without-pip �Contents of %r:�    %r�File %r should exist.)rmr@r6r3r[�struct�calcsizer9r?rArFrlr:�islink�assertFalserHrcrC�dirname�assertInr;rKr>rEr �listdir)
rJr$�
conditions�datarKr:�copiesr#rn�bds
          r'rrz)BasicTest._check_output_of_default_create{s����
�
�4�;�;���
�
�4�<�<� ���
�
�D�H�H�����g�&�����s�+�q�0�1�r�w�w�'�7I�1��|�|�x�/�	���O�O�B�G�G�N�N�1�-�.����R�W�W�^�^�A�.�/��*�*�<�8���)�)�
��w�w���z�*���
�
�k�D�(�$�/��
�
�'��g�g�&�&�s�~�~�6�7�8<�	>��w�w��}��+���3�>�>�*�(�6�(�/�$�,�,��X���
�
�c�4� �
�
�
�t�{�{�D�H�H�
5���w�w�~�~�b�!��"�"�4�;�;�/�B��#�b�(�)��(�R�Z�Z��^�+�,���������r�*�,C�b�,H�Ir)c��gd�}|D]�\}}t|j�|stj�}ntjd
i||dvrdndi��}t	�|_t	�|_|j|j|j�|jd�}|sdD]}|j|d|������tjdk(r|d	k(r��|j|d|�����y)N))NN)�symlinksz--copies)�with_pip�
--without-pip)�system_site_packages�--system-site-packages)�clear�--clear)�upgrade�	--upgrade)�upgrade_deps�--upgrade-deps)�prompt�--prompt)r�r�FTr|)r�r�r�r�r�z
command = .* r-r�rh)rr>rp�
EnvBuilderr�upgrade_dependencies�
_setup_piprXrqrc�assertNotRegexr9r?�assertRegex)rJ�attrs�attr�opt�br�s      r'�test_config_file_command_keyz&BasicTest.test_config_file_command_key�s���	
���I�D�#��4�<�<� ���O�O�%���O�O�S��d�.F�&F�U�D�Q�S��%)�V�A�"��6�A�L��!�!�!�(�(�D�L�L�9��.�.�|�<�D��6�C��'�'���s�e�.D�E�6����$��4��#3��� � ��-��u�'=�>�%r)c���tjj|j�d}t	|j�tj�}|j|j|j�|j|j�}|jd�}|j|jd|z�|jd|�t	|j�tjd��}|j|j|j�|j|j�}|jd�}|j|jd�|jd|�t	|j�tjd	��}tjjtj ��}|j|j|j�|j|j�}|jd�}|j|jd|z�|jd
|z|�y)N�r|z(%s) z	prompt = z	My prompt)r�z(My prompt) zprompt = 'My prompt'
�.zprompt = '%s'
)r9r:rDr>rrpr�rXrq�ensure_directoriesrc�assertEqualr��assertNotInr��basename�getcwd)rJ�env_name�builder�contextr��cwds      r'�test_promptzBasicTest.test_prompt�s����7�7�=�=����.�q�1���t�|�|���/�/�#�����g�n�n�d�l�l�;��,�,�T�\�\�:���*�*�<�8���������8�);�<�����d�+��t�|�|���/�/��5�����g�n�n�d�l�l�;��,�,�T�\�\�:���*�*�<�8���������8��
�
�.��5��t�|�|���/�/��-���g�g���r�y�y�{�+�����g�n�n�d�l�l�;��,�,�T�\�\�:���*�*�<�8���������3��7��
�
�'�#�-�t�4r)c����tj�}tjdk(rdnd}tj
j
tj�d}tj�5}tj
jtj
j|||���tjdk(r<tj
jtj
j������fd�}|j|�}td|�5|j|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nr8r.r2r�c	���tjj|d�|d<�j|�dddddg�y)Nr�-m�pip�installr�)r9r:�normcaser�)r#rU�
expect_exerJs  ��r'�pip_cmd_checkerz<BasicTest.test_upgrade_dependencies.<locals>.pip_cmd_checker�sG������)�)�#�a�&�1��A��� � ��"���!�#��
�
r)zvenv.subprocess.check_output)rpr�rArFr9r:rDrKr<�TemporaryDirectoryr�rZr;r�rr�)rJr��bin_path�
python_exe�fake_env_dirr��fake_contextr�s`      @r'�test_upgrade_dependenciesz#BasicTest.test_upgrade_dependencies�s�����/�/�#�� #���� 7�9�U���W�W�]�]�3�>�>�2�1�5�
�
�
(�
(�
*�l����)�)������\�8�Z�@��J��|�|�w�&��W�W�-�-�b�g�g�.>�.>�z�.J�K�
�
�#�5�5�l�C�L��5��G��,�,�\�:�H�-+�
*�,H�G��-+�
*�s%�2B1E�#E�5E�E	�E�Ec�n�	t|j�|jtj|j�t
jj|j|j|j�}|ddg}d|jfd|jfdtjfdtjffD]p\}}d|z|d<t|�\}}|jtj |j#�j%��tj |�|��ry)N�-c�prefix�exec_prefix�base_prefix�base_exec_prefixzimport sys; print(sys.%s)r5)rr>rXrprqr9r:rZr@rErAr�r�r(r��pathlib�Path�stripr!)rJ�envpyr#r��expectedr%r&s       r'�
test_prefixeszBasicTest.test_prefixes�s���	�	�t�|�|�����d�k�k�4�<�<�8������T�\�\�4�;�;����A���d�D�!��
�t�|�|�$�
�D�L�L�)�
�C�O�O�,�
��!5�!5�6�	!8��F�H�
1�6�9�C��F�#�C�(�H�C�����W�\�\�#�)�)�+�*<�*<�*>�?�$�\�\�(�3�V�
=�!8r)c��	t|j�|jtj|jd��t
jj|j|j|j�}|ddg}dddttj��fdtj�fdtj�ffD]d\}}|j|�5d	|z|d
<t!|�\}}|j#|j%�|j'�|�ddd��fy#1swY�qxYw)NF�r�r��zget_preferred_scheme("prefix")rp�zget_default_scheme()rp�is_python_build()�get_makefile_filename()�get_config_h_filename()�%import sysconfig; print(sysconfig.%s)r5�rr>rXrprqr9r:rZr@rE�str�	sysconfig�is_python_build�get_makefile_filename�get_config_h_filename�subTestr(r�r��encode�rJr�r#�callr�r%r&s       r'�test_sysconfigzBasicTest.test_sysconfigs��	�	�t�|�|�����d�k�k�4�<�<�%��H������T�\�\�4�;�;����A���d�D�!��
7�,�
 �#�i�&?�&?�&A�"B�C�
&�	�(G�(G�(I�J�
&�	�(G�(G�(I�J�L�N�D�(����d�#�@�4�G��A��'��,���S�� � �����h�o�o�.?��E�$�#�L�$�#��
�*AD;�;E	zNeeds symlinksc��	t|j�|jtj|jd��t
jj|j|j|j�}|ddg}dddttj��fdtj�fdtj�ffD]d\}}|j|�5d	|z|d
<t!|�\}}|j#|j%�|j'�|�ddd��fy#1swY�qxYw)NTr�r�r�r�r�r�r�r�r5r�r�s       r'�test_sysconfig_symlinksz!BasicTest.test_sysconfig_symlinkss��	�	�t�|�|�����d�k�k�4�<�<�$��G������T�\�\�4�;�;����A���d�D�!��
7�,�
 �#�i�&?�&?�&A�"B�C�
&�	�(G�(G�(I�J�
&�	�(G�(G�(I�J�L�N�D�(����d�#�@�4�G��A��'��,���S�� � �����h�o�o�.?��E�$�#�L�$�#�r�r8))r.)r1r/)r0�
site-packages)r2)r6)r3r3r4Nr5r�c�6�	|D]�}tjj|jg|���}tj|�tjj||�}t|d�5}|j
d�ddd���y#1swY��xYw)N�wb�Still here?)r9r:rZr>�mkdirr_�write)rJ�paths�filename�subdirs�drnras       r'�create_contentszBasicTest.create_contents@ss��	��G������T�\�\�4�G�4�A��H�H�Q�K������a��*�B��b�$��1�����'� ��	� ��s�2B�B	c��	|j|jd�tj|j�|jD]�}tjj|jg|dz���}|jt
jj|��t|d�5}|j|j�d�ddd���tjd��}|j|j�|jD]]}tjj|jg|dz���}|jt
jj|���_y#1swY��=xYw)N�foo)r��rbr�T�r�)r��ENV_SUBDIRSrprqr>r9r:rZrlrHr_r�r`r�r�)rJr�rnrar�s     r'�test_overwrite_existingz!BasicTest.test_overwrite_existingLs��	�	
���T�-�-�u�5����D�L�L�!��'�'�G������d�l�l�B�g��.@�B�B��O�O�B�G�G�N�N�2�.�/��b�$��1�� � �����>�:� ��(��/�/��-�����t�|�|�$��'�'�G������d�l�l�B�g��.@�B�B����R�W�W�^�^�B�/�0�(� ��s�3!E<�<F	c�v�tj|�D]�}tjj||�}tjj	|�stjj|�rtj|��wtjj|�s��t|���yrN)	r9r�r:rZr��isfile�removermr)rJr:rns   r'�clear_directoryzBasicTest.clear_directory^sj���*�*�T�"�B������d�B�'�B��w�w�~�~�b�!�R�W�W�^�^�B�%7��	�	�"�
������r�"��r�
�#r)c��|jddD]�}tjj|jg|���}t|d�5}|j
d�ddd�|jttftj|j�|j|j���y#1swY�\xYw)N�r�r))
r�r9r:rZr>r_r��assertRaises�
ValueError�OSErrorrprqr�)rJr�rnras    r'�test_unoverwritable_failsz#BasicTest.test_unoverwritable_failsfs����%�%�b�q�)�E������d�l�l�3�U�3�B��b�$��1������ ����z�7�3�T�[�[�$�,�,�O�� � ����.�*���s�	B6�6B?	c��	dD�]O}tj|��}|j|j|j�|j|j�|j|j�|j
|j�|j|j|j�}tjj|�sJ|j|j�}td|z�tdtj|�z�|j!tjj|�d|z���Ry)N�FT)r�r~rr�)rpr�rXrqr>rmr@r6r3r[rEr9r:rHr r�rl)rJr�r�rnr�s     r'�test_upgradezBasicTest.test_upgradeos���	�%�G��o�o�g�6�G��!�!�'�.�.�$�,�,�?��J�J�t�{�{�#��J�J�t�|�|�$��D�J�J����!��"�"�4�;�;����9�B��7�7�>�>�"�%��&�&�t�{�{�3���'�"�,�-��h����B��/�0��O�O�B�G�G�N�N�2�.�0G�"�0L�M�%r)c���	dD]]\}}tjd|��}|j|j�|j	d�}|jd|z|��_y)N))T�true)F�falseT)r�r�r|z"include-system-site-packages = %s
)rpr�rqr>rcr�)rJ�ssp�sr�r�s     r'�test_isolationzBasicTest.test_isolation�s[��	�9�F�C���o�o�D�s�K�G��N�N�4�<�<�(��.�.�|�<�D��M�M�?�!�C�T�J�	9r)c��	dD]�}tjd|��}|j|j�|j	|j
|j�}|s�^|jr/|jtjj|����|jtjj|����y)Nr�T�r�r�)
rpr�rqr>r[r@rErIr�r9r:r�rl)rJ�uslr�rns    r'�test_symlinkingzBasicTest.test_symlinking�s���	�!�C��o�o�D�3�?�G��N�N�4�<�<�(��"�"�4�;�;����9�B���'�'��$�$�R�W�W�^�^�B�%7�8��O�O�B�G�G�N�N�2�$6�7�!r)c��	t|j�|jtj|j�t
jjt
jj|j�|j|j�}t|ddg�\}}|j|j�|j��y)Nr��!import sys; print(sys.executable))rr>rXrprqr9r:rZr;r@rEr(r�r�r��rJr�r%r&s    r'�test_executablezBasicTest.test_executable�s���	�	�t�|�|�����d�k�k�4�<�<�8������R�W�W�-�-�d�l�l�;�!�[�[�$�(�(�4�����/�!1�2���S��������e�l�l�n�5r)c���	t|j�tjdd��}|j	|j�t
jjt
jj|j�|j|j�}t|ddg�\}}|j|j�|j��y)NTrr�r
�rr>rpr�rqr9r:rZr;r@rEr(r�r�r��rJr�r�r%r&s     r'�test_executable_symlinksz"BasicTest.test_executable_symlinks�s���	�	�t�|�|���/�/��t�<�����t�|�|�$������R�W�W�-�-�d�l�l�;�!�[�[�$�(�(�4�����/�!1�2���S��������e�l�l�n�5r)r-zonly relevant on Windowsc�J�	t|j�tjj	tjj|j�d�}t
jd��}|j|�tjj	||jd�}tjj	||j|j�}t|d|jddgd�	�\}}|j|j�d
�y)NuϼўТλФЙTr�zactivate.bat�&r�zprint(0)�oemr\�0)rr>r9r:rZr;rpr�rqr@rEr(r�r�)rJr>r��activater�r%r&s       r'�test_unicode_in_batch_filez$BasicTest.test_unicode_in_batch_file�s���	�	�t�|�|���'�'�,�,�r�w�w�/�/����=�~�N���/�/��-�����w���7�7�<�<�����n�E�������W�d�k�k�4�8�8�<���
�s�D�H�H�d�J�7��
���S�	
�������c�*r)c���	t�t|j�|jtj
|j�tjjtjj|j�|j|j�}t|ddg�\}}|j|j�dj��y)Nr�zrfrom multiprocessing import Pool; pool = Pool(1); print(pool.apply_async("Python".lower).get(3)); pool.terminate()�python)rrr>rXrprqr9r:rZr;r@rEr(r�r�r�rs    r'�test_multiprocessingzBasicTest.test_multiprocessing�s���	�	3�4��t�|�|�����d�k�k�4�<�<�8������R�W�W�-�-�d�l�l�;�!�[�[�$�(�(�4�����
�! �!���S�
	
�������h�o�o�&7�8r)c���	t�t|j�|jtj
|j�tjjtjj|j�|j|j�}tjjtd�}tj|d|g�y)Nz_test_venv_multiprocessing.py�-I)rrr>rXrprqr9r:rZr;r@rErr�
check_call)rJr��scripts   r'�test_multiprocessing_recursionz(BasicTest.test_multiprocessing_recursion�s���	�	3�4��t�|�|�����d�k�k�4�<�<�8������R�W�W�-�-�d�l�l�;�!�[�[�$�(�(�4�������m�-L�M�����u�d�F�3�4r)znot relevant on Windowsc��tjd�}|�|jd�t|j�tjd��}|j|j�tjj|j|jd�}tjj|jd�}t|d�5}|jd|�d	��ddd�t||g�\}}|j|d
j!��|j|d
j!��y#1swY�ZxYw)N�bashzbash required for this testTr�rztest_strict.sh�wzset -euo pipefail
source z
deactivate
r})�shutil�which�skipTestrr>rpr�rqr9r:rZr@r_r�r(r�r�)rJr r�r�test_scriptrar%r&s        r'�%test_deactivate_with_strict_bash_optsz/BasicTest.test_deactivate_with_strict_bash_opts�s����|�|�F�#���<��M�M�7�8��t�|�|���/�/��-�����t�|�|�$��7�7�<�<����d�k�k�:�F���g�g�l�l�4�<�<�1A�B��
�+�s�
#�q�
�G�G��&�Z�(#�#�
$�$� ��{� 3�4���S�����b�i�i�k�*�����b�i�i�k�*�
$�
#�s�E	�	Er{zonly relevant on macOSc���t|j�tj�}|j	|j�t
jjt
jj|j�|j|j�}t|ddg�\}}|j|j�dj��y)Nr�z5import os; print("__PYVENV_LAUNCHER__" in os.environ)�Falserrs     r'�test_macos_envzBasicTest.test_macos_envs����t�|�|���/�/�#�����t�|�|�$������R�W�W�-�-�d�l�l�;�!�[�[�$�(�(�4�����C�!E�F���S��������g�n�n�&6�7r)c��	t|j�|jtjz}|j	t
tj|�|j	t
tjt|��yrN)	rr>r9�pathsepr�r�rprqr)rJ�bad_itempaths  r'�test_pathsep_errorzBasicTest.test_pathsep_errorsX��	�	�t�|�|���|�|�b�j�j�0�����*�d�k�k�<�@����*�d�k�k�8�L�3I�Jr)c	�	�	t|j�tj}tj
j
tj��}|jt|�tj
j||j�}t	j|�tjtj|�tj
j|||j d�}t	j"|�tj
j|d�}dtj$ddz}tj
j|||�}g}tj
D�]�}	|	j'd�rUtj
j)|	�s�5tj*|	tj
j||���jtj
j)tj
j|	d��r�t	j,|	�}
t/|	|
�}|
D]�}||vr�|dk(r�tj
j|	|�}
tj
j)|
�rtj0|
|��dtj
j3|
�s��tj4|
tj
j||�t.�������|j7|	����tj
j||j|j8�dd	d
|jg}tj:j|�}t=j>d�}|rt=j@�rJtj
jCtj
jEtj��}tjFdk(rd
}nd}d|||i}tjHjKd�x}r||d<tMjN||��tj
j|j|j|j8�}|dddg}tQ|�\}}|jS|jU�|v�y)Nr�zos.pyzpython%d%d.zipr5z.zipr�)�ignorer�rpr��LIBDIRr{�DYLD_LIBRARY_PATH�LD_LIBRARY_PATH�
PYTHONPATH�ASAN_OPTIONS)�envz-Sr�zimport sys; print(sys.path))+rr>rA�
platlibdirr9r:r;r<r=�
addCleanuprZr@r�r"�copy2rKr3�makedirsrB�endswithr��copyfiler�r
�copyrm�copytree�appendrEr+r��get_config_varr��abspathr�rF�environ�getrrr(rlr�)rJr6�non_installed_dirr@�libdir�landmark�
stdlib_zip�zip_landmark�'additional_pythonpath_for_non_installed�eachpath�names�
ignored_namesr?rnr#�
pythonpath�ld_library_path�ld_library_path_env�	child_env�asan_optionsr�r%r&s                       r'�%test_zippath_from_non_installed_posixz/BasicTest.test_zippath_from_non_installed_posixsi��	�	�t�|�|���^�^�
��G�G�,�,�X�-=�-=�-?�@������ 1�2������/����=��
��������S�^�^�V�,������/��T�X�X�a�[�I��
���F���7�7�<�<���0��%��(8�(8��!�(<�<�
��w�w�|�|�$5�$.�$.�0��35�/����H�� � ��(��7�7�>�>�(�+��O�O� ������%6�
�C�E�����������X�w� ?�@��
�
�8�,�� 6�x�� G�
�!�D��}�,� ���.� ������h��5�B��w�w�~�~�b�)����B��/������r�*�����B�G�G�L�L���,F�/E�G�"�8�>�>���+!�.�w�w�|�|�-�t�{�{�D�H�H�E�����|�|�	���Z�Z�_�_�3�5�
�
$�2�2�8�<���)�";�";�"=� �g�g�o�o�b�g�g�o�o�c�n�n�.M�N�O��<�<�8�#�"5��"3���j�#�_�
�	��:�:�>�>�.�9�9�<�9�(4�I�n�%����c�y�1������T�\�\�4�;�;����A���d�D�"?�@����$���S�����+�+�-��4�5r)c�l�	tj|j�}t|�|j^\}}||zdz}tj|�t|d�5}t|d�D]+\}}d|��}|j|jd�|��-	ddd�y#1swYyxYw)Nrr�r�zCR LF found in line s
)r�r�r>rr�rprqr_�	enumerater�r:)	rJ�venv_dir�scripts_dir�_�script_pathr�i�line�
error_messages	         r'�.test_activate_shell_script_has_no_dos_newlinesz8BasicTest.test_activate_shell_script_has_no_dos_newlinesss���	�
�<�<����-���x��"�.�.���+����,�z�9�����H��
�+�t�
$��$�V�Q�/���4�"6�q�c� :�
�� � ����w�!7��G�0�%�
$�
$�s�%;B*�*B3c��tjj}tjdk(r~dt
t
fdtj�tj�fg}ddl}tjd�}|rcg|�d||f�d|j|�|j|�f�}n6dt
t
fdtj�tj�fg}|D]X\}}}|j|�d|���5|r|j|||��n|j|||��ddd��Zy#1swY�exYw)Nr8Tr�ProgramFilesF�-)rpr��
_same_pathrArFr�lower�upper�_winapir9�getenv�GetShortPathName�GetLongPathNamer�rlr�)rJ�	same_path�testsrb�	progfilesr^�path1�path2s        r'�test_venv_same_pathzBasicTest.test_venv_same_path�s.���O�O�.�.�	��<�<�7�"��v�v�&��v�|�|�~�v�|�|�~�6��E�
��	�	�.�1�I������9�i�0���7�3�3�I�>��@W�@W�Xa�@b�c����v�v�&����������7��E� %�O�A�u�e������q���0�1���O�O�I�e�U�$;�<��$�$�Y�u�e�%<�=�	2�1� %�1�1�s�4E�E		)*rdrerfrmrsrurrr�r�r��requireVenvCreater�r��unittest�
skipUnlessrr�rArFr�rBr�r�r�r�r�rrrrr9r?rrr�skipIfr&r)r-rQr[rkrhr)r'rjrjdsU��)�+�/�/�J�8?�>5�8;�:�=��=�&�F��F�*��X�����(8�9�F�:��F�*�|�|�w��
��
���
�M�C�$4�$4�R�a�$8�8�9�
�M�C�$4�$4�R�a�$8�8�/�J�
��
(�1�$�/�N�*K��X�����(8�9�8�:�8�.�
6��
6��X�����(8�9�6�:�6��X������D��*D�E�+�F�+� �9��9�(�5��5��X�_�_�R�W�W��_�&?�@�+�A�+�$�X�������1�3K�L�	8�M�	8�K��X�_�_�R�W�W��_�&?�@��Q6��A�Q6�fH� >r)rjc��eZdZ	d�Zd�Zd�Zd�Zd�Zejd��Z
e�ed�d���Z
y	)
�
EnsurePipTestc��tjjtjj|j�|j
|j�}t|ddg�\}}|jd�}|j|d�|jd�}|j|j�d�y)Nr�z1try:
 import pip
except ImportError:
 print("OK")�latin-1r}�OK)r9r:rZr;r>r@rEr(r!r�r�rs    r'�assert_pip_not_installedz&EnsurePipTest.assert_pip_not_installed�s��������R�W�W�-�-�d�l�l�;�!�[�[�$�(�(�4�����B�!D�E���S��j�j��#������b�!��j�j��#���������d�+r)c��t|j�|jtj|j�|j�yrN�rr>rXrprqrurOs r'�test_no_pip_by_defaultz$EnsurePipTest.test_no_pip_by_default�s2���t�|�|�����d�k�k�4�<�<�8��%�%�'r)c��t|j�|jtj|jd��|j�y)NF)r�rwrOs r'�test_explicit_no_pipz"EnsurePipTest.test_explicit_no_pip�s7���t�|�|�����d�k�k�4�<�<�%��H��%�%�'r)c��ttjd�5}|j|j	�d�ddd�|jtjjtj��y#1swY�FxYw)Nr�r))r_r9�devnullr�r`rlr:rH)rJras  r'�test_devnullzEnsurePipTest.test_devnull�sW��
�"�*�*�d�
#�q����Q�V�V�X�s�+�$�	
��������r�z�z�2�3�$�
#�s�!B�B
c�X�t|j�t�5}d|d<d|d<tj�5}||d<d}d}d}|fD]�\}}t
jj||�}	tj|	�t
jj|	|�}
t|
d	�5}|j|�ddd���|j�5|jtj|j|d
��ddd�ddd�ddd�t
jjt
jj|j�|j |j"�}t%|dd
ddddddg	�\}
}|j'd�}|j)|d�|
j'd�}
dj+t-j.��}|j)|
dt1|�|�tj2|j�j'd�}|j5||
�t�5}|j�5d|d<t%|dd
dddddg�\}
}ddd�ddd�|j'd�}t7j8dd|t6j:��}	ddl}|j)|jA�d�|
j'd�}
|j5d|
�|s|jC�yy#1swY���xYw#1swY��*xYw#1swY��/xYw#1swY��4xYw#1swY��xYw#1swY��xYw#t>$r*t7j8dd|t6j:��}Y��wxYw)Nr/�PYTHONWARNINGS�1�PIP_NO_INSTALL�HOMEz[global]
no-install=1)r�zpip.ini)z.pipzpip.confr!T)r�r�z-Wzignore::DeprecationWarningzignore::ImportWarningrr�r�z	--versionrsr}zpip {}zensurepip._uninstallzl^(WARNING: )?The directory .* or its parent directory is not owned or is not writable by the current user.*$)�flagsrz<^WARNING: Disabling truststore since ssl support is missing$zSuccessfully uninstalled pip)"rr>rr<r�r9r:rZr�r_r��nicer_errorrXrprqr;r@rEr(r!r��format�	ensurepip�version�len�fsencoder��re�sub�	MULTILINE�ssl�ImportError�rstripru)rJr��envvars�home_dir�
bad_config�win_location�posix_locationr��fname�dirpath�fpathrar�r%r&�expected_versionr>r�s                  r'�do_test_with_pipzEnsurePipTest.do_test_with_pip�s0���t�|�|��
 �
"�g�)1�G�$�%�),�G�$�%��,�,�.�(�"*����5�
� 2��!5��'5�&7�N�G�U� �g�g�l�l�8�W�=�G��H�H�W�%��G�G�L�L��%�8�E��e�S�)�Q����
�+�*�)�	'8��%�%�'��)�)�$�+�+�t�|�|�?S�37�*�9�(�#/�#�F�����R�W�W�-�-�d�l�l�;�T�[�[�$�(�(�S�����.J��,�d��U�K�!)�*���S�
�j�j��#������b�!��j�j��#��#�?�?�9�+<�+<�+>�?������3�c�"2�3�4�6F�G��+�+�d�l�l�+�2�2�9�=���
�
�g�s�#�
!�
"�g��!�!�#�-5��(�)�'���6��1�4��0�)2�3���S�	$�#��j�j��#���f�f�N�OQ�����.��	)��	
�������r�*��j�j��#���
�
�4�c�:�$��)�)�+�$�E*�)��
(�'��#/�.��#�
"��l$�#��#�
"��0�	)��&�&�N���2�<�<�)�C�	)�s��M�A6M�5L*	�M�!.L7�M�M�M*�*M�M*�M6�*L4
�/M�7M�<M�M	�	M�M�M'	�#M*�*M3�60N)�(N)c#�
K�		d��y#tj$rc}|jxsdjd��}|jxsdjd��}|j|�d|�d|���Yd}~yd}~wwxYw�w)Nr)�replace)�errorsz

**Subprocess Output**
z

**Subprocess Error**
)rr"rVr!r�fail)rJ�excr%r&s    r'r�zEnsurePipTest.nicer_error%s�����	�		����,�,�	��:�:�$��,�,�I�,�>�C��:�:�$��,�,�I�,�>�C��I�I��%�*�*-��/)�),��/�
�
��	�s+�B�
�B�B�AA;�6B�;B�B�cpuc�H�|jd�|jd�y)NFT)r�rOs r'�
test_with_pipzEnsurePipTest.test_with_pip8s ��	
���e�$����d�#r)N)rdrerfrurxrzr}r��
contextlib�contextmanagerr�r
rr�rhr)r'rqrq�s^��/�
,�(�
(�
4�^,�@������$���u��$���$r)rq�__main__rN)3r�r�r9�os.pathr�r�r"r�rrAr�r<�test.supportrrrrrrr	r
rrr
�test.support.os_helperrrrrrrmrp�
unittest.mockrr�ctypesr�rnr�r�rCrKrl�SkipTestr(�TestCaser+rjrqrd�mainrhr)r'�<module>r�sE�����	���	�
�
��
���E�E�E�E�
6�6���%���(�H�'�'��J�J�#�/�/�!�.�
���s�~�~�-�@�B��
�G�
�(�
�
�G�
H�H������&�x� � �&�P{>��{>�z�Z$�H�Z$��Z$�z�z���H�M�M�O���}��
�F��s�+D � D*�)D*

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