HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/__pycache__/test_venv.cpython-312.opt-2.pyc
�

h�eq���R�	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZmZmZmZmZmZmZmZmZmZddlmZmZmZddlZddlZddlmZm Z 	ddl!Z!ejFe	jHe	jJk(xse	jLe	jNk7d�Z(eserejRd��e�dd��Z*Gd�d	ejV�Z,Gd
�de,�Z-e(Gd�d
e,��Z.e/dk(rej`�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)�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     �5/opt/alt/python312/lib64/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�bindirr1r4�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<�rHs r%�tearDownzBaseTest.tearDownRs���t�|�|�r'c���t�5}t�5}||i|��ddd�ddd�j�j�fS#1swY�1xYw#1swY�5xYwrL)rr�getvalue)rH�func�args�kwargs�output�errors      r%�run_with_capturezBaseTest.run_with_captureUsd��
�
�	&�&� �"�
&�e��d�%�f�%�
&�	&���� �%�.�.�"2�2�2�
&�
&��	&�	&�s!�A�	A�A�A	�A�A$c�V�tjj|jg|���SrL)r7r8�joinr<)rHrRs  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�rrZ)�openrY�read)rHrrR�f�results     r%�get_text_file_contentszBaseTest.get_text_file_contents^sC��
�#�$�#�#�T�*�C�(�
C�	�q��V�V�X�F�	��
�	��
�s	�7�AN)	�__name__�
__module__�__qualname__�maxDiffrJrNrVrYra�r'r%r)r);s(��$��G�)�&�3�1�6=�r'r)c	�,�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(y),�	BasicTestc�~�|j|�}|jtjj	|��yrL)rY�
assertTruer7r8�isdir)rHrR�fns   r%rkzBasicTest.isdirfs-��
�T�
�
��
%��������
�
�b�)�*r'c��	t|j�|jtj|j�|j�yrL)rr<rV�venv�create�_check_output_of_default_createrMs r%�test_defaults_with_str_pathz%BasicTest.test_defaults_with_str_pathjs9��	�	�t�|�|�����d�k�k�4�<�<�8��,�,�.r'c���	t|j�|jtjtj|j��|j�yrL)rr<rVrnro�pathlib�PathrprMs r%�test_defaults_with_pathlib_pathz)BasicTest.test_defaults_with_pathlib_pathrsB��	�	�t�|�|�����d�k�k�7�<�<����+E�F��,�,�.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.)rkr>r4r1rY�struct�calcsizer7r=r?rDrjr8�islink�assertFalserFrarA�dirname�assertInr9rIr<rCr�listdir)
rHr"�
conditions�datarIr8�copiesr!rl�bds
          r%rpz)BasicTest._check_output_of_default_createzs����
�
�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�rf)rr<rn�
EnvBuilderr�upgrade_dependencies�
_setup_piprVrora�assertNotRegexr7r=�assertRegex)rH�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�F�C��'�'���s�e�.D�E�F����$��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'
)r7r8rBr<rrnr�rVro�ensure_directoriesra�assertEqualr��assertNotInr��basename�getcwd)rH�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)Nr6r,r0r�c	���tjj|d�|d<�j|�dddddg�y)Nr�-m�pip�installr�)r7r8�normcaser�)r!rS�
expect_exerHs  ��r%�pip_cmd_checkerz<BasicTest.test_upgrade_dependencies.<locals>.pip_cmd_checker�sG������)�)�#�a�&�1��A��� � ��"���!�#��
�
r'zvenv.subprocess.check_output)rnr�r?rDr7r8rBrIr:�TemporaryDirectoryr�rXr9r�rr�)rHr��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�
;��,�,�\�:�
;�-	;�	;�,
;�
;��-	;�	;�s%�2B1E�#E�5E�E	�E�Ec�"�	t|j�|jtj|j�t
jj|j|j|j�}|ddg}d|jfd|jfdtjfdtjffD]J\}}d|z|d<t|�\}}|j|j�|j!�|��Ly)N�-c�prefix�exec_prefix�base_prefix�base_exec_prefixzimport sys; print(sys.%s)r3)rr<rVrnror7r8rXr>rCr?r�r�r&r��strip�encode)rH�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�	E��F�H�
1�6�9�C��F�#�C�(�H�C�����S�Y�Y�[�(�/�/�*;�V�D�	Er'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")rn�zget_default_scheme()rn�is_python_build()�get_makefile_filename()�get_config_h_filename()�%import sysconfig; print(sysconfig.%s)r3�rr<rVrnror7r8rXr>rC�str�	sysconfig�is_python_build�get_makefile_filename�get_config_h_filename�subTestr&r�r�r��rHr�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�	F�N�D�(����d�#�
F�@�4�G��A��'��,���S�� � �����h�o�o�.?��E�
F�
F�	F�
F�
F��
�*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�r3r�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�	F�N�D�(����d�#�
F�@�4�G��A��'��,���S�� � �����h�o�o�.?��E�
F�
F�	F�
F�
F�r�r6))r,)r/r-)r.�
site-packages)r0)r4)r1r1r2Nr3r�c�6�	|D]�}tjj|jg|���}tj|�tjj||�}t|d�5}|j
d�ddd���y#1swY��xYw)N�wb�Still here?)r7r8rXr<�mkdirr]�write)rH�paths�filename�subdirs�drlr_s       r%�create_contentszBasicTest.create_contents>s���	��	(�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_SUBDIRSrnror<r7r8rXrjrFr]r�r^r�r�)rHr�rlr_r�s     r%�test_overwrite_existingz!BasicTest.test_overwrite_existingJs(��	�	
���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�|�|�$��'�'�	1�G������d�l�l�B�g��.@�B�B����R�W�W�^�^�B�/�0�	1�
;�
;�s�3!E<�<F	c�v�tj|�D]�}tjj||�}tjj	|�stjj|�rtj|��wtjj|�s��t|���yrL)	r7r�r8rXr��isfile�removerkr)rHr8rls   r%�clear_directoryzBasicTest.clear_directory\so���*�*�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�r7r8rXr<r]r��assertRaises�
ValueError�OSErrorrnror�)rHr�rlr_s    r%�test_unoverwritable_failsz#BasicTest.test_unoverwritable_failsds����%�%�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�)rnr�rVror<rkr>r4r1rYrCr7r8rFrr�rj)rHr�r�rlr�s     r%�test_upgradezBasicTest.test_upgradems���	�%�	N�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�	Nr'c���	dD]]\}}tjd|��}|j|j�|j	d�}|jd|z|��_y)N))T�true)F�falseT)r�r�r|z"include-system-site-packages = %s
)rnr�ror<rar�)rH�ssp�sr�r�s     r%�test_isolationzBasicTest.test_isolation�sb��	�9�	K�F�C���o�o�D�s�K�G��N�N�4�<�<�(��.�.�|�<�D��M�M�?�!�C�T�J�		Kr'c��	dD]�}tjd|��}|j|j�|j	|j
|j�}|s�^|jr/|jtjj|����|jtjj|����y)Nr�T�r�r�)
rnr�ror<rYr>rCrGr�r7r8r�rj)rH�uslr�rls    r%�test_symlinkingzBasicTest.test_symlinking�s���	�!�
	8�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�
	8r'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<rVrnror7r8rXr9r>rCr&r�r�r��rHr�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<rnr�ror7r8rXr9r>rCr&r�r�r��rHr�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)�oemrZ�0)rr<r7r8rXr9rnr�ror>rCr&r�r�)rHr<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<rVrnror7r8rXr9r>rCr&r�r�r�r	s    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||g�y)Nz_test_venv_multiprocessing.py)rrr<rVrnror7r8rXr9r>rCrr�
check_call)rHr��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�f�o�.r'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<rnr�ror7r8rXr>r]r�r&r�r�)rHrr�r�test_scriptr_r#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)�Falserr
s     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jtj|��yrL)
rr<r7�pathsepr�r�rnrorsrt)rH�bad_itempaths  r%�test_pathsep_errorzBasicTest.test_pathsep_errors\��	�	�t�|�|���|�|�b�j�j�0�����*�d�k�k�<�@����*�d�k�k�7�<�<��3M�Nr'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.zipr3z.zipr�)�ignorer�rnr��LIBDIRr{�DYLD_LIBRARY_PATH�LD_LIBRARY_PATH�
PYTHONPATH�ASAN_OPTIONS)�envz-Sr�zimport sys; print(sys.path))+rr<r?�
platlibdirr7r8r9r:r;�
addCleanuprXr>r�r�copy2rIr1�makedirsr@�endswithr��copyfiler�r
�copyrk�copytree�appendrCr(r��get_config_varr��abspathr�rD�environ�getrrr&rjr�)rHr3�non_installed_dirr>�libdir�landmark�
stdlib_zip�zip_landmark�'additional_pythonpath_for_non_installed�eachpath�names�
ignored_namesr=rlr!�
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_posixsu��	�	�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�
�!�
G�D��}�,� ���.� ������h��5�B��w�w�~�~�b�)����B��/������r�*�����B�G�G�L�L���,F�/E�G�
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
)rsrtr<rr�rnror]�	enumerater�r7)	rH�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_newlinesqs���	�
�<�<����-���x��"�.�.���+����,�z�9�����H��
�+�t�
$�	H��$�V�Q�/�
H���4�"6�q�c� :�
�� � ����w�!7��G�
H�	H�	H�	H�s�%;B*�*B3))rbrcrdrkrqrurpr�r�r��requireVenvCreater�r��unittest�
skipUnlessrr�r?rDr�r@r�r�r�r�r�rrr
rr7r=rrr�skipIfr#r&r*rNrXrfr'r%rhrhcsR��)�+�/�/�J�8?�>5�8;�:�E��E�$�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�(�/��/��X�_�_�R�W�W��_�&?�@�+�A�+�$�X�������1�3K�L�	8�M�	8�O��X�_�_�R�W�W��_�&?�@��Q6��A�Q6�fHr'rhc��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)r7r8rXr9r<r>rCr&rr�r�r	s    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�yrL�rr<rVrnrorbrMs 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�rdrMs 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]r7�devnullr�r^rjr8rF)rHr_s  r%�test_devnullzEnsurePipTest.test_devnull�s^��
�"�*�*�d�
#�	,�q����Q�V�V�X�s�+�	,�	
��������r�z�z�2�3�	,�	,�s�!B�B
c���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:��}|j)|j=�d�|
j'd�}
|j5d|
�|s|j?�yy#1swY���xYw#1swY��%xYw#1swY��*xYw#1swY��/xYw#1swY��xYw#1swY��xYw)Nr,�PYTHONWARNINGS�1�PIP_NO_INSTALL�HOMEz[global]
no-install=1)r�zpip.ini)z.pipzpip.confrT)r�r�z-Wzignore::DeprecationWarningzignore::ImportWarningz-Ir�r�z	--versionr`r}zpip {}zensurepip._uninstallzl^(WARNING: )?The directory .* or its parent directory is not owned or is not writable by the current user.*$)�flagszSuccessfully uninstalled pip) rr<rr:r�r7r8rXr�r]r��nicer_errorrVrnror9r>rCr&rr��format�	ensurepip�version�len�fsencoder��re�sub�	MULTILINE�rstriprb)rHr��envvars�home_dir�
bad_config�win_location�posix_locationr��fname�dirpath�fpathr_r�r#r$�expected_versionr<s                 r%�do_test_with_pipzEnsurePipTest.do_test_with_pip�s,���t�|�|��
 �
