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-1.pyc

�

'Μg����\�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZmZmZmZmZmZmZmZmZmZmZddlmZmZmZmZmZddlZddl Z ddl!m"Z"m#Z#	ddl$Z$ejLe
jNe
jPk(xse
jRe
jTk7d�Z+eserejXd��e�dd��Z-Gd	�d
ej\�Z/Gd�de/�Z0e+Gd
�de/��Z1e2dk(rejf�yy#e%$rdZ$Y��wxYw)z|
Test harness for the venv module.

Copyright (C) 2011-2012 Vinay Sajip.
Licensed to the PSF under a contributor agreement.
�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�8�eZdZdZdZd�Zd�Zd�Zd�Zdd�d	�Z	y
)�BaseTestzBase class for venv tests.i�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__�__doc__�maxDiffrLrPrXr[rc�r)r'r+r+<s(��$��G�)�&�3�1�6=�r)r+c	�4�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ed	��Zed
��Z
eeje�d�d���Zej&d
k(rdZn,dddddej*ddzfddej*ddzdffZd�Zd�Zd�Zd�Zd�Zd�Zeje�d�d��Zed��Zeje�d�d��Zejej@d k(d!�d"��Z!ed#��Z"ed$��Z#ejHej@d k(d%�d&��Z%ejej&d'k(d(�d)��Z&d*�Z'ejHej@d k(d%�ed+���Z(d,�Z)d-�Z*y).�	BasicTestzTest venv module functionality.c�~�|j|�}|jtjj	|��yrN)r[�
assertTruer9r:�isdir)rJrT�fns   r'rnzBasicTest.isdirgs-��
�T�
�
��
%��������
�
�b�)�*r)c��t|j�|jtj|j�|j�y)zQ
        Test the create function with default arguments and a str path.
        N)rr>rX�venv�create�_check_output_of_default_createrOs r'�test_defaults_with_str_pathz%BasicTest.test_defaults_with_str_pathks4��	�t�|�|�����d�k�k�4�<�<�8��,�,�.r)c��t|j�|jtjt|j��|j
�y)zW
        Test the create function with default arguments and a path-like path.
        N)rr>rXrqrrrrsrOs r'�test_defaults_with_pathlikez%BasicTest.test_defaults_with_pathlikess9��	�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.)rnr@r6r3r[�struct�calcsizer9r?rArFrmr:�islink�assertFalserHrcrC�dirname�assertInr;rKr>rEr �listdir)
rJr$�
conditions�datarKr:�copiesr#ro�bds
          r'rsz)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�ri)rr>rq�
EnvBuilderr�upgrade_dependencies�
_setup_piprXrrrc�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>rrqr�rXrr�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)rqr�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�l�t|j�|jtj|j�t
jj|j|j|j�}|ddg}d|jfd|jfdtjfdtjffD]p\}}d|z|d<t|�\}}|jtj |j#�j%��tj |�|��ry)	z>
        Test that the prefix values are as expected.
        �-cN�prefix�exec_prefix�base_prefix�base_exec_prefixzimport sys; print(sys.%s)r5)rr>rXrqrrr9r: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�fd	tj�ffD]d\}}|j|�5d
|z|d<t!|�\}}|j#|j%�|j'�|�ddd��fy#1swY�qxYw)�R
        Test that the sysconfig functions work in a virtual environment.
        F�r�r�N�zget_preferred_scheme("prefix")rq�zget_default_scheme()rq�is_python_build()�get_makefile_filename()�get_config_h_filename()�%import sysconfig; print(sysconfig.%s)r5�rr>rXrqrrr9r: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�fd	tj�ffD]d\}}|j|�5d
|z|d<t!|�\}}|j#|j%�|j'�|�ddd��fy#1swY�qxYw)r�Tr�r�Nr�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�4�|D]�}tjj|jg|���}tj|�tjj||�}t|d�5}|j
d�ddd���y#1swY��xYw)zn
        Create some files in the environment which are unrelated
        to the virtual environment.
        �wb�Still here?N)r9r:rZr>�mkdirr_�write)rJ�paths�filename�subdirs�droras       r'�create_contentszBasicTest.create_contents@sn��
