
    <e+Y                     &   	 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
 d dlmZ ddZ G d	 d
          Z G d deej                  Z G d de          Z G d dej                  Zedk    r ej                     dS dS )    N)is_emscripten)	os_helper)warnings_helper)assert_python_ok)FakePath   fooc                     t          | dd          5 }|                    |           d d d            d S # 1 swxY w Y   d S )Nxbr   )openwrite)filenamedatafps      ,/usr/lib/python3.11/test/test_genericpath.pycreate_filer      s    	ha	 	  B
                 s   599c                      e Zd Zg dZg Zd Zd Zd Zd Zd Z	 e
j         eed          d           e
j        ed	          d
                         Zd Zd Zd Zd Zej        d             Z e
j         eed          d          d             Zd Zd Zej        d             Z e
j         eed          d          d             Zd ZdS )GenericTest)commonprefixgetsizegetatimegetctimegetmtimeexistsisdirisfilec                    | j         | j        z   D ]x}|                     t                    5   t	          | j        |                       |                     d                    | j        j        |                    # 1 swxY w Y   yd S )Nz!{}.{}() did not raise a TypeError)	common_attributes
attributesassertRaises	TypeErrorgetattr
pathmodulefailformat__name__)selfattrs     r   test_no_argumentzGenericTest.test_no_argument   s    *T_< 	I 	ID""9-- I I...000ii C!'(@$!G!GI I II I I I I I I I I	I 	Is   AA==B	B	c           	         | j         j        }|                      |g           d           |                      |ddg          d           |                      |ddg          d           |                      |ddg          d           |                      |ddg          d	           |                      |d
dg          d           |                      |d
d
g          d
           |                      |ddg          d           |                      |ddg          d           |                      |ddg          d           |                      |ddg          d           |                      |ddg          d           |                      |ddg          d           g d}|D ]}|D ]} |||g          }|                     |                    |                     |                     |                    |                     ||k    r;t          |          }|                     |||dz            |||dz                       d S )N z/home/swenson/spamz/home/swen/spamz
/home/swenz/home/swen/eggsz/home/swen/zhome:swenson:spamzhome:swen:spamz	home:swenz:home:swen:spamz:home:swen:eggsz:home:swen:s   /home/swenson/spams   /home/swen/spams
   /home/swens   /home/swen/eggss   /home/swen/s   home:swenson:spams   home:swen:spams	   home:swens   :home:swen:spams   :home:swen:eggss   :home:swen:)r*   abcXbcdXbXYabcdaXcabdabaXabcX   )r"   r   assertEqual
assertTrue
startswithlenassertNotEqual)r&   r   testlists1s2pns          r   test_commonprefixzGenericTest.test_commonprefix"   sP   3L	
 	
 	
 	L.0ABCC	
 	
 	
 	L+->?@@	
 	
 	
 	L+->?@@	
 	
 	
 	L-/?@AA	
 	
 	
 	L+->?@@	
 	
 	
 	L+->?@@	
 	
 	

 	L/1CDEE	
 	
 	
 	L,.@ABB	
 	
 	
 	L,.@ABB	
 	
 	
 	L.0ABCC	
 	
 	
 	L,.@ABB	
 	
 	
 	L,.@ABB	
 	
 	

6 6 6 	> 	>B > > L"b**a 0 0111a 0 011188AA''1QqS5	2a!e9===>	> 	>    c                 ~   t           j        }|                     t           j        |           t	          |d           |                     | j                            |          d           t          j	        |           t	          |d           |                     | j                            |          d           d S )Ns   Hello   s   Hello World!   )
r   TESTFN
addCleanupunlinkr   r6   r"   r   osremove)r&   r   s     r   test_getsizezGenericTest.test_getsizee   s    #	((333Hh'''00::A>>>
	(Ho...00::B?????rA   c                 ,   t           j        }|                     t           j        |           t	          |d           t          |dd          5 }|                    d           d d d            n# 1 swxY w Y   t          |dd          5 }|                                }d d d            n# 1 swxY w Y   |                     |d           | 	                    | j
                            |          | j
                            |                     d S )Nr   r2   r      barrbs   foobar)r   rE   rF   rG   r   r   r   readr6   assertLessEqualr"   r   r   )r&   r   fr   s       r   test_filetimezGenericTest.test_filetimep   su   #	((333Hf%%%(D!$$ 	GGFOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 (D!$$ 	6688D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)))O$$X..O$$X..	
 	
 	
 	
 	
