python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_ntpath.cpython-311.pyc

eddlZddlZddlZddlZddlZddlZddlmZddlmZm	Z	ddl
mZddlm
Z
ddlmZ	ddlZn
#e$rdZYnwxYw	ejdZn
#e$rdZYnwxYw	ddlZdZd	Zn
#e$rdZYnwxYwd
ZdZGdd
ejZGddeZGdde
jejZGddeZe dkrej!dSdS)N)	os_helper)
TestFailed
is_emscripten)FakePath)test_genericpath)
TemporaryFileTFctjddj}tjtjtjg|_tj|_||dd}|s3tdtj	tj
|}||||}|d|S)Nkernel32T)use_last_errorrz&failed to get short path name 0x{:08X})ctypesWinDLLGetShortPathNameW	c_wchar_pc_uint32argtypesrestypeOSErrorformatget_last_errorcreate_unicode_buffer)pathGSPN
result_lenresults    D/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_ntpath.py_getshortpathnamer"s}Z===O)6+;V_M
T$a((
	<B!6&"7"9"9::<<
<-j99T$
33
kzk""ct|tttjfr&tjtj|St|drtd|DS|S)N__iter__c3bK|]*}tjtj|V+dSN)ntpathnormcaseosfsdecode.0ps  r	<genexpr>z_norm.<locals>.<genexpr>2s4CCV_R[^^44CCCCCCr)

isinstancebytesstrr$PathLiker"r#r%hasattrtuple)rs r_normr0.sm$R[122Dr{400111	z	"	"DCCdCCCCCCKrc	$|dd}t|}||kr^t|t|kr>tt	|dt	|dt	||dd}|dd}|d	d
}|dd}|d
d}|dd}tj|d}|ddd}tj
5tjdtt|}dddn#1swxYwYt|t|kr>tt	|dt	|dt|dS)N\\\z should return: z but returned: z('z(b'z("z(b"z['z[b'z["z[b"z, 'z, b'z, "z, b"latin1asciibackslashreplaceignore)replaceevalr0rr,r$fsencodedecodeencodewarningscatch_warningssimplefilterDeprecationWarningrepr)fn
wantResult	gotResults   rtesterrE6s	D&	!	!BRIY5#4#4i8H8H#H#HBZ#i...:;;	;
D%	 	 B	D%	 	 B	D%	 	 B	D%	 	 B	E6	"	"B	E6	"	"B	R			)	)B	7.	/	/	6	6w	?	?B		 	"	"h(:;;;HH	
ZE),,,,BZ$y///;<<	<-,s1*F''F+.F+ceZdZdZdZdS)NtpathTestCasec||ks t|t|krdS|||dSr!)r0assertEqual)selfpath1path2s   rassertPathEqualzNtpathTestCase.assertPathEqualOsBE>>U5\\U5\\99F&&&&&rcf|t|t|dSr!)assertInr0)rJrpathsets   rassertPathInzNtpathTestCase.assertPathInTs(

