
    eY-                        d 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mZ ddl	m
Z
mZmZmZmZmZmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlZ G d dej        ej                  Zedk    r ej                     dS dS )zTests for distutils.util.    N)copy)mock)DistutilsPlatformErrorDistutilsByteCompileError)	get_platformconvert_pathchange_rootcheck_environsplit_quoted	strtoboolrfc822_escapebyte_compilegrok_environment_error)util)get_config_vars)	sysconfig)supportc                        e Zd Z fdZ fdZd Zd Zd Zd Zd Z	d Z
 ej        ej        d	k    d
          d             Zd Zd Zd Zd Zd Z xZS )UtilTestCasec                 Z   t          t          |                                            t          j        | _        t
          j        | _        t
          j        | _        t          j        | _        t          j	        j
        | _
        t          j	        j        | _        t          j	        j        | _        t          t          j                  | _        t!          t          d          r*t          j        | _        t          j                    | _        nd | _        d | _        | j        t          _        d S )Nuname)superr   setUposnamesysplatformversionseppathjoinisabs
splitdriver   r   _config_varshasattrr   _uname
_get_unameself	__class__s    +  /home/conda/feedstock_root/build_artifacts/python-split_1708115622739/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.11/distutils/tests/test_util.pyr   zUtilTestCase.setUp   s    lD!!'')))G	{6GL	W]
', !788 2w 	DJ(**DKKDJDK?    c                 &   | j         t          _         | j        t          _        | j        t          _        | j        t          _        | j        t          j        _        | j        t          j        _        | j	        t          j        _	        | j
        | j
        t          _
        nt          `
t          j                                         t          j                            | j                   t          t           |                                            d S N)r   r   r   r   r   r   r!   r    r"   r#   r   r   r$   clearupdater   r   tearDownr(   s    r+   r1   zUtilTestCase.tearDown+   s    )}ly
!_:!zBHH$$&&&%%d&7888lD!!**,,,,,r,   c                     || _         d S r.   r&   )r)   r   s     r+   
_set_unamezUtilTestCase._set_uname<   s    r,   c                     | j         S r.   r3   r)   s    r+   r'   zUtilTestCase._get_uname?   s
    {r,   c                 <   dt           _        dt          _        dt          _        |                     t                      d           dt           _        dt          _        dt          _        |                     t                      d           dt           _        dt          _        dt          _        |                     d	           t          j	        t                                 d
t                      d<   dt                      d<   t          j        }dt          _        	 |                     t                      d           |t          _        n# |t          _        w xY wt          j	        t                                 dt                      d<   dt                      d<   |                     t                      d           t          j	        t                                 dt           j        d<   |                     t                      d           t          j	        t                                 dt                      d<   |                     t                      d           t          j	        t                                 dt                      d<   |                     t                      d           t          j	        t                                 dt                      d<   |                     t                      d           t          j	        t                                 dt                      d<   |                     t                      d           dD ]\}t          j	        t                                 d|dt                      d<   |                     t                      d|           ]dt           _        d t          _        d!t          _        |                     d"           |                     t                      d#           d S )$Nntz>2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)]win32z>2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Amd64)]z	win-amd64posixzU2.5 (r25:51918, Sep 19 2006, 08:49:13) 
[GCC 4.0.1 (Apple Computer, Inc. build 5341)]darwin)Darwinmacziadez8.11.1z]Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386i386z10.3MACOSX_DEPLOYMENT_TARGETzF-fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypesCFLAGSizmacosx-10.3-i386z10.4zy-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-fatz10.1z|-arch x86_64 -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-intelz-arch x86_64 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-fat3z-arch ppc64 -arch x86_64 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-universalz}-arch x86_64 -arch ppc64 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-fat64)ppcr>   x86_64ppc64z-arch ze -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-zV2.3.5 (#1, Jul  4 2007, 17:28:59) 
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)]linux2)Linuxaglaez2.6.21.1dedibox-r7z #1 Mon Apr 30 17:25:38 CEST 2007i686z
linux-i686)r   r   r   r   r   assertEqualr   r4   _osx_support_remove_original_valuesr   maxsizeenviron)r)   cursizearchs      r+   test_get_platformzUtilTestCase.test_get_platformB   s    5111 5555 I B 	C 	C 	C 	,_->->???8>45(O(# +!	"\^^-?@@@!CKK'CK!!!! 	,_->->???8>45(B(#
 	):;;;,_->->???17
-.):;;; 	,_->->???(B(#
 	)<===,_->->???(B(# 	);<<<,_->->???(B(# 	)@AAA,_->->???(B(#
 	)<===6 	G 	GD01B1BCCCC HLtt,NOh'
 \^^^tt-EFFFF O @ 	A 	A 	A 	66666s   !"E Ec                    dt           _        d }|t           j        _        |                     t          d          d           dt           _        d }|t           j        _        |                     t          t
          d           |                     t          t
          d           |                     t          d          d           |                     t          d	          t           j                   d S )
N/c                 ,    d                     |           S NrQ   r!   r    s    r+   _joinz-UtilTestCase.test_convert_path.<locals>._join       88D>>!r,   z/home/to/my/stuff\c                  ,    d                     |           S NrX   rT   rU   s    r+   rV   z-UtilTestCase.test_convert_path.<locals>._join       99T??"r,   zhome/to/my/stuff/zhome/to/my/stuffzhome\to\my\stuff.)	r   r   r    r!   rH   r   assertRaises
ValueErrorcurdir)r)   rV   s     r+   test_convert_pathzUtilTestCase.test_convert_path   s    	" 	" 	"&9::,	. 	. 	. 	# 	# 	#*l4GHHH*l4GHHH&899.	0 	0 	0c**	$ 	$ 	$ 	$ 	$r,   c                 z   dt           _        d }|t           j        _        d }|t           j        _        |                     t          dd          d           |                     t          dd          d           d	t           _        d
 }|t           j        _        d }|t           j        _        d }|t           j        _        |                     t          dd          d           |                     t          dd          d           dt           _        |                     t          t          dd           d S )Nr:   c                     | d         dk    S )Nr   rQ    rU   s    r+   _isabsz-UtilTestCase.test_change_root.<locals>._isabs   s    7c>!r,   c                  ,    d                     |           S rS   rT   rU   s    r+   rV   z,UtilTestCase.test_change_root.<locals>._join   rW   r,   z/rootz/old/its/herez/root/old/its/herezits/herez/root/its/herer8   c                 ,    |                      d          S )Nzc:\)
startswithrU   s    r+   rd   z-UtilTestCase.test_change_root.<locals>._isabs   s    ??6***r,   c                 d    |                      d          rd|                     dd          fS d| fS )Nzc: )rg   replacerU   s    r+   _splitdrivez2UtilTestCase.test_change_root.<locals>._splitdrive   s9    t$$ 4DLLr2233:r,   c                  ,    d                     |           S rZ   rT   rU   s    r+   rV   z,UtilTestCase.test_change_root.<locals>._join   r[   r,   zc:\rootzc:\old\its\herezc:\root\old\its\herezits\herezc:\root\its\here	BugsBunny)
r   r   r    r"   r!   rH   r	   r#   r]   r   )r)   rd   rV   rk   s       r+   test_change_rootzUtilTestCase.test_change_root   sd   	" 	" 	"	" 	" 	"Wo>>-	/ 	/ 	/Wj99)	+ 	+ 	+ 	+ 	+ 	+	 	 	 )	# 	# 	#Z1EFF3	5 	5 	5Z==.	0 	0 	0 0%z;	@ 	@ 	@ 	@ 	@r,   c                    dt           _        t          j                            dd            t                       |                     t          j        d         t                                 |                     t           j        d           d S )Nr   HOMEPLAT   )r   _environ_checkedr   rL   popr
   rH   r   r6   s    r+   test_check_environzUtilTestCase.test_check_environ   si     !

vt$$$F+\^^<<<.22222r,   r:   zspecific to posixc                    dt           _        t          j                            dd            	 dd l}n"# t          $ r t          j        d          w xY w|	                    d          }t          j                            |d|          5  t                       |                     t          j        d         d           d d d            n# 1 swxY w Y   dt           _        t          j                            dd            t          j                            |dt                    5  t                       |                     dt          j                   d d d            d S # 1 swxY w Y   d S )	Nr   rp   zTest requires pwd module.)NNNNN/home/distutilsNgetpwuid)return_valuerw   )side_effect)r   rs   r   rL   rt   pwdImportErrorunittestSkipTeststruct_passwdr   patchobjectr
   rH   KeyErrorassertNotIn)r)   r{   results      r+   test_check_environ_getpwuidz(UtilTestCase.test_check_environ_getpwuid   s    !

vt$$$	AJJJJ 	A 	A 	A#$?@@@	A "" $= > >ZsJVDD 	D 	DOOORZ/1BCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D !"

vt$$$ ZsJHEE 	1 	1OOOVRZ000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s-   3 A5CCC+/E''E+.E+c                 P    |                      t          d          g d           d S )Nz""one"" "two" 'three' \four)onetwothreefour)rH   r   r6   s    r+   test_split_quotedzUtilTestCase.test_split_quoted  s8    &FGG888	: 	: 	: 	: 	:r,   c                     d}d}|D ]$}|                      t          |                     %|D ]$}|                     t          |                     %d S )N)
yYyesTruettruer   Onon1)	nnoffalseoff0OffNoN)
assertTruer   assertFalse)r)   r   r   r   r   s        r+   test_strtoboolzUtilTestCase.test_strtobool  sl    MD 	* 	*AOOIaLL)))) 	+ 	+AYq\\****	+ 	+r,   c                 b    d}t          |          }dddiz  }|                     ||           d S )NzI am a
poor
lonesome
header
z0I am a%(8s)spoor%(8s)slonesome%(8s)sheader%(8s)s8sz	
        )r   rH   )r)   headerreswanteds       r+   test_rfc822_escapezUtilTestCase.test_rfc822_escape  sD    3F##!%):$67f%%%%%r,   c                     t           j        }dt           _        	 |                     t          t          g            |t           _        d S # |t           _        w xY w)NT)r   dont_write_bytecoder]   r   r   )r)   old_dont_write_bytecodes     r+   test_dont_write_bytecodez%UtilTestCase.test_dont_write_bytecode#  sV     #&"9"&	>7rJJJ&=C###&=C#====s   !A	 	Ac                 n    t          d          }t          |          }|                     |d           d S )NzUnable to find batch filez error: Unable to find batch file)IOErrorr   rH   )r)   excmsgs      r+   test_grok_environment_errorz(UtilTestCase.test_grok_environment_error-  s:    122$S))@AAAAAr,   )__name__
__module____qualname__r   r1   r4   r'   rO   r`   rn   ru   r}   
skipUnlessr   r   r   r   r   r   r   r   __classcell__)r*   s   @r+   r   r      s9       # # # # #,- - - - -"    e7 e7 e7R$ $ $0%@ %@ %@R3 3 3 XG+-@AA1 1 BA10: : :+ + +& & &> > >B B B B B B Br,   r   __main__) __doc__r   r   r}   r   r   distutils.errorsr   r   distutils.utilr   r   r	   r
   r   r   r   r   r   	distutilsr   distutils.sysconfigr   r   distutils.testsr   rI   EnvironGuardTestCaser   r   mainrc   r,   r+   <module>r      s     				 



              N N N N N N N N4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4       / / / / / /       # # # # # #    ^B ^B ^B ^B ^B7'): ^B ^B ^BB	 zHMOOOOO r,   