s$   A00A47A4B--B14B1c                    t           j        }t          j        |          }|                     t           j        |           |                     | j                            |          d           |                     | j                            |          d           t          |           |                     | j                            |          d           |                     | j                            |          d           |                     | j                            |dz             d           |                     | j                            |dz             d           |                     | j                            |dz             d           |                     | j                            |dz             d           | j        t          ur"|                     | j                            |          d           |                     | j                            |          d           |                     | j                            |dz             d           |                     | j                            |dz             d           |                     | j                            |dz             d           |                     | j                            |dz             d           d S d S )NFT           )r   rE   rH   fsencoderF   rG   assertIsr"   r   r   genericpathlexistsr&   r   	bfilenames      r   test_existszGenericTest.test_exists   sy   #K))		((333do,,X66>>>do,,Y77???Hdo,,X66===do,,Y77>>>do,,X-@AA5IIIdo,,Y-@AA5IIIdo,,X->??GGGdo,,Y-@AA5III?+--MM$/11(;;TBBBMM$/11)<<dCCCMM$/11(X2EFFNNNMM$/11)g2EFFNNNMM$/11(V2CDDeLLLMM$/11)g2EFFNNNNN .-rA   pipezrequires os.pipe()z Emscripten pipe fds have no statc                    t          j                    \  }}	 |                     | j                            |                     t          j        |           t          j        |           n-# t          j        |           t          j        |           w xY w|                     | j                            |                     d S N)rH   r^   r7   r"   r   closeassertFalse)r&   rws      r   test_exists_fdzGenericTest.test_exists_fd   s     wyy1	OODO22155666HQKKKHQKKKK HQKKKHQKKKK//2233333s   -A. .*Bc                    t           j        }t          j        |          }|                     | j                            |          d           |                     | j                            |          d           |                     | j                            |dz             d           |                     | j                            |dz             d           |                     | j                            |dz             d           |                     | j                            |dz             d           	 t          |           |                     | j                            |          d           |                     | j                            |          d           t          j        |           n# t          j        |           w xY w	 t          j	        |           |                     | j                            |          d           |                     | j                            |          d           t          j
        |           d S # t          j
        |           w xY wNFrS   rT   rU   rV   T)r   rE   rH   rW   rX   r"   r   r   rG   mkdirrmdirr[   s      r   