eDkk5>>22222rN)__name__
__module____qualname__rMrQrrrGrGNs2'''
33333rrGceZdZdZdZdZdZdZdZdZ	dZ
d	Zej
ejed
dZej
ejed
dZej
ejed
d
Zej
ejed
dZej
ejed
dZej
ejed
dZej
ejed
dZejed
dZejed
ejeddZdZejejddZdZejeddZ dZ!dZ"ej#e$ddZ%dZ&d Z'ejed!d"Z(d#S)$
TestNtpathcFtddtddtddtddtd	d
tddtd
dtddtddtdddS)Nzntpath.splitext("foo.ext"))foo.extzntpath.splitext("/foo/foo.ext"))z/foo/foorZzntpath.splitext(".ext"))rZzntpath.splitext("\foo.ext\foo"))z\foo.ext\foor[zntpath.splitext("foo.ext\"))zfoo.ext\r[zntpath.splitext(""))r[r[zntpath.splitext("foo.bar.ext"))zfoo.barrZz!ntpath.splitext("xx/foo.bar.ext"))z
xx/foo.barrZz!ntpath.splitext("xx\foo.bar.ext"))z
xx\foo.barrZzntpath.splitext("c:a/b\c.d"))zc:a/b\cz.drErJs r
test_splitextzTestNtpath.test_splitextYs+_===02FGGG(,77724JKKK-/@AAA$h////1DEEE24JKKK35LMMM.0BCCCCCrcvtddtddtddtddtd	d
tddtd
dtdd|tjddtddtddtddtddtddtddtdd td!d"td#d$td%d&td'd(td)d*td+d,td-d.td/d0td1d2td3d4td5d6td7d8td9d:td;d<td=d>td?d@tdAdBtdCdDdS)ENzntpath.splitdrive("c:\foo\bar"))c:\foo\barzntpath.splitdrive("c:/foo/bar"))r`/foo/barz/ntpath.splitdrive("\\conky\mountpoint\foo\bar"))z\\conky\mountpointraz/ntpath.splitdrive("//conky/mountpoint/foo/bar"))z//conky/mountpointrbz0ntpath.splitdrive("\\\conky\mountpoint\foo\bar"))z\\\conky\mountpoint\foo\barz0ntpath.splitdrive("///conky/mountpoint/foo/bar"))z///conky/mountpoint/foo/barz0ntpath.splitdrive("\\conky\\mountpoint\foo\bar"))z\\conky\rcz0ntpath.splitdrive("//conky//mountpoint/foo/bar"))z//conky/rdu//conky/MOUNTPOİNT/foo/bar)u//conky/MOUNTPOİNTrbzntpath.splitdrive("//?/c:"))//?/c:r[zntpath.splitdrive("//?/c:/"))re/zntpath.splitdrive("//?/c:/dir"))re/dirzntpath.splitdrive("//?/UNC"))z//?/UNCr[zntpath.splitdrive("//?/UNC/"))z//?/UNC/r[z$ntpath.splitdrive("//?/UNC/server/"))z//?/UNC/server/r[z)ntpath.splitdrive("//?/UNC/server/share"))//?/UNC/server/sharer[z-ntpath.splitdrive("//?/UNC/server/share/dir"))rhrgzJntpath.splitdrive("//?/VOLUME{00000000-0000-0000-0000-000000000000}/spam"))z0//?/VOLUME{00000000-0000-0000-0000-000000000000}z/spamz'ntpath.splitdrive("//?/BootPartition/"))z//?/BootPartitionrfzntpath.splitdrive("\\?\c:"))\\?\c:r[zntpath.splitdrive("\\?\c:\"))rir2zntpath.splitdrive("\\?\c:\dir"))ri\dirzntpath.splitdrive("\\?\UNC"))z\\?\UNCr[zntpath.splitdrive("\\?\UNC\"))z\\?\UNC\r[z$ntpath.splitdrive("\\?\UNC\server\"))z\\?\UNC\server\r[z)ntpath.splitdrive("\\?\UNC\server\share"))\\?\UNC\server\sharer[z-ntpath.splitdrive("\\?\UNC\server\share\dir"))rkrjzJntpath.splitdrive("\\?\VOLUME{00000000-0000-0000-0000-000000000000}\spam"))z0\\?\VOLUME{00000000-0000-0000-0000-000000000000}z\spamz'ntpath.splitdrive("\\?\BootPartition\"))z\\?\BootPartitionr2zntpath.splitdrive("//"))z//r[zntpath.splitdrive("///"))z///r[zntpath.splitdrive("///y"))z///yr[zntpath.splitdrive("//x"))z//xr[zntpath.splitdrive("//x/"))z//x/r[)rErIr"
splitdriver]s rtest_splitdrivezTestNtpath.test_splitdrivees2#	%	%	%0!	#	#	#E6	8	8	8@1	3	3	3G5	7	7	7A/	1	1	1G8	:	:	:A2	4	4	4	
*+HII<	>	>	>	,n===-???02DEEE-???.0@AAA57NOOO:<XYYY>@`aaa[L	N	N	N8:TUUU/1BCCC13FGGG46LMMM02DEEE24HIII:<XYYY?AbcccD5	7	7	7_P	R	R	R<>\]]]	(*555);777*L999);777*L99999rctddtddtddtddtd	d
tdddS)
Nzntpath.split("c:\foo\bar"))zc:\foobarz*ntpath.split("\\conky\mountpoint\foo\bar"))z\\conky\mountpoint\foorozntpath.split("c:\"))c:\r[z#ntpath.split("\\conky\mountpoint\"))z\\conky\mountpoint\r[zntpath.split("c:/"))c:/r[z#ntpath.split("//conky/mountpoint/"))z//conky/mountpoint/r[r\r]s r
test_splitzTestNtpath.test_splits-/ABBB@4	6	6	6	%|4448.	0	0	0	$k22246QRRRRRrctddtddtddtddtddtdddS)Nzntpath.isabs("c:\")z#ntpath.isabs("\\conky\mountpoint\")zntpath.isabs("\foo")zntpath.isabs("\foo\bar")z"ntpath.isabs("\\conky\mountpoint")zntpath.isabs("\\.\C:")r\r]s r
test_isabszTestNtpath.test_isabssp%q)))8!<<<&***+Q///	6:::*A.....rcftddtddtdddS)Nz>ntpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"])z
/home/swenz;ntpath.commonprefix(["\home\swen\spam", "\home\swen\eggs"])z\home\swen\z;ntpath.commonprefix(["/home/swen/spam", "/home/swen/spam"])z/home/swen/spamr\r]s rtest_commonprefixzTestNtpath.test_commonprefixsTO			R	!	!	!L 	"	"	"	"	"rc	tddtddtddtddtdd	td
dtdd
tddtddtddtddtddtddtddtddtddtddtddtddtd dtd!d"td#d$td%d&td'd(td)d*td+d,td-d.td/d0td1d2td3d4td5d6td7d8td9d:td;d<td=d<td>d0td?d0td@d0tdAd0tdBd8tdCd8tdDd8tdEdFtdGdHtdIdJtdKdLdMD]}dND]}tdO|dP|dQ|tdRdStdTdStdUdStdVdWtdXdYtdZd[dS)\Nzntpath.join("")r[zntpath.join("", "", "")zntpath.join("a")azntpath.join("/a")z/azntpath.join("\a")\azntpath.join("a:")za:zntpath.join("a:", "\b")za:\bzntpath.join("a", "\b")z\bzntpath.join("a", "b", "c")za\b\czntpath.join("a\", "b", "c")zntpath.join("a", "b\", "c")zntpath.join("a", "b", "\c")z\czntpath.join("d:\", "\pleep")zd:\pleepzntpath.join("d:\", "a", "b")zd:\a\bzntpath.join('', 'a')z ntpath.join('', '', '', '', 'a')zntpath.join('a', '')za\z ntpath.join('a', '', '', '', '')zntpath.join('a\', '')z!ntpath.join('a\', '', '', '', '')zntpath.join('a/', '')za/zntpath.join('a/b', 'x/y')za/b\x/yzntpath.join('/a/b', 'x/y')z/a/b\x/yzntpath.join('/a/b/', 'x/y')z/a/b/x/yzntpath.join('c:', 'x/y')zc:x/yzntpath.join('c:a/b', 'x/y')z	c:a/b\x/yzntpath.join('c:a/b/', 'x/y')z	c:a/b/x/yzntpath.join('c:/', 'x/y')zc:/x/yzntpath.join('c:/a/b', 'x/y')z
c:/a/b\x/yzntpath.join('c:/a/b/', 'x/y')z
c:/a/b/x/yz&ntpath.join('//computer/share', 'x/y')z//computer/share\x/yz'ntpath.join('//computer/share/', 'x/y')z//computer/share/x/yz*ntpath.join('//computer/share/a/b', 'x/y')z//computer/share/a/b\x/yzntpath.join('a/b', '/x/y')z/x/yzntpath.join('/a/b', '/x/y')zntpath.join('c:', '/x/y')zntpath.join('c:a/b', '/x/y')zntpath.join('c:/', '/x/y')zntpath.join('c:/a/b', '/x/y')z'ntpath.join('//computer/share', '/x/y')z(ntpath.join('//computer/share/', '/x/y')z)ntpath.join('//computer/share/a', '/x/y')zntpath.join('c:', 'C:x/y')zC:x/yzntpath.join('c:a/b', 'C:x/y')z	C:a/b\x/yzntpath.join('c:/', 'C:x/y')zC:/x/yzntpath.join('c:/a/b', 'C:x/y')z
C:/a/b\x/y)
r[za/bz/a/br`zc:a/brqzc:/a/bz//computer/sharez//computer/share/z//computer/share/a/b)zd:zd:x/yzd:/zd:/x/yz//machine/commonz//machine/common/z//machine/common/x/yzntpath.join(z, )z*ntpath.join('\\computer\share\', 'a', 'b')z\\computer\share\a\bz)ntpath.join('\\computer\share', 'a', 'b')z&ntpath.join('\\computer\share', 'a\b')z*ntpath.join('//computer/share/', 'a', 'b')z//computer/share/a\bz)ntpath.join('//computer/share', 'a', 'b')z//computer/share\a\bz&ntpath.join('//computer/share', 'a/b')z//computer/share\a/br\)rJxys   r	test_joinzTestNtpath.test_joins "%%%("---!3'''"D)))#U+++"D))))7333(%000+Y777-y999-y999-u555/===.
;;;%s+++13777%u---15999'///3U;;;&---*J777+[999,j999)7333,l;;;-{;;;*H555-}===.===79PQQQ8:PQQQ;=XYYY+V444,f555*H555-x888+X666.9998:PQQQ9;QRRR:<RSSS+W555.===,h777/???S	:	:AW
:
:1115q9999
:	?A\]]]=?Z[[[;=XYYY;=TUUU:<TUUU79PQQQQQrcFtddtddtddtddtddtd	d
tddtd
dtddtddtddtddtddtddtddtddtddtddtd d!td"d#td$d%td&d'td(d)td*d+td,d-td.d/td0d1td2d1td3d1td4d1td5d6td7d8td9d:td;d<dS)=Nz$ntpath.normpath('A//////././//.//B')zA\Bzntpath.normpath('A/./B')zntpath.normpath('A/foo/../B')zntpath.normpath('C:A//B')zC:A\Bzntpath.normpath('D:A/./B')zD:A\Bzntpath.normpath('e:A/foo/../B')ze:A\Bzntpath.normpath('C:///A//B')zC:\A\Bzntpath.normpath('D:///A/./B')zD:\A\Bz"ntpath.normpath('e:///A/foo/../B')ze:\A\Bzntpath.normpath('..')..zntpath.normpath('.').zntpath.normpath('')zntpath.normpath('/')r2zntpath.normpath('c:/')rpzntpath.normpath('/../.././..')zntpath.normpath('c:/../../..')zntpath.normpath('../.././..')..\..\..zntpath.normpath('K:../.././..')z
K:..\..\..zntpath.normpath('C:////a/b')zC:\a\bz'ntpath.normpath('//machine/share//a/b')z\\machine\share\a\bzntpath.normpath('\\.\NUL')\\.\NULzntpath.normpath('\\?\D:/XY\Z')z\\?\D:/XY\Zz1ntpath.normpath('handbook/../../Tests/image.png')z..\Tests\image.pngz4ntpath.normpath('handbook/../../../Tests/image.png')z..\..\Tests\image.pngz.ntpath.normpath('handbook///../a/.././../b/c')z..\b\cz/ntpath.normpath('handbook/a/../..///../../b/c')z	..\..\b\cz$ntpath.normpath('//server/share/..')\\server\share\z%ntpath.normpath('//server/share/../')z'ntpath.normpath('//server/share/../..')z(ntpath.normpath('//server/share/../../')zntpath.normpath('\\foo\\')z\\foo\\zntpath.normpath('\\foo\')z\\foo\zntpath.normpath('\\foo')z\\foozntpath.normpath('\\')r3r\r]s r
test_normpathzTestNtpath.test_normpathsS5v>>>)6222.777*H555+X6660(;;;-y999.	:::3Y???&...%t,,,$d+++%t,,,'000/666/888.<<<0-@@@-y9998:PQQQ.
;;;3^DDDBDYZZZEG_```?KKK@,OOO5;PQQQ6;PQQQ8;PQQQ9;PQQQ	/???-{;;;+Y777(&11111rctjtj}t	d|t	d|t	d|t	d|t	d|dS)Nzntpath.realpath('.')zntpath.realpath('./.')z&ntpath.realpath('/'.join(['.'] * 100))zntpath.realpath('.\.')z&ntpath.realpath('\'.join(['.'] * 100)))r"normpathr$getcwdrErJexpecteds  rtest_realpath_curdirzTestNtpath.test_realpath_curdir$sr?29;;//%x000'2227BBB((3338(CCCCCrctjtj}t	dtj|t	dtjtj|t	dtj|ddzt	dtjtj|t	dtj|ddzdS)Nzntpath.realpath('..')zntpath.realpath('../..')z&ntpath.realpath('/'.join(['..'] * 50))rr2zntpath.realpath('..\..')z&ntpath.realpath('\'.join(['..'] * 50)))r"rr$rrEdirnamerlrs  rtest_realpath_pardirzTestNtpath.test_realpath_pardir,s?29;;//&x(@(@AAA)~fnX6677	9	9	97 **1-4	6	6	6*~fnX6677	9	9	98 **1-4	6	6	6	6	6rzneed _getfinalpathnamecftjtj}t	|d|tj||tj|dztj	||dz|
tj|dz||
tjtj|dztj|tjD]}|d}tj|snt!d|tj||||dztjtjdzddS)Nwb1z:\zNo free drive letters availablespamFstrict)r"abspathrTESTFNopenclose
addCleanupunlinkr$symlinkrMrealpathr:stringascii_uppercaseexistsrrI)rJABSTFNcds    rtest_realpath_basiczTestNtpath.test_realpath_basic8s	 011VT  """	(&111	(&3,777

66C<(((V_Vc\::FCCCV_R[#-F-FGGV,,	.	.	.
'	=	=A			A=##

;<<<++Q///	
(*)9H)DUSSS	U	U	U	U	Urctjtj}t	j|dz||tj||ttj
|d|ttj
|dzd|ttj
|dzddS)NrTr2r)r"rrrr$rrrassertRaisesFileNotFoundErrorrrrJrs  rtest_realpath_strictzTestNtpath.test_realpath_strictSs
	 011

6C<(((	(&111+V_fTRRR+V_fslSWXXX'6?FX4EdSSSSSrctjtj}t	|d|tj||tj|dztj	|tj
|dz|tj|dz|dS)Nrr)
r"rrrrrrrr$rrelpathrMrrs  rtest_realpath_relativez!TestNtpath.test_realpath_relative`s	 011VT  """	(&111	(&3,777

66>&3,77888V_Vc\::FCCCCCrc|	tjtj}t	j||tj|tj|5t	jdt	j	dt	j
ddt	j
ddt	j	dt	j
ddt	j
ddt	j
d	d
t	j
ddt	j
d
dt	j
|dzdt	j
dd|tjd|dz|tjd|dz|tjd
|dz|tjd|dz|tjd|dz|tjd|dz|tjd|dz|tjd|dz|tjdt	j
|dz|tjdt	j
|dz|tjdt	j
|dz|tjdt	j
|dz|tjdt	j
|dz|tjd t	j
|dz|tjd!t	j
|dz|tjd"t	j
|dzddddS#1swxYwYdS)#Nsubdirr	recursiverparentrJmissingbrokenz
broken\barbroken1zself\self\brokenbroken2z"subdir\parent\subdir\parent\brokenbroken3z\brokenbroken4zrecursive\..\brokenbroken5z\missingz
broken\fooz\missing\fooz\broken\barzbroken1\bazz\broken\bar\bazz\self\self\missingz$\subdir\parent\subdir\parent\missingsbrokens
broken\foosbroken1sbroken1\bazsbroken2sbroken3sbroken4sbroken5)r"rrrr$mkdirrrmtree
change_cwdchdirrrMrr:rs  rtest_realpath_broken_symlinksz(TestNtpath.test_realpath_broken_symlinksks	 011
	(&111

!&
)
)0	D0	DHXHXJsK(((JtX&&&HTNNNJsF###Jy(+++J}i000J*I666J<iHHHJv
*I666J-y999  !:!:!'+!5
7
7
7  !?!?!'/!9
;
;
;
  !<!<!'.!8
:
:
:  !@!@!'*<!<
>
>
>  !;!;!'*?!?
A
A
A  !;!;!'*Q!Q
S
S
S  !;!;!'+!5
7
7
7  !;!;!'+!5
7
7
7
  !;!;!#Vk-A!B!B
D
D
D  !@!@!#Vo-E!F!F
H
H
H  !=!=!#Vn-D!E!E
G
G
G  !A!A!#V6H-H!I!I
K
K
K  !<!<!#V6K-K!L!L
N
N
N  !=!=!#V6]-]!^!^
`
`
`  !<!<!#Vk-A!B!B
D
D
D  !<!<!#Vk-A!B!B
D
D
D_0	D0	D0	D0	D0	D0	D0	D0	D0	D0	D0	D0	D0	D0	D0	D0	D0	D0	Ds'P=R11R58R5cltjtj}|tj||tj|dz|tj|dz|tj|dz|tj|dz|tj|dzt
j|||tj	||t
j|dz|dzt
j|dz|dz|dz|dzf}|
tj	|dz||
tj	|dz||
tj	|dzd|D|tj	|dztj||tj	|d	ztj|d
zt
j|dz|dz|tj	|dztj|zdz|dz|
tj	|dztj|zdz|t
jtj|d
z|dz|tj	|dz|dzt
jdtjtj|zdztj|zdz|dz|tj	|dz|dz|tj	tj||dS)Nrrr}rry1\xc3@K|]}tj|dVdS)r|N)r"join)r'rs  rr)z9TestNtpath.test_realpath_symlink_loops.<locals>.<genexpr>s.AA16;q#..AAAAAAr1\..1\..\xz\xr|1\..\a\b..\r2)
r"rrrrrr$rrMrrQrbasename)rJrrs   rtest_realpath_symlink_loopsz&TestNtpath.test_realpath_symlink_loopss	 011	(&111	(&3,777	(&3,777	(&3,777	(&3,777	(&3,777

66"""V_V44f===

6C<#...

6C<#...SL&3,/&/&3,77BBB&/&3,77BBB&/&6/::AAAAA	C	C	CV_Vg-=>>#^F33	5	5	5V_Vj-@AA#^F33e;	=	=	=

6C<#...V_Vi-?/5v/F/F.GIL.MNN#c\	+	+	+	
&/&9*<,2OF,C,C+DFI+JKK"	$	$	$	
6?6**V3Vc\BBBV_Vc\::FSLIII

6FOFN6,B,BCCC"OF33469:;AC<	I	I	IV_Vc\::FSLIII	
V_V_V-D-DEEvNNNNNrctjtj}|tj||tj|dz|tj|dz|tj|dz|tj|dz|tj|dzt
j|||ttj
|dt
j|dz|dzt
j|dz|dz|ttj
|dzd|ttj
|dzd|ttj
|dzd|tj
|d	zdtj||ttj
|d
zdt
j|dz|dz|ttj
|dztj
|zdzd|ttj
|dztj
|zdzdt
jtj
|d
z|dz|ttj
|dzdt
jdtj
tj|zdztj
|zdz|dz|ttj
|dzd|ttj
tj
|ddS)Nrrr}rryTrrrrr|rrrr2)r"rrrrrr$rrrrrMrrrs  r"test_realpath_symlink_loops_strictz-TestNtpath.test_realpath_symlink_loops_stricts	 011	(&111	(&3,777	(&3,777	(&3,777	(&3,777	(&3,777

66"""'6?F4HHH

6C<#...

6C<#...'6?FSLNNN'6?FSLNNN'6?FVODQQQ	
V_Vg-=dKKK#^F33	5	5	5'6?FZ4GPTUUU

6C<#...'6?FY4F/5v/F/F5GIL5M48		:	:	:	
'6? 9,vv/F/FFL!%		'	'	'	
6?6**V3Vc\BBB'6?FSLNNN

6FOFN6,B,BCCC"OF33469:;AC<	I	I	I'6?FSLNNN	
'6?FOF4K4K!%		'	'	'	'	'rctjtj}|tj|dz|tjd|zdz|tj|dz|tj|dzt
|dzd5}|ddddn#1swxYwYtj	|dz|dzt
d|zdzd5}|ddddn#1swxYwYtj	d|zdz|dz|
tj|dz|dz|
tj|dzd|zdzt
tj|dzd	5}||
ddddn#1swxYwYt
tj|dzd	5}||
ddddn#1swxYwY|
tjd|zdzd|zdz|
tjd|zdzd|zdzdS)
N3z\\?\z3.3linkz3.linkr01rb)r"rrrrrrwriter$rrMrrIread)rJrfs   rtest_realpath_symlink_prefixz'TestNtpath.test_realpath_symlink_prefixs	 011	(&3,777	()f*<t*CDDD	(&7*:;;;	(&8*;<<<
&3,
%
%	
GGDMMM															

6C<'!1222
)f$t+T
2
2	a
GGDMMM															

9v%,fx.?@@@V_Vg-=>>#c\	+	+	+V_Vh->??&/$6	8	8	8&/&7"233T
:
:	-aQVVXXt,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
&/&8"344d
;
;	-qQVVXXt,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	
V_Y-?'-IJJ&/#5	7	7	7V_Y-?(-JKK&/$6	8	8	8	8	8sHC##C'*C'EEE.)H##H'*H')JJJc&tdddS)Nzntpath.realpath('NUL')rr\r]s rtest_realpath_nulzTestNtpath.test_realpath_nul!s'44444rzneed _getshortpathnamectjtj}tj|tj|t
j||tj|tj	|d}t
j|t|}tj	|d}tj	|d}t|d5}|ddddn#1swxYwY|
|tj|tj|5|
|tjddddn#1swxYwYtj|5|
|tjddddn#1swxYwYtj|5|
|tjdddddS#1swxYwYdS)NMyVeryLongDirectoryNamezfile.txtrscontent)r"rrrrrr$rrrrrrrMrrlower)rJr
test_dir_longtest_dir_shorttest_file_longtest_file_shortrs       rtest_realpath_cwdzTestNtpath.test_realpath_cwd%s)	 011      
	(&111F,EFF

*=99]J?? +njAA
.$
'
'	 1
GGJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
^V__-M-MNNN

!-
0
0	N	N  1L1LMMM	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N

!-"5"5"7"7
8
8	N	N  1L1LMMM	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N

!.
1
1	N	N  1L1LMMM	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	NsH-DDD)FFF<)G11G58G5)II

I
ctj5}|d|d<d|d<d|d<tddtdd	td
dtdd
tddtddtddtddtddtddtddtdd	tddtddtddtd d!td"d#td$d%td&d'ddddS#1swxYwYdS)(NrorYbaz1z{foobaz2z{foo}zntpath.expandvars("foo")zntpath.expandvars("$foo bar")zbar barzntpath.expandvars("${foo}bar")barbarzntpath.expandvars("$[foo]bar")z	$[foo]barzntpath.expandvars("$bar bar")z$bar barzntpath.expandvars("$?bar")z$?barzntpath.expandvars("$foo}bar")zbar}barzntpath.expandvars("${foo")z${foozntpath.expandvars("${{foo}}")zbaz1}zntpath.expandvars("$foo$foo")zntpath.expandvars("$bar$bar")z$bar$barzntpath.expandvars("%foo% bar")zntpath.expandvars("%foo%bar")zntpath.expandvars("%foo%%foo%")z$ntpath.expandvars("%%foo%%foo%foo%")z%foo%foobarzntpath.expandvars("%?bar%")z%?bar%zntpath.expandvars("%foo%%bar")zbar%barz ntpath.expandvars("'%foo%'%bar")z'%foo%'%barzntpath.expandvars("bar'%foo%")z	bar'%foo%)rEnvironmentVarGuardclearrErJenvs  rtest_expandvarszTestNtpath.test_expandvarsBs

*
,
,	DIIKKKCJ CK!CL-u5552I>>>3X>>>3[AAA2J???/9992I>>>/9992G<<<2H===2J???3Y???2H===4h???9=III0(;;;3Y???7III4lCCC/	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	DsEE55E9<E9zneed os_helper.FS_NONASCIIcHd}tj5}|tj}||d<d|z||<|dd|z|d|zd|z|dd|z|d	|zd
|z|dd|z|d
|zd
|z|dd|z|d|d|z|dd|z|d|d
|zddddS#1swxYwYdS)Nc,td|z|dS)Nzntpath.expandvars(%r)r\)valuers  rcheckz2TestNtpath.test_expandvars_nonascii.<locals>.check^s*U2H=====rspamhamz	$spam barz%s barz$%s barz
${spam}barz%sbarz${%s}barzham%sbarz	$spam}barz%s}barz$%s}barz
%spam% barz%{}% barz	ham%s barz	%spam%barz%{}%bar)rrrFS_NONASCIIr)rJrrnonasciis    rtest_expandvars_nonasciiz#TestNtpath.test_expandvars_nonascii\s	>	>	>

*
,
,	EIIKKK ,H"CK!H,CME+x(2333E)h&	H(<===E,( 2333E*x'h)>???E+x(2333E)h&	H(<===E,8 3444E*##H--{X/EFFFE+w1222E)""8,,j8.CDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	EsC3DDDchtddtj5}|tddd|d<d|d<d	|d
<tddtdd
|d=tddtdd|d
|d<d	|d
<tddtdd
tddtddtddtdd|d|d<d
|d<d	|d
<tddtdd
|d
|d<d|d
<tddtdd
ddddS#1swxYwYdS)Nzntpath.expanduser("test")testzntpath.expanduser("~test")z~testC:\	HOMEDRIVEz
Users\ericHOMEPATHericUSERNAMEz
C:\Users\testzntpath.expanduser("~")z
C:\Users\ericz
Users\testUSERPROFILEz"ntpath.expanduser("~test\foo\bar")zC:\Users\test\foo\barz"ntpath.expanduser("~test/foo/bar")zC:\Users\test/foo/barzntpath.expanduser("~\foo\bar")zC:\Users\eric\foo\barzntpath.expanduser("~/foo/bar")zC:\Users\eric/foo/barzF:\HOMEidle)rErrrrs  rtest_expanduserzTestNtpath.test_expanduserpsW*F333

*
,
,*	@IIKKK/999%C+C
O$C
O/1BCCC+->???K /???+];;;IIKKK!2C
$C
O/1BCCC+->???9.
0
0
07,
.
.
.5.
0
0
03,
.
.
.
IIKKK CK!2C
$C
O/1BCCC+->???
IIKKK!2C
$C
O/999+->???U*	@*	@*	@*	@*	@*	@*	@*	@*	@*	@*	@*	@*	@*	@*	@*	@*	@*	@sE6F''F+.F+zabspath requires 'nt' modulectddtddtddtddtd	dtd
dtddtd
dtddtddtddtddtddtddtddtddtddtddtddtdd td!d td"d td#d td$d td%d&td'd(td)d(td*d(td+d(td,d(td-dtd.dtd/dtd0dtd1dtjtj5}td2|td3|d4ztd5|d6zt	j|\}}td7|d8zddddS#1swxYwYdS)9Nzntpath.abspath("C:\")rz-ntpath.abspath("\\?\C:////spam////eggs. . .")z\\?\C:\spam\eggsz-ntpath.abspath("\\.\C:////spam////eggs. . .")z\\.\C:\spam\eggsz#ntpath.abspath("//spam//eggs. . .")z\\spam\eggsz#ntpath.abspath("\\spam\\eggs. . .")zntpath.abspath("C:/spam. . .")zC:\spamzntpath.abspath("C:\spam. . .")zntpath.abspath("C:/nul")z\\.\nulzntpath.abspath("C:\nul")zntpath.abspath("//..")r3zntpath.abspath("//../")z\\..\zntpath.abspath("//../..")zntpath.abspath("//../../")z\\..\..\zntpath.abspath("//../../../")zntpath.abspath("//../../../..")z ntpath.abspath("//../../../../")zntpath.abspath("//server")z\\serverzntpath.abspath("//server/")z	\\server\zntpath.abspath("//server/..")zntpath.abspath("//server/../")z\\server\..\z ntpath.abspath("//server/../..")z!ntpath.abspath("//server/../../")z#ntpath.abspath("//server/../../..")z$ntpath.abspath("//server/../../../")z ntpath.abspath("//server/share")z\\server\sharez!ntpath.abspath("//server/share/")rz#ntpath.abspath("//server/share/..")z$ntpath.abspath("//server/share/../")z&ntpath.abspath("//server/share/../..")z'ntpath.abspath("//server/share/../../")zntpath.abspath("C:\nul. . .")zntpath.abspath("//... . .")zntpath.abspath("//.. . . .")zntpath.abspath("//../... . .")zntpath.abspath("//../.. . . .")zntpath.abspath("")zntpath.abspath(" ")z\ zntpath.abspath("?")z\?zntpath.abspath("/abc/")z\abc)rErtemp_cwdrr"rl)rJcwd_dirdrive_s    rtest_abspathzTestNtpath.test_abspaths='000ACZ[[[ACZ[[[4:JKKK8:JKKK/*===0*===)L999*L999'6:::(:>>>*:>>>+>BBB.>BBB0>BBB1>BBB+|DDD,~FFF.~FFF/7IJJJ17IJJJ27IJJJ47IJJJ57IJJJ1:MNNN2:OPPP4:OPPP5:OPPP7:OPPP8:OPPP/>>>,v666-v666/*===0*===

	 0
1
1	?W'111('E/:::('E/:::(11HE1,ego>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?sA!J==KKc2tddtddtddtddtjtj5}t	j|}tdd	|zd
ztdd	|zdzdddn#1swxYwYtd
dtddtddtddtddtddtddtddtddtddtd dtd!dtd"dtd#ddS)$Nzntpath.relpath("a")ryz#ntpath.relpath(ntpath.abspath("a"))zntpath.relpath("a/b")rzntpath.relpath("../a/b")z..\a\bzntpath.relpath("a", "../b")rrzzntpath.relpath("a/b", "../c")z\a\bzntpath.relpath("a", "b/c")z..\..\az*ntpath.relpath("c:/foo/bar/bat", "c:/x/y")z..\..\foo\bar\batz@ntpath.relpath("//conky/mountpoint/a", "//conky/mountpoint/b/c")zntpath.relpath("a", "a")rz(ntpath.relpath("/foo/bar/bat", "/x/y/z")z..\..\..\foo\bar\batz*ntpath.relpath("/foo/bar/bat", "/foo/bar")batz#ntpath.relpath("/foo/bar/bat", "/")zfoo\bar\batz#ntpath.relpath("/", "/foo/bar/bat")rz$ntpath.relpath("/foo/bar/bat", "/x")z..\foo\bar\batz$ntpath.relpath("/x", "/foo/bar/bat")z
..\..\..\xzntpath.relpath("/", "/")zntpath.relpath("/a", "/a")zntpath.relpath("/a/b", "/a/b")z"ntpath.relpath("c:/foo", "C:/FOO"))rErrrr"r)rJr
currentdirs   rtest_relpathzTestNtpath.test_relpaths$c***4c:::&///):666

	 0
1
1	PW11J0&2CE2IJJJ2F:4Eh4NOOO	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	+[999;=TUUUQS^___)3///9;VWWW;UCCC4oFFF4lCCC57JKKK5GGG)3///+S111/5553S99999sAB,,B03B0cd}fd}ttjg|tddg|tddg|tddg|tddg|dgd|ddgd|ddgd|ddgd|dd	gd|d
dgd|dd
gd|dd
gd|ddgd|ddgd|ddgd|ddgd|ddgd|ddgd|ddgd|tddg|dgd|ddgd|ddgd|ddgd|ddgd|ddgd|gdd|gd d|d!d"gd#|dgd|dd$gd|tdd%gttjd&dgttjd&d'gttjd(dgttjdd)gttjdd*gttjdd)gdS)+NcTtd|zdd|dS)Nzntpath.commonpath(%r)r3r2)rEr8)pathsrs  rrz)TestNtpath.test_commonpath.<locals>.checks9+e3<<VTJJ




rc|tj||tjd|DdS)Nc6g|]}tj|SrU)r$r:r&s  r
<listcomp>zCTestNtpath.test_commonpath.<locals>.check_error.<locals>.<listcomp>s ===!r{1~~===r)rr"
commonpath)excrrJs  rcheck_errorz/TestNtpath.test_commonpath.<locals>.check_errorsXc6#4e<<<c6#4==u===
?
?
?
?
?rzC:\Program Filesz
Program FileszC:Program Filesz\Program FileszC:\Program Files\zC:\\Program FileszC:\Program Files\\zC:\.\Program FileszC:\Program Files\.rzC:\binzC:\Program Files\BarzC:\Program Files\FoozC:\ProjectszC:/Program Files/Barzc:/program files/barzc:\program fileszD:\Program Filesralotr[and\jamand\spamandzand\\jamz
and\spam\\z	and\.\jamz
.\and\spam)rrr)rrrz	C:and\jamz
C:and\spamzC:andz	spam\alotz
\spam\alotsC:\Program FileszProgram Files\Foos
Program FilessC:\Program Files\FoosProgram Files\Foo)r
ValueErrorr"r	TypeError)rJrrs`  rtest_commonpathzTestNtpath.test_commonpaths				?	?	?	?	?
	
*f&7<<<J!4o FGGGJ!46G HIIIJ!2O DEEEJ2E FGGG
"#%8999
"$78:MNNN
$&9:!	#	#	#
$&;<!	#	#	#
$&=>!	#	#	#
%'=>!	#	#	#
vy!6***
"I.777
"$<=!	#	#	#
')AB!	#	#	#
"N3V<<<
$n5v>>>
')?@!	#	#	#
')?@!	#	#	#
%'?@!	#	#	#	J!46I JKKK
vh
vv'''
vv###
z;'///
|_-u555
}n-u555
///444
...666
|]+W555
rdB
r< "%%%J^ 4555)V%6/1IJ	L	L	L)V%6/1EF	H	H	H)V%6+-EF	H	H	H)V%6.0IJ	L	L	L)V%6.0EF	H	H	H)V%6*,EF	H	H	H	H	Hrz&Emscripten cannot fstat unnamed files.c	~t5}t5}|tj|||tj||tjdkrG|t5tjdddddn#1swxYwYdddn#1swxYwYddddS#1swxYwYdS)Nwin32)
r
assertTruer"sameopenfilefilenoassertFalsesysplatformrr)rJtf1tf2s   rtest_sameopenfilezTestNtpath.test_sameopenfile*s
__
	0]__
	0OOF/

cjjllKKLLLV0szz||LLMMM|w&&&&w//00'B///000000000000000
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0sYD2CD!D7DDD
DDD2D	D2!D	"D22D69D6cB|tjd|tjd|tjd|tjd|tjd|tjd|tjd|tjd|tjd	|tjd
|tjd|tjdtj5}|tj|dddn#1swxYwYtjd
krgtj	d}tj
|\}}tj|5|tj||tj|
dddn#1swxYwY|tjd|tjd|tjd|tjddSdS)NrprrqzC:/z\\.\c:\z\\.\C:\sc:\sC:\sc:/sC:/s\\.\c:\s\\.\C:\r
SystemRootz\\localhost\c$z\\localhost\c$\s\\localhost\c$s\\localhost\c$\)rr"ismountrtemp_dirrrrr$getenvrlrrupper)rJrtest_cwdrrs     rtest_ismountzTestNtpath.test_ismount8sLv..///v..///u--...u--...}55666}55666w//000w//000v..///v..///~66777~66777


!
!	0QV^A..///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0<7""y..H +H55KE4%h//
@
@  

!>!>???  

!>!>???
@
@
@
@
@
@
@
@
@
@
@
@
@
@
@
OOFN+>??@@@OOFN+@AABBBOOFN+?@@AAAOOFN+ABBCCCCC!#"s%((HH #H 7A3K66K:=K:cz|||dS)z<Assert that two strings are equal ignoring case differences.N)rIr)rJs1s2s   r
assertEqualCIzTestNtpath.assertEqualCI\s.RXXZZ00000rzOS helpers require 'nt' modulec*tjtj}|t	j|fD]`}tj|}tj|d}tj|d}|	||atj
tj\}}||d||dtj
tj
\}}	|||||	dtjtjfD]}tj|}
||
t"|t%|
dtj|
}||t&|t%|ddS)Nr)nt_getfinalpathnamer
executabler$r:_getvolumepathnamer"rlr-
_getdiskusageexec_prefix
assertGreaterr<rIprefixassertIsInstancer,lenr+)rJr1rvolume_path
path_drivevolume_path_drivecapfreeb_capb_free
final_pathb_final_paths            rtest_nt_helperszTestNtpath.test_nt_helpers`s
)#.99
J 7 77	>	>D/55K*4003J & 1+ > >q Az+<====$S_55	T3"""4###()?)?)A)ABB
v$$$61%%%Z0	5	5D-d33J!!*c222s:222/

>>L!!,666s<00!4444	5	5rN))rRrSrTr^rmrrrurwr~rrrrskip_unless_symlinkunittest
skipUnlessHAVE_GETFINALPATHNAMErrrrrrrrHAVE_GETSHORTPATHNAMErrrrrr/rrrskipIfrr!r)r-rBrUrrrWrWXs
D
D
D4:4:4:l
S
S
S///"""?R?R?RB(2(2(2TDDD
6
6
6"X.0HIIUUJI#"U2"X.0HII	T	TJI#"	T"X.0HIIDDJI#"D"X.0HII5D5DJI#"5Dn"X.0HII+O+OJI#"+OZ"X.0HII('('JI#"('T"X.0HII88JI#"8@X.0HII55JI5X.0HIIX.0HIINNJIJIN6DDD4X.0LMMEENME&-@-@-@bX;<<)?)?=<)?V:::0CHCHCHJX_]$LMM00NM0"D"D"DH111X=>>55?>555rrWceZdZeZdgZdS)NtCommonTestrN)rRrSrTr"
pathmodule
attributesrUrrrJrJ~sJJJJrrJceZdZeZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdZdS)
PathLikeTestsc6tj|_ttj|_|tj|jt|jdd5}|dddddS#1swxYwYdS)Nxbrstest_ntpath.PathLikeTests)	rr	file_namer	file_pathrrrr)rJfiles  rsetUpzPathLikeTests.setUps")!)"233	($.999
$.$
*
*	5dJJ3444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5s+BBBcj|||j||jdSr!)rMrRrQ)rJfuncs  r_check_functionzPathLikeTests._check_functions6TT$.11443G3GHHHHHrc||jjtjdkrR|t
jdd|t
jdddSdS)NruΩΩuωΩzabcdef)rWrr#rrrIr"r]s rtest_path_normcasez PathLikeTests.test_path_normcasesvTY/000<7""V_^<<gFFFV_\::LIIIII#"rcD||jjdSr!)rWrisabsr]s rtest_path_isabszPathLikeTests.test_path_isabs TY_-----rc||jdtdd|jddddS)Nrybr)rIrrrr]s rtest_path_joinzPathLikeTests.test_path_joinsSXc]]C@@S#66	8	8	8	8	8rcD||jjdSr!)rWrsplitr]s rtest_path_splitzPathLikeTests.test_path_splitr]rcD||jjdSr!)rWrsplitextr]s rtest_path_splitextz PathLikeTests.test_path_splitext!TY/00000rcD||jjdSr!)rWrrlr]s rtest_path_splitdrivez"PathLikeTests.test_path_splitdrive!TY122222rcD||jjdSr!)rWrrr]s rtest_path_basenamez PathLikeTests.test_path_basenamergrcD||jjdSr!)rWrrr]s rtest_path_dirnamezPathLikeTests.test_path_dirname!TY./////rcD||jjdSr!)rWrislinkr]s rtest_path_islinkzPathLikeTests.test_path_islinks!TY-.....rcD||jjdSr!)rWrlexistsr]s rtest_path_lexistszPathLikeTests.test_path_lexistsrorcD||jjdSr!)rWrr$r]s rtest_path_ismountzPathLikeTests.test_path_ismountrorcD||jjdSr!)rWr
expanduserr]s rtest_path_expanduserz"PathLikeTests.test_path_expanduserrjrcD||jjdSr!)rWr
expandvarsr]s rtest_path_expandvarsz"PathLikeTests.test_path_expandvarsrjrcD||jjdSr!)rWrrr]s rtest_path_normpathz PathLikeTests.test_path_normpathrgrcD||jjdSr!)rWrrr]s rtest_path_abspathzPathLikeTests.test_path_abspathrorcD||jjdSr!)rWrrr]s rtest_path_realpathz PathLikeTests.test_path_realpathrgrcD||jjdSr!)rWrrr]s rtest_path_relpathzPathLikeTests.test_path_relpathrorc|j|j|jg}|||jdSr!)rrrRrQrM)rJcommon_paths  rtest_path_commonpathz"PathLikeTests.test_path_commonpaths>i**DNDN+KLL[$.99999rcD||jjdSr!)rWrisdirr]s rtest_path_isdirzPathLikeTests.test_path_isdirr]rN)rRrSrTr"rrTrWrYr\r`rcrfrirlrnrrrurwrzr}rrrrrrrUrrrNrNsZD555IIIJJJ...888...111333111000///000000333333111000111000:::.....rrN__main__)"r"r$rrrDr=test.supportrrrtest.support.os_helperrrrtempfilerr/ImportErrorr0rFAttributeErrorrrGrr0rETestCaserGrW
CommonTestrJrNrRmainrUrr<module>rsp



				







""""""22222222++++++!!!!!!""""""
IIII
BBB
!
!"""!"
#MMM!
#
#
#
#	"""!" <<<033333X&333d5d5d5d5d5d5d5d5L#.0A
J.J.J.J.J.NJ.J.J.ZzHMOOOOOs3?A	A	
AA! A!%A//A98A9