
    ϶vg!                     4   d Z ddlZddlZddlZddlZddlZddlmZ ddlm	Z
 ddlmZ ddlmZm	Z	 ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlZd Zej        ej                            d           G d dej                                          Z dS )z$Tests for distutils.command.install.    N)	sysconfig)install)	build_ext)INSTALL_SCHEMESr   )Distribution)DistutilsOptionError)	Extension)missing_compiler_executablesupport)is_mingwc                 0    | t          j        d          z   S )N
EXT_SUFFIX)r   get_config_var)modnames    e/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/setuptools/_distutils/tests/test_install.py_make_ext_namer      s    Y-l;;;;    save_envc                   |    e Zd Zej                            dd          d             Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestInstallz=platform.system() == "Windows" and sys.version_info > (3, 11)zpypa/distutils#148)reasonc           	      "   |                                  }t          j                            |d          }t	          ddi          }t          j                            |d          |_        t          j        |t          j                            |d                    |j        d<   t          |          }||_
        |                                 |j        |k    sJ |j        |k    sJ d }t          j        j                            d	d
          }t          j                            |d|          } ||j        |           t'          t          dd          }t          j                            |||          }	 ||j        |	            ||j        |            ||j        t          j                            |d|d                      ||j        t          j                            |d                      ||j        |           d S )Ninstallationnamefoopkgzsetup.pylib)
build_base	build_libbuildc                     t           j                            |           } t           j                            |          }| |k    sJ d S N)ospathnormpath)gotexpecteds     r   
check_pathz=TestInstall.test_home_installation_scheme.<locals>.check_path8   s=    '""3''Cw''11H(??????r   cpythonpython
platlibdirincludebin)mkdtempr"   r#   joinr   script_namer   DummyCommandcommand_objr   homeensure_finalizedinstall_baseinstall_platbasesysimplementationr   replaceinstall_libgetattrinstall_platlibinstall_purelibinstall_headersinstall_scriptsinstall_data)
selfbuilddirdestinationdistcmdr'   	impl_namelibdir_platlibdirr*   s
             r   test_home_installation_schemez)TestInstall.test_home_installation_scheme   s    <<>>gll8^<<VX.//7<<*==$+$8gll8U33%
 %
 %
!
 dmm;....#{2222	# 	# 	#
 &+33IxHH	k5)<<
3?F+++c<77W\\+{IFF

3&
333
3&///
GLLiHEE	
 	
 	
 	
3&[%(H(HIII
3#[11111r   c                                                        _        t          j        }t          j        }|                    t          dt          j                             j        d                     |                    t          dt          j                             j        d                     |                    t          dt          j                   |                    t          dt          j                    fd}|                    t          j        d|           dD ]}|t          v sJ t          dd	i          }t          |          }d
 |j        D             }d|v sJ d|_        t          j                            t          j                  rJ t          j                            t          j                  rJ |                                 t          j                            t          j                  sJ t          j                            t          j                  sJ d|j        v sJ d|j        v sJ t          j                            |j        t          j                  }	t          j        dk    rlt+                      s^t          j                            t          j                            |          |          }
t          j                            |
d          }nt/          j        dd          }t          j                            |d	          }t          j                            |	          t          j                            |          k    sJ d S )N	USER_BASEB	USER_SITESc                     |                      d          r/t          j                            j        | dd          z             S | S )N~   )
startswithr"   r#   r$   tmpdir)r#   r@   s    r   _expanduserz/TestInstall.test_user_site.<locals>._expanduserV   sB    s## @w''d122h(>???Kr   
expanduser)nt_user
posix_userr   xxc                     g | ]\  }}}|	S  rY   ).0r   shortlabels       r   
<listcomp>z.TestInstall.test_user_site.<locals>.<listcomp>d   s    CCC.D%4CCCr   userTuserbaseusersitentIncluder    )r-   rR   siterL   rJ   setattrr"   r#   r.   install_moduler   r   r   user_optionsr^   existsr3   config_varsrelpathr=   r   r   dirnamer   get_python_incnormcase)r@   monkeypatch	orig_site	orig_baserS   keyrC   rD   optionsactual_headers	site_pathr+   expect_headerss   `            r   test_user_sitezTestInstall.test_user_siteK   s    llnnN	N	D+rw||DK/M/MNNND+rw||DK/M/MNNNNKHHHNKHHH	 	 	 	 	
 	BG\;???, 	* 	*C/)))))VTN++dmm DC#2BCCC      7>>$.111117>>$.11111 	 w~~dn-----w~~dn-----S_,,,,S_,,,,)<dnMM7d??8::?	(B(BINNIgll9i88GG.q"55Ggt44w//273C3CN3S3SSSSSSSr   c                 f   t          ddd          }t          |          }|                                 |j        ddgk    sJ |j        dk    sJ |j        dk    sJ dg|_        |                                 |j        dgk    sJ |j        dk    sJ |j        dk    sJ d x|_        |_        |                                 |j        J |j        dk    sJ |j        J d|_        t          j        t                    5  |                                 d d d            d S # 1 swxY w Y   d S )NrW   z	path,dirs)r   