test_isdirzGenericTest.test_isdir   s   #K))	do++H55u===do++I66>>>do++Hx,?@@%HHHdo++I,?@@%HHHdo++Hv,=>>FFFdo++I,?@@%HHH	'!!!MM$///995AAAMM$///	::EBBBX&&&&IX&&&&	&HXMM$///994@@@MM$///	::DAAAOH%%%%%IOH%%%%   A+G GA0I" "I8c                    t           j        }t          j        |          }|                     | j                            |          d           |                     | j                            |          d           |                     | j                            |dz             d           |                     | j                            |dz             d           |                     | j                            |dz             d           |                     | j                            |dz             d           	 t          |           |                     | j                            |          d           |                     | j                            |          d           t          j        |           n# t          j        |           w xY w	 t          j	        |           |                     | j                            |          d           |                     | j                            |          d           t          j
        |           d S # t          j
        |           w xY wrg   )r   rE   rH   rW   rX   r"   r   r   rG   rh   ri   r[   s      r   test_isfilezGenericTest.test_isfile   s   #K))	do,,X66>>>do,,Y77???do,,X-@AA5IIIdo,,Y-@AA5IIIdo,,X->??GGGdo,,Y-@AA5III	'!!!MM$/00::DAAAMM$/00;;TBBBX&&&&IX&&&&	&HXMM$/00::EBBBMM$/00;;UCCCOH%%%%%IOH%%%%rk   c                    t           j        }t           j        dz   }|                     t           j        |           |                     t           j        |           t	          |           |                     | j                            ||                     t	          |           |                     | j                            ||                     | 	                    t          | j        j                   d S N2)r   rE   rF   rG   r   r7   r"   samefilerb   r   r    )r&   file1file2s      r   test_samefilezGenericTest.test_samefile   s      3&	(%000	(%000E00>>???E11%??@@@)T_%=>>>>>rA   c                    t           j        }t           j        dz   }|                     t           j        |           |                     t           j        |           t	          |            |||           |                     | j                            ||                     t          j	        |           t	          |           | 
                    | j                            ||                     d S ro   )r   rE   rF   rG   r   r7   r"   rq   rH   rI   rb   r&   functest_fn1test_fn2s       r   _test_samefile_on_link_funcz'GenericTest._test_samefile_on_link_func   s    ##c)	((333	((333HXx   008DDEEE
	(H11(HEEFFFFFrA   c                 D    |                      t          j                   d S r`   )rz   rH   symlinkr&   s    r   test_samefile_on_symlinkz$GenericTest.test_samefile_on_symlink       ((44444rA   linkzrequires os.linkc                     	 |                      t          j                   d S # t          $ r#}|                     d|z             Y d }~d S d }~ww xY wNzos.link(): %s)rz   rH   r   PermissionErrorskipTestr&   es     r   test_samefile_on_linkz!GenericTest.test_samefile_on_link   k    	/,,RW55555 	/ 	/ 	/MM/A-.........	/   # 
AAAc                 n   t           j        }t           j        dz   }|                     t           j        |           |                     t           j        |           t	          |           t          j        |          }|                     | j        	                    |t          j        |                               t	          |           t          j        |          }| 
                    | j        	                    ||                     |                     t          | j        j	                   d S ro   )r   rE   rF   rG   r   rH   statr7   r"   samestatrb   r   r    )r&   rx   ry   stat1stat2s        r   test_samestatzGenericTest.test_samestat  s    ##c)	((333	((333H!!008I8IJJKKKH!!11%??@@@)T_%=>>>>>rA   c                    t           j        dz   }t           j        dz   }|                     t           j        |           |                     t           j        |           t	          |            |||           |                     | j                            t          j	        |          t          j	        |                               t          j
        |           t	          |           |                     | j                            t          j	        |          t          j	        |                               d S )N1rp   )r   rE   rF   rG   r   r7   r"   r   rH   r   rI   rb   rv   s       r   _test_samestat_on_link_funcz'GenericTest._test_samestat_on_link_func  s&   #c)#c)	((333	((333HXx   001B1B131B1BD D 	E 	E 	E
	(H11"'(2C2C24'(2C2CE E 	F 	F 	F 	F 	FrA   c                 D    |                      t          j                   d S r`   )r   rH   r|   r}   s    r   test_samestat_on_symlinkz$GenericTest.test_samestat_on_symlink"  r   rA   c                     	 |                      t          j                   d S # t          $ r#}|                     d|z             Y d }~d S d }~ww xY wr   )r   rH   r   r   r   r   s     r   test_samestat_on_linkz!GenericTest.test_samestat_on_link&  r   r   c                    t           j        }|                     t           j        |           t	          |           t          |dd          5 }|                                }t          |dd          5 }|                                }|                     | j        	                    ||                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrM   r   )