�G������T�\�\�4�G�4�A��H�H�Q�K������a��*�B��b�$��1�����'� ��	� ��s�1B�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)zE
        Test creating environment in an existing directory.
        �foo)r��rbr�NT�r�)r��ENV_SUBDIRSrqrrr>r9r:rZrmrHr_r�r`r�r�)rJr�rorar�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�2!E;�;F	c�v�tj|�D]�}tjj||�}tjj	|�stjj|�rtj|��wtjj|�s��t|���yrN)	r9r�r:rZr��isfile�removernr)rJr:ros   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�OSErrorrqrrr�)rJr�roras    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)zC
        Test upgrading an existing environment directory.
        �FT)r�rr�r�N)rqr�rXrrr>rnr@r6r3r[rEr9r:rHr r�rm)rJr�r�ror�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)z:
        Test isolation from system site-packages
        ))T�true)F�falseT)r�r�r}z"include-system-site-packages = %s
N)rqr�rrr>rcr�)rJ�ssp�sr�r�s     r'�test_isolationzBasicTest.test_isolation�sV��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)z3
        Test symlinking works as expected
        r�T�r�r�N)
rqr�rrr>r[r@rErIr�r9r:r�rm)rJ�uslr�ros    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)�D
        Test that the sys.executable value is as expected.
        r��!import sys; print(sys.executable)N)rr>rXrqrrr9r: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)rTrr�r
N�rr>rqr�rrr9r: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�H�t|j�tjj	tjj|j�d�}t
jd��}|j|�tjj	||jd�}tjj	||j|j�}t|d|jddgd�	�\}}|j|j�d
�y)z0
        Test handling of Unicode paths
        uϼўТλФЙTr�zactivate.bat�&r�zprint(0)�oemr\�0N)rr>r9r:rZr;rqr�rrr@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)zA
        Test that the multiprocessing is able to spawn.
        r�zrfrom multiprocessing import Pool; pool = Pool(1); print(pool.apply_async("Python".lower).get(3)); pool.terminate()�pythonN)rrr>rXrqrrr9r: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)zG
        Test that the multiprocessing is able to spawn itself
        z_test_venv_multiprocessing.py�-IN)rrr>rXrqrrr9r: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>rqr�rrr9r: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|��y)zn
        Test that venv creation fails when the target directory contains
        the path separator.
        N)	rr>r9�pathsepr�r�rqrrr)rJ�bad_itempaths  r'�test_pathsep_errorzBasicTest.test_pathsep_errorsS��
	�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�d	d
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)zr
        Test that when create venv from non-installed python, the zip path
        value is as expected.
        r�zos.pyzpython%d%d.zipNr5z.zipr�)�ignorer�rqr��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
�copyrn�copytree�appendrEr.r��get_config_varr��abspathr�rF�environ�getrrr(rmr�)rJr9�non_installed_dirr@�libdir�landmark�
stdlib_zip�zip_landmark�'additional_pythonpath_for_non_installed�eachpath�names�
ignored_namesr?ror#�
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_posixsd��	�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�j�tj|j�}t|�|j^\}}||zdz}tj|�t|d�5}t|d�D]+\}}d|��}|j|jd�|��-	ddd�y#1swYyxYw)z�
        Test that the `activate` shell script contains no CR LF.
        This is relevant for Cygwin, as the Windows build might have
        converted line endings accidentally.
        rr�r�zCR LF found in line s
N)r�r�r>rr�rqrrr_�	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)�)B2c��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�-)rqr��
_same_pathrArFr�lower�upper�_winapir9�getenv�GetShortPathName�GetLongPathNamer�rmr�)rJ�	same_path�testsre�	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		)+rdrerfrgrnrtrvrsr�r�r��requireVenvCreater�r��unittest�
skipUnlessrr�rArFr�rBr�r�r�r�rrr
rrr9r?rrr!�skipIfr)r,r0rTr^rnrir)r'rkrkdsU��)�+�/�/�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)rkc��eZdZdZd�Zd�Zd�Zd�Zd�Ze	jd��Ze�e
d�d	���Zy
)�
EnsurePipTestz%Test venv module installation of pip.c��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>rXrqrrrxrOs 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�rzrOs 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`rmr: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)Nr2�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	--versionrvr~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_errorrXrqrrr;r@rEr(r!r��format�	ensurepip�version�len�fsencoder��re�sub�	MULTILINE�ssl�ImportError�rstriprx)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)z�
        Capture output from a failed subprocess for easier debugging.

        The output this handler produces can be a little hard to read,
        but at least it has all the details.
        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�A?�AA:�5B�:A?�?B�cpuc�H�|jd�|jd�y)NFT)r�rOs r'�
test_with_pipzEnsurePipTest.test_with_pip8s ��	
���e�$����d�#r)N)rdrerfrgrxr{r}r�r��
contextlib�contextmanagerr�r
rr�rir)r'rtrt�s^��/�
,�(�
(�
4�^,�@������$���u��$���$r)rt�__main__rN)4rgr�r�r9�os.pathr�r�r%r�rrAr�r<�test.supportrrrrrrr	r
rrr
�test.support.os_helperrrrrrrprq�
unittest.mockrr�ctypesr�rqr�r�rCrKro�SkipTestr(�TestCaser+rkrtrd�mainrir)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