"�!	9�g�)1�G�$�%�),�G�$�%��,�,�.�
9�(�"*����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����
�+�,�,�	,��%�%�'�9��)�)�$�+�+�t�|�|�?S�37�*�9�9�#
9�!	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�#�
!�
"�	3�g��!�!�#�
3�-5��(�)�'���6��1�4��0�)2�3���S�	
3�	3��j�j��#���f�f�N�OQ�����.��	
�������r�*��j�j��#���
�
�4�c�:�$��)�)�+�$�u,�,��
9�9��#
9�
9��!	9�!	9��l
3�
3��	3�	3�sw�M�A6L?�5L%	�L?�!.L2�L?�M�M%�*M�M%�%L/
�*L?�2L<�7L?�?M		�M�M�M"	�M%�%M.c#�
K�		d��y#tj$rc}|jxsdjd��}|jxsdjd��}|j|�d|�d|���Yd}~yd}~wwxYw�w)Nr'�replace)�errorsz

**Subprocess Output**
z

**Subprocess Error**
)rr rTrr�fail)rH�excr#r$s    r%rqzEnsurePipTest.nicer_error�s�����	�		����,�,�	��:�:�$��,�,�I�,�>�C��:�:�$��,�,�I�,�>�C��I�I��%�*�*-��/)�),��/�
�
��	�s+�B�
�B�B�AA;�6B�;B�B�cpuc�H�|jd�|jd�y)NFT)r�rMs r%�
test_with_pipzEnsurePipTest.test_with_pips ��	
���e�$����d�#r'N)rbrcrdrbrergrjr��
contextlib�contextmanagerrqr
rr�rfr'r%r^r^�s^��/�
,�(�
(�
4�V,�p������$���u��$���$r'r^�__main__rL)1r�rsr7�os.pathrsrwrr�rr?r�r:�test.supportrrrrrrr	r
rrr
�test.support.os_helperrrrrZrn�
unittest.mockrr�ctypes�ImportErrorr[r�r�rArIrY�SkipTestr&�TestCaser)rhr^rb�mainrfr'r%�<module>r�sF�����	���	�
�
��
���E�E�E�E�
N�M���%���(�H�'�'��J�J�#�/�/�!�.�
���s�~�~�-�@�B��
�G�
�(�
�
�G�
H�H������&�x� � �&�P\H��\H�|�R$�H�R$��R$�j�z���H�M�M�O���o��
�F��s�'D�D&�%D&