r   rE   rF   rG   r   r   filenor7   r"   sameopenfile)r&   r   fp1fd1fp2fd2s         r   test_sameopenfilezGenericTest.test_sameopenfile-  sg   #	((333H(D!$$ 	H**,,Cha(( HCjjll < <S# F FGGGH H H H H H H H H H H H H H H	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs7   &C3AC6CC	C	C	
CC!CN)r%   
__module____qualname__r   r   r(   r@   rJ   rQ   r]   unittest
skipUnlesshasattrrH   skipIfr   re   rj   rm   rt   rz   r   skip_unless_symlinkr~   r   r   r   r   r   r    rA   r   r   r      s       B B BJI I IA> A> A>F	@ 	@ 	@
 
 
$O O O6 XV,,.BCCX_]$FGG4 4 HG DC4& & &2& & &2? ? ?G G G "5 5 #"5 XV,,.@AA/ / BA/? ? ? F F F  "5 5 #"5 XV,,.@AA/ / BA/	H 	H 	H 	H 	HrA   r   c                       e Zd ZeZd ZdS )TestGenericTestc                 (   t           j        D ]}|dk    r
t          | j        |          }|                     |          5  |dv r. |d            |d            |d            |d           n|                     t          t          f          5   |d           d d d            n# 1 swxY w Y   |                     t          t          f          5   |d           d d d            n# 1 swxY w Y   | 	                    t          d          5   |d           d d d            n# 1 swxY w Y   | 	                    t          d          5   |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )	Nr   )r'   )r   r   r   u   /tmpabcdss
   /tmpabcdsz
/tmp abcdss
   /tmp abcdszembedded null)r   r   r!   r"   subTestr   OSErrorUnicodeEncodeErrorUnicodeDecodeErrorassertRaisesRegex
ValueError)r&   r'   rw   s      r   test_invalid_pathsz"TestGenericTest.test_invalid_paths?  s   1 	/ 	/D~%%4?D11D4(( / /888D*+++D)***D)))D)******G5G+HII 0 0.///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0**G5G+HII / /-.../ / / / / / / / / / / / / / ///
OLL . ._---. . . . . . . . . . . . . . .//
OLL / /-.../ / / / / / / / / / / / / / // / / / / / / / / / / / / / /	/ 	/s   AFB."F.B22F5B26$FC2&F2C66F9C6:FD0$F0D44F7D48FE."F.E22F5E26FF		F		N)r%   r   r   rY   r"   r   r   rA   r   r   r   9  s*         J/ / / / /rA   r   c                       e Zd Zej        g dz   Zd Zd Zd Z ej	        e
j        d          d             Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd ZdS )
CommonTest)curdirpardirextsepseppathsepdefpathaltsepdevnullnormcase
splitdrive
expandvarsnormpathabspathjoinsplitsplitextisabsbasenamedirnamerZ   islinkismount
expanduserr   realpathc                 f   | j         j        }dD ],} ||          }|                     | ||                     -|                      |d          d           |                      |d          d           d dddg t          d          ddhfD ]}|                     t
          ||           d S )N)z	FoO/./BaRs	   FoO/./BaRr*   rA   Tr   g      @o)r"   r   r6   	bytearrayr   r    )r&   r   r>   paths       r   test_normcasezCommonTest.test_normcasec  s    ?+, 	- 	-AAQ,,,,"r***#,,, 4CYs^^c#YG 	9 	9Di48888	9 	9rA   c                    | j         j        }|                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d	          d
           |                      |d          d           d S )N/foo/bar)r*   r   foo:bar)r*   r   :foo:bar)r*   r      /foo/bar)rA   r      foo:bar)rA   r      :foo:bar)rA   r   )r"   r   r6   )r&   r   s     r   test_splitdrivezCommonTest.test_splitdriveq  s    _/
J//1ABBBI..@@@J//1ABBBK002DEEEJ//1BCCCK002DEEEEErA   c                    | j         j        }t          j                    5 }|                                 d|d<   d|d<   d|d<   |                      |d          d           |                      |d          d           |                      |d	          d
           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d
           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           |                      |d           d!           |                      |d"          d           |                      |d#          d#           d d d            d S # 1 swxY w Y   d S )$Nbarfoobaz1z{foobaz2z{foo}z$foo barzbar barz	${foo}barbarbarz	$[foo]barz$bar barz$?barz$foo}barzbar}barz${fooz${{foo}}zbaz1}z$foo$fooz$bar$barr   s   $foo bars   bar bars	   ${foo}bars   barbars	   $[foo]bars   $bar bars   $?bars   $foo}bars   bar}bars   ${foos   ${{foo}}s   baz1}s   $foo$foos   $bar$bar)r"   r   r   EnvironmentVarGuardclearr6   )r&   r   envs      r   test_expandvarszCommonTest.test_expandvars|  sw   _/
