
    ;e-                     (   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 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d Z e!dk    r e e                        dS dS )zTests for distutils.util.    N)copy)run_unittest)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    0/usr/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,   r2   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/   r4   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   r5   _osx_support_remove_original_valuesr   maxsizeenviron)r*   cursizearchs      r,   test_get_platformzUtilTestCase.test_get_platformC   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 NrR   r"   r!   s    r,   _joinz-UtilTestCase.test_convert_path.<locals>._join       88D>>!r-   z/home/to/my/stuff\c                  ,    d                     |           S NrY   rU   rV   s    r,   rW   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"   rI   r	   assertRaises
ValueErrorcurdir)r*   rW   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   rR    rV   s    r,   _isabsz-UtilTestCase.test_change_root.<locals>._isabs   s    7c>!r-   c                  ,    d                     |           S rT   rU   rV   s    r,   rW   z,UtilTestCase.test_change_root.<locals>._join   rX   r-   z/rootz/old/its/herez/root/old/its/herezits/herez/root/its/herer9   c                 ,    |                      d          S )Nzc:\)
startswithrV   s    r,   re   z-UtilTestCase.test_change_root.<locals>._isabs   s    ??6***r-   c                 d    |                      d          rd|                     dd          fS d| fS )Nzc: )rh   replacerV   s    r,   _splitdrivez2UtilTestCase.test_change_root.<locals>._splitdrive   s9    t$$ 4DLLr2233:r-   c                  ,    d                     |           S r[   rU   rV   s    r,   rW   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"   rI   r
   r$   r^   r   )r*   re   rW   rl   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   rM   popr   rI   r   r7   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   rq   zTest requires pwd module.)NNNNN/home/distutilsNgetpwuid)return_valuerx   )side_effect)r   rt   r   rM   ru   pwdImportErrorunittestSkipTeststruct_passwdr   patchobjectr   rI   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)rI   r   r7   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   rI   )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   rI   )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   r2   r5   r(   rP   ra   ro   rv   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   c                  X    t          j                                        t                    S r/   )r~   
TestLoaderloadTestsFromTestCaser   rd   r-   r,   
test_suiter   5  s      66|DDDr-   __main__)"__doc__r   r   r~   r   test.supportr   r   distutils.errorsr   r   distutils.utilr   r	   r
   r   r   r   r   r   r   	distutilsr   distutils.sysconfigr   r   distutils.testsr   rJ   EnvironGuardTestCaser   r   r   rd   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	E E E zL r-   