extra_pathr#   dirsrc   zpath,dirs,again)	r   r   handle_extra_pathrx   
extra_dirs	path_filepytestraisesr   r@   rC   rD   s      r   test_handle_extra_pathz"TestInstall.test_handle_extra_path   s   TEEFFdmm 	~&&!11111~''''}&&&& !~&))))~''''}&&&& ,0/#.~%%%~####}$$$ +]/00 	$ 	$!!###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   D&&D*-D*c                 :   t          ddi          }t          |          }d|_        d|_        t	          j        t                    5  |                                 d d d            n# 1 swxY w Y   d |_        d|_        t	          j        t                    5  |                                 d d d            n# 1 swxY w Y   d |_        d|_	        t	          j        t                    5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   rW   prefixbaser2   r^   )
r   r   r   r4   r}   r~   r   finalize_optionsr2   r^   r   s      r   test_finalize_optionsz!TestInstall.test_finalize_options   s   VTN++dmm 
!]/00 	# 	#  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#  ]/00 	# 	#  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
 
]/00 	# 	#  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s6   A))A-0A-B<<C C .DDDc                    |                                  }|                     dgdg          \  }}t          j        |           |                     dd           |                     dd           t          |          }||j        d<   ||_        t          j        	                    |d          |_
        |                                 |                                 t          j        |j
                                      d	
          }d |                                D             }ddt"          j        j         dd dj        t"          j        d d          g}||k    sJ d S )Nhellosayhi)
py_modulesscriptszhello.pyzdef main(): print('o hai')zfrom hello import main; main()r   filelistutf-8encodingc                 @    g | ]}t          j        |          j        S rY   pathlibPathr   rZ   lines     r   r]   z+TestInstall.test_record.<locals>.<listcomp>   %    JJJTd##(JJJr   zhello.z.pycUNKNOWN-0.0.0-py{}.{}.egg-info   )r-   create_distr"   chdir
write_filer   r1   rootr#   r.   recordr3   runr   r   	read_text
splitlinesr6   r7   	cache_tagformatversion_info)r@   install_dirproject_dirrC   rD   contentfoundr&   s           r   test_recordzTestInstall.test_record   sT   llnn ,,	G9,UUT

$@AAA!ABBBdmm&)#W\\+z::
			,sz**44g4FFJJW5G5G5I5IJJJ7S'17773,3S5Ebqb5IJ	
       r   c                 x   t                      }|t          j        d|d           |                                 }|                     t          ddg          g          \  }}t          j        |           t          j	        |           t          |          }t          j        |           |                                 t          |          }||j        d<   ||j        d<   ||_        t          j                            |d          |_        |                                 |                                 t)          j        |j                                      d	
          }d |                                D             }t1          d           dj        t4          j        d d          g}||k    sJ d S )NzThe z command is not foundrW   z
xxmodule.c)ext_modulesr   r   r   r   r   c                 @    g | ]}t          j        |          j        S rY   r   r   s     r   r]   z6TestInstall.test_record_extensions.<locals>.<listcomp>   r   r   r   r   )r
   r}   skipr-   r   r	   r"   r   r   copy_xxmodule_cr   fixup_build_extr3   r   r1   r   r#   r.   r   r   r   r   r   r   r   r   r6   r   )	r@   rD   r   r   rC   buildextcmdr   r   r&   s	            r   test_record_extensionsz"TestInstall.test_record_extensions   s   )++?K;s;;;<<<llnn ,,"4,889 - 
 
T 	,,,oo,,,$$&&&dmm&)#(3%W\\+z::
			,sz**44g4FFJJW5G5G5I5IJJJ4  3,3S5Ebqb5IJ
       r   c                     |                     t          dd           |                    t          j                   |                                  t          d |j        D                       sJ d S )NDEBUGTc              3   D   K   | ]}|j         t          j        k    |V  d S r!   )levelnologgingr   )rZ   recs     r   	<genexpr>z.TestInstall.test_debug_mode.<locals>.<genexpr>   s0      QQ3CK7=4P4P34P4P4P4PQQr   )re   rf   	set_levelr   r   r   anyrecords)r@   caplogrn   s      r   test_debug_modezTestInstall.test_debug_mode   sm    NGT:::'''QQ&.QQQQQQQQQQr   N)__name__
__module____qualname__r}   markxfailrH   rv   r   r   r   r   r   rY   r   r   r   r      s        
 [G#   '2 '2	 '2R5T 5T 5Tn$ $ $:# # #0! ! !2! ! !@R R R R Rr   r   )!__doc__r   r"   r   rd   r6   	distutilsr   distutils.commandr   rf   distutils.command.build_extr   distutils.command.installr   distutils.corer   distutils.errorsr   distutils.extensionr	   distutils.testsr
   r   distutils.utilr   r}   r   combine_markersr   usefixturesTempdirManagerr   rY   r   r   <module>r      su   * *  				   



       7 7 7 7 7 7 1 1 1 1 1 1 > > > > > > > > ' ' ' ' ' ' 1 1 1 1 1 1 ) ) ) ) ) ) @ @ @ @ @ @ @ @ # # # # # # < < < 	$$ZR ZR ZR ZR ZRZR ZR %$ ZR ZR ZRr   