*,, 	CIIKKKCJ CK!CLZZ..666ZZ
33Y???ZZ44h???ZZ44kBBBZZ
33Z@@@ZZ00':::ZZ
33Y???ZZ00':::ZZ
33W===ZZ
33X>>>ZZ
33Z@@@ZZ//888ZZ44jAAAZZ55yAAAZZ55|DDDZZ44kBBBZZ118<<<ZZ44jAAAZZ118<<<ZZ44h???ZZ44i@@@ZZ44kBBB7	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   KK;;K?K?zneed os_helper.FS_NONASCIIc                      j         j         fd}t          j                    5 }|                                 t          j        }||d<   d|z   ||<    |||            |dd|z              |dd|z              |d|z  d	|z              |d
|z  d
|z              |dd|z              |t          j        |          t          j        |                      |dt          j        d|z                        |dt          j        d|z                        |t          j        d|z            t          j        d	|z                        |t          j        d
|z            t          j        d
|z                        |dt          j        d|z                       d d d            d S # 1 swxY w Y   d S )Nc                 F                          |           |           d S r`   )r6   )valueexpectedr   r&   s     r   checkz2CommonTest.test_expandvars_nonascii.<locals>.check  s)    ZZ..99999rA   spamhamz	$spam barz%s barz
${spam}barz%sbarz${%s}barzham%sbarz
$bar%s barz	$spam}barz%s}bars	   $spam bars
   ${spam}bars	   $spam}bar)r"   r   r   r   r   FS_NONASCIIrH   rW   )r&   r   r   nonasciir   s   `   @r   test_expandvars_nonasciiz#CommonTest.test_expandvars_nonascii  sa   _/
	: 	: 	: 	: 	: 	:*,, 	BIIKKK ,H"CK!H,CME(H%%%E+x(2333E,( 2333E*x'h)>???E,)<(+BCCCE+x(2333E"+h''X)>)>???E,Hx,? @ @AAAE-Wx-?!@!@AAAE"+j8344+j83446 6 6E"+lX566+lX5668 8 8E,Hx,? @ @AAA'	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   F
F??GGc                 x   |                      d| j                            d                     t          j                    5  t          j        dt                     |                      d| j                            d                     d d d            n# 1 swxY w Y   t          j        dk    rdnd}t          j                    5  t          j        dt                     dd|ddfD ]5}| 	                    | j                            |          t                     6	 d d d            d S # 1 swxY w Y   d S )	Nr   ignorer   win32rA   s   fs   /foos   C:\)assertInr"   r   warningscatch_warningssimplefilterDeprecationWarningsysplatformassertIsInstancebytes)r&   undecodable_pathr   s      r   test_abspathzCommonTest.test_abspath  s   eT_44U;;<<<$&& 	C 	C!(,>???MM&$/"9"9&"A"ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C
 #&,'"9"933| $&& 	L 	L!(,>???f&6I L L%%do&=&=d&C&CUKKKKL	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	Ls&   A	BBB	AD//D36D3c                 J   |                      d| j                            d                     t          j                    5  t          j        dt                     |                      d| j                            d                     d d d            d S # 1 swxY w Y   d S )Nr   r   r   )r   r"   r   r   r   r   r   r}   s    r   test_realpathzCommonTest.test_realpath  s    eT_55e<<===$&& 	D 	D!(,>???MM&$/":":6"B"BCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   A	BBBc                 v    dD ]5}|                      | j                            |          t                     6d S )N)r*   ./\z///foo/.//bar//)r   r"   r   strr&   r   s     r   test_normpath_issue5827z"CommonTest.test_normpath_issue5827  sH    ; 	G 	GD!!$/":":4"@"@#FFFF	G 	GrA   c                 l    dD ]0}|                      | j                            |          |           1d S )N)rU   zfoo barz  z foozfoo )r6   r"   r   r   s     r   test_normpath_issue106242z$CommonTest.test_normpath_issue106242  sH    L 	C 	CDT_55d;;TBBBB	C 	CrA   c                 |   | j         j        }dD ]&}|                      ||          t                     'd}	 t	          j        |           t          j        |          5  dD ]&}|                      ||          t                     '	 d d d            d S # 1 swxY w Y   d S # t          t          f$ r Y d S w xY w)N)r*   fuuu   fùùz/fuuzU:\u   çwð)
r"   r   r   r   rH   rW   r   temp_cwdAttributeErrorr   )r&   r   r   unicwds       r   test_abspath_issue3426z!CommonTest.test_abspath_issue3426  s.    /)< 	6 	6D!!''$--5555	>K
 #F++ > >D > >D))''$--====>> > > > > > > > > > > > > > > > > >	  23 	 	 	DD	s#   B& !*BB B&B;:B;c                    t           j        rt          j        dvrt           j        }n.t           j        rt           j        }n|                     d           t          j                    5  t          j        dt                     t          j
        |          5  |                                  d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)r   darwin
emscriptenwasizneed os_helper.TESTFN_NONASCIIr   )r   TESTFN_UNDECODABLEr   r   TESTFN_NONASCIIr   r   r   r   r   r  r   )r&   names     r   test_nonascii_abspathz CommonTest.test_nonascii_abspath  sN   ( 
	<
 L III/DD& 	<,DDMM:;;;$&& 	$ 	$!(,>???#D)) $ $!!###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s6   )/CB9-C9B=	=C B=	CCCc                    t          j        dt          fd          5  d}|                     t          |          5  | j                            dd           d d d            n# 1 swxY w Y   |                     t          |          5  | j                            dd           d d d            n# 1 swxY w Y   |                     t          d          5  | j                            dd           d d d            n# 1 swxY w Y   |                     t          d          5  | j                            dd           d d d            n# 1 swxY w Y   |                     t          d          5  | j                            d           d d d            n# 1 swxY w Y   |                     t          d	          5  | j                            g            d d d            n# 1 swxY w Y   |                     t          d
          5  | j                            t          d          t          d                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr*   Tquiet.Can't mix strings and bytes in path components   bytesr   int*   listr   r   rL   )r   check_warningsBytesWarningr   r    r"   r   r   r&   errmsgs     r   test_join_errorszCommonTest.test_join_errors  sN   +R,>dKKK 	K 	KEF''	6:: 6 6$$Xu5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6''	6:: 6 6$$UH5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 ''	599 0 0$$R///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0''	599 0 0$$UB///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0''	599 ) )$$R((() ) ) ) ) ) ) ) ) ) ) ) ) ) )''	6:: ) )$$R((() ) ) ) ) ) ) ) ) ) ) ) ) ) )''	;?? K K$$Yv%6%6	&8I8IJJJK K K K K K K K K K K K K K K	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks  I(A$I($A(	(I(+A(	,I(
B2&I(2B6	6I(9B6	:I(D 4I( D	I(D	I(&EI(E	I(E	I(4FI(F	I("F	#I(G(I((G,	,I(/G,	0I(6II(I	I(I	I((I,/I,c                    t          j        dt          t          ffd          5  d}|                     t
          |          5  | j                            dd           d d d            n# 1 swxY w Y   |                     t
          |          5  | j                            dd           d d d            n# 1 swxY w Y   |                     t
          d          5  | j                            dd           d d d            n# 1 swxY w Y   |                     t
          d          5  | j                            dd           d d d            n# 1 swxY w Y   |                     t
          d	          5  | j                            t          d
          t          d                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr*   Tr  r  r  r   r  r  r   r   rL   )	r   r  r  r   r   r    r"   relpathr   r  s     r   test_relpath_errorszCommonTest.test_relpath_errors  sZ   +l$678F F F 	N 	NEF''	6:: 9 9''%8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9''	6:: 9 9''x8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9''	599 3 3''E2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3''	599 3 3''r2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3''	;?? N N''	&(9(99V;L;LMMMN N N N N N N N N N N N N N N	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	Ns   GA+G+A/	/G2A/	3GB9-G9B=	=G B=	GD;GD	GD	G-E	GE	GE	G;6F=1G=G	GG	GGGc                 B    t          ddd| j        j        z              d S )Nz-Sz-czimport )r   r"   r%   r}   s    r   test_importzCommonTest.test_import  s$    tY1I%IJJJJJrA   N)r%   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r!  r#  r   rA   r   r   r   X  s5       #5 9 9 9 9 9 9	F 	F 	FC C C> X.0LMMB B NMB2L L LD D DG G G
C C C> > >$$ $ $$K K K(N N N K K K K KrA   r   c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )PathLikeTestsc                     t           j        | _        t          t           j                  | _        |                     t           j        | j                   t          | j        d           d S )Ns   test_genericpath.PathLikeTests)r   rE   	file_namer   	file_pathrF   rG   r   r}   s    r   setUpzPathLikeTests.setUp!  sP    ")!)"233	($.999DN$EFFFFFrA   c                 j    |                       || j                   || j                             d S r`   )r6   r(  r'  )r&   rw   s     r   assertPathEqualzPathLikeTests.assertPathEqual'  s6    dn--ttDN/C/CDDDDDrA   c                 N    |                      t          j        j                   d S r`   )r+  rH   r   r   r}   s    r   test_path_existszPathLikeTests.test_path_exists*       RW^,,,,,rA   c                 N    |                      t          j        j                   d S r`   )r+  rH   r   r   r}   s    r   test_path_isfilezPathLikeTests.test_path_isfile-  r.  rA   c                 N    |                      t          j        j                   d S r`   )r+  rH   r   r   r}   s    r   test_path_isdirzPathLikeTests.test_path_isdir0  s     RW]+++++rA   c                     |                      t          j                            | j        | j        g          | j                   d S r`   )r6   rH   r   r   r(  r'  r}   s    r   test_path_commonprefixz$PathLikeTests.test_path_commonprefix3  sD    --t~t~.NOO	) 	) 	) 	) 	)rA   c                 N    |                      t          j        j                   d S r`   )r+  rH   r   r   r}   s    r   test_path_getsizezPathLikeTests.test_path_getsize7  s     RW_-----rA   c                 N    |                      t          j        j                   d S r`   )r+  rH   r   r   r}   s    r   test_path_getmtimez PathLikeTests.test_path_getmtime:  !    RW-.....rA   c                 N    |                      t          j        j                   d S r`   )r+  rH   r   r   r}   s    r   test_path_getctimez PathLikeTests.test_path_getctime=  r9  rA   c                     |                      t          j                            | j        | j                             d S r`   )r7   rH   r   rq   r(  r'  r}   s    r   test_path_samefilez PathLikeTests.test_path_samefile@  s0    ((HHIIIIIrA   N)r%   r   r   r)  r+  r-  r0  r2  r4  r6  r8  r;  r=  r   rA   r   r%  r%    s        G G GE E E- - -- - -, , ,) ) ). . ./ / // / /J J J J JrA   r%  __main__)r   )rY   rH   r   r   r   test.supportr   r   r   test.support.script_helperr   test.support.os_helperr   r   r   TestCaser   r   r%  r%   mainr   rA   r   <module>rD     s       				 



   & & & & & & " " " " " " ( ( ( ( ( ( 7 7 7 7 7 7 + + + + + +   
`H `H `H `H `H `H `H `HF	/ / / / /k8#4 / / />DK DK DK DK DK DK DK DKN"J "J "J "J "JH% "J "J "JJ zHMOOOOO rA   