python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_pathlib.cpython-311.opt-1.pyc

eddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlm
Z
ddlmZddlmZmZddlmZddlmZmZ	ddlZddlZn#e$rdxZZYnwxYwGddeZGd	d
eejZGddeejZGd
deZGddeejZGddeejZ GddeejZ!ej"#eZ$dZ%dZ&ej'ej(dkdZ)ej'ej(dkdZ*e*GddeZ+e)Gdde Z,GddeZ-Gd d!e-ejZ.e*Gd"d#e-ejZ/e)Gd$d%e-ejZ0Gd&d'ejZ1e2d(krej3dSdS))N)mock)
import_helper)
is_emscriptenis_wasi)	os_helper)TESTFNFakePathceZdZdZdZdS)_BaseFlavourTestc|jj}|jj|jj|fd|D}|||r/|fd|D}|||dSdS)Nc<g|]}|dS/replace).0xseps  E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_pathlib.py
<listcomp>z7_BaseFlavourTest._check_parse_parts.<locals>.<listcomp> s'555AAIIc3''555c<g|]}|dSrr)rraltseps  rrz7_BaseFlavourTest._check_parse_parts.<locals>.<listcomp>#s'<<<1		#v..<<<r)flavourparse_partsrrassertEqual)selfargexpectedfactualrrs     @@r_check_parse_partsz#_BaseFlavourTest._check_parse_partssL$l$555555566***	/Q<<<<<<<==FVX.....	/	/rc|j}|jj}|gddgf|dgdddgf|dgdddgf|ddgddddgf|dgddddgf|dgddddgf|gdddgdf|gd	ddgdf|gd
ddgdf|dgddgf|gddddgf|gd
ddddgf|gddddgf|dgd||ddgf|ddgd||ddgf|ddgd||ddgf|gdd||ddgf|gdd||dgfdS)Naa/ba/ba/b/)r%zb/cd)r%r'cr*)r%zb//cr*)r%zb/c/r*.)r,r,r')r%r,r')r%r,r,/a/b/a/a/r%/br+r+)r%r1/c)r"rr)rcheckrs   rtest_parse_parts_commonz(_BaseFlavourTest.test_parse_parts_common&sf'l
bRRL111
seRcUO444
tfRcUO444
sCjRc3Z$8999
ugRc3Z$8999
vhRc3Z$8999
R-A-A-A$BCCC
   R-A-A-A$BCCC
   R-A-A-A$BCCC
seRRL111
oooRcUO444
oooRc3Z$8999
oooRcUO444
vhRsCo$>???
tSkRsCo$>???
uclRsCo$>???
RsCo$>???
RsCj$9:::::rN)__name__
__module____qualname__r"r4rrrrs2///;;;;;rrc(eZdZejZdZdZdS)PosixFlavourTestc|j}|ddgddgdf|ddgddgdf|d	dgddgdf|d
gddd
gf|dgdddgf|dgdddgfdS)
N//ar'r$//)r=r%r'///ar)rr%r'z////ac:ac:\a\ar"rr3s  rtest_parse_partsz!PosixFlavourTest.test_parse_partsFs'	uclT3C3C3C(DEEE
vsmS///(BCCC
wnS///(BCCC
ugR%(9:::
wiR'(;<<<
ugR%(9:::::rcD|jj}||dd||dd||dd||dd||d	d
||dd||d
d||dd||dd
||dd||dd||dd||dddS)Nr$r$r$r$r%r$r$r%r()r$r$r(r))r$r$r)r.)r$rr%r-)r$rr(/a/b/)r$rr)r<)r$r=r%r>///a/bc:/a/b)r$r$rJ\/a/b)r$r$rK\a\b)r$r$rLr	splitrootrrr s  rtest_splitrootzPosixFlavourTest.test_splitrootRsL"2---3///5?3336$45554.1116$45557%6777	
5?3336N3338&67778&89998&89998&899999rN)r5r6r7pathlib_posix_flavourrrDrPr8rrr:r:Cs:$G
;
;
;:::::rr:c(eZdZejZdZdZdS)
NTFlavourTestc0|j}|dgdddgf|dgdddgf|dgdddgf|dgddddgf|d	gddddgf|d
gddddgf|dgddd
gf|dgddd
gf|dgddd
dgf|gdddgdf|gdddgdf|gdddddgf|gdddgdf|gdddddgf|dgdddgf|d gddddgf|d d!gdddd"gf|d#gd$dd%gf|d&gd$dd%dgf|gd'ddgd(f|gd)ddgdf|gd*d+dgd,fdS)-Nc:r$c:/\c:\rr?r%c:/ar.//a/b\\a\b\\a\b\//a/b///a/b/cr+)r%zZ:br+Z:)r`r'r+)r%zZ:/br+)Z:\r'r+)r%z//b/cr*z\\b\cz\\b\c\r*)r%z	Z://b//c/d/)rar'r+r*)r%z//b/c//r*z//?/c:/z\\?\c:z\\?\c:\z//?/c:/ar1r'z//?/UNC/b/cz\\?\UNC\b\cz\\?\UNC\b\c\z
//?/UNC/b/c/dr0)rXr'r+)zZ:/ar1r+)z//?/Z:/ar1r+z\\?\Z:)z\\?\Z:\r'r+rBrCs  rrDzNTFlavourTest.test_parse_partsjs'
tfrD6(:;;;
ugtfX(>???
seTD6(:;;;
ugrD#;(?@@@
vhtfc](CDDD
tfTD#;(?@@@
wiTL>(JKKK
xjTL>(JKKK
ykTL#;N(OPPP
r3C3C3C(DEEE
   t5G5G5G(HIII
!!!TL#;N(OPPP
&&&t5L5L5L(MNNN
###TL#;N(OPPP
ykd]O(LMMM
zld]C<P(QRRR
z4 d]C<P(QRRR
}o);TDXCY(Z[[[
);TDXZ]C^(_```
T3C3C3C(DEEE
!!!t5G5G5G(HIII
%%%d<U<U<U(VWWWWWrc|jj}||dd||dd||dd||dd||d	d
||dd||d
d||dd||dd||dd||dd||dd||dd||dd||dd
||dddS)Nr$rFr%rGa\b)r$r$rdrA)r$rXr%rL)r$rXrdzc:a\b)rVr$rdc:\a\b)rVrXrdz\\az\\\a/b)r$rXr(zc:\\a)rVrXr%zc:\\\a/b)rVrXr(r\)r\rXr$r]	\\a\b\c\d)r\rXc\dz\\\a\brMrOs  rrPzNTFlavourTest.test_splitrootsL"2---3///6$45555?3338&89998&8999:(<===7_555;):;;;9'8999=))+>???:(>???<*@AAA+,,.HIII	
<*<===7_55555rN)r5r6r7rQ_windows_flavourrrDrPr8rrrTrTgs>&G X X XD66666rrTceZdZgdgddZdZdZdZdZdZd	Z	d
Z
dZdZd
Z
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Z d!Z!d"Z"d#Z#d$Z$d%S)&_BasePurePathTest)
r%r')r&r')r%b/)r&rl)r))za//b)za//b//)r$r%r')r%r$r')r%r'r$))r%/b/cr*)r%z///b//crb)r.rmr*)rr'r$c/d)rr$zb/c/d)r$/b/c/d)r(roc|d}|j|_|jj|_|jj|_dSNr%)cls_flavourrrrrps  rsetUpz_BasePurePathTest.setUps6HHSMMz<#l)rc	|j}|d}||||ddd|ddd|d|d|td|||d|d|||dd|d|||d|d|d|||d|d|d|tddS)Nr%r'r+r.a/b/c/a/b/cr()rrassertIsInstancer	rrPrus   rtest_constructor_commonz)_BasePurePathTest.test_constructor_commonsrH
AcFFa###	#sC	$S	'


	(	(7

11S66AAcFF+++11S663522211S6611S66**AAeHH55511S6611S6611S6622AAhw6G6G4H4HIIIIIrcGddt|j}|fd|D}|||||jD]*}|t|t+dS)NceZdZdS):_BasePurePathTest._check_str_subclass.<locals>.StrSubclassN)r5r6r7r8rrStrSubclassrsDrrc3.K|]}|VdSNr8)rrrs  r	<genexpr>z8_BasePurePathTest._check_str_subclass.<locals>.<genexpr>s+--1A------r)strrrrpartsassertIstype)rargsr|rupartrs     @r_check_str_subclassz%_BasePurePathTest._check_str_subclasss					#			H
A-------.AAtH%%%G	+	+DMM$t**c****	+	+rc|d|d|d|d|ddS)Nr$r,r%za/b.txtz/a/b.txtrrs rtest_str_subclass_commonz*_BasePurePathTest.test_str_subclass_commonsl  $$$  %%%  %%%  +++  ,,,,,rc>|j}|d}|d}|||d|t	|t	||dd}|||d||d}|||d|d}|||ddS)Nr(r+rxr*a/b/c/dr2)rrjoinpathrrrrr|rupps    rtest_join_commonz"_BasePurePathTest.test_join_commonsH
AeHH
ZZ__QQwZZ(((

d2hhQ(((
ZZS
!
!QQy\\***
ZZ#

QQwZZ(((
ZZ

QQtWW%%%%%rcX|j}|d}|dz}|||d|t|t||dz}|||d|dzdz}|||dd|zdz}|||d||dz}|||d|dz}|||ddS)	Nr(r+rxrnrr*zc/a/b/dr2)rrrrrrs    rtest_div_commonz!_BasePurePathTest.test_div_commons6H
AeHH
WQQwZZ(((

d2hhQ(((
YQQy\\***
Ws]QQy\\***
1Ws]QQy\\***
3ZQQwZZ(((
WQQtWW%%%%%rc|j|}|t||d|jdSNr)rrrrrr)rrrrus    r
_check_strz_BasePurePathTest._check_strsCDHdOQ!1!1#tx!@!@AAAAArcjdD]}|||f|dddS)Nr%r(rxrr-ryr,)r$)r)rpathstrs  rtest_str_commonz!_BasePurePathTest.test_str_commonsDC	1	1GOOGgZ0000U#####rc|j}dD]3}||||4dS)Nr)rrras_posix)rr|rs   rtest_as_posix_commonz&_BasePurePathTest.test_as_posix_commonsOHC	=	=GQQwZZ0022G<<<<	=	=rctj|j}|j}|t|dd|zdzdS)Nr(ab)osfsencoderrrrbytes)rrr|s   rtest_as_bytes_commonz&_BasePurePathTest.test_as_bytes_commonsMk$(##Hqqxx$*t*;<<<<<rcP|j}|t5|ddddn#1swxYwY|t5|ddddS#1swxYwYdSrq)rrassertRaises
ValueErroras_urirr|s  rtest_as_uri_commonz$_BasePurePathTest.test_as_uri_commonsH


z
*
*		
AcFFMMOOO															


z
*
*		
ACCJJLLL																		s#AAA1BB"BcdD]J}||}|jj}t|}|||dz|||d||t|dzd}|t||
t|tj}|
|j|j||||t||LdS)Nr())rr	__class__r5repr
assertTrue
startswithendswithlenrevalrrQ__dict__r)rrruclsnamerinnerqs       rtest_repr_commonz"_BasePurePathTest.test_repr_common s C
	)
	)G!!Ak*GQAOOALL377;;;OOAJJsOOQ///c'llQ&+,ET%[[!**,,777Q())AMM!+q{333Q"""T!WWa((((
	)
	)rc|j}||d|d||d|dd||d|d||d|d||d|||d|d|||d||d||i||tdS)Nr(r%r'r-rr$)rrrassertNotEqualintrs  rtest_eq_commonz _BasePurePathTest.test_eq_common0skH511U88,,,511S#;;///AAeHHaaff---AAeHHaaii000AAeHHaacc***AAfIIqqvv...AACC3(((AACC$$$AACC$$$AACC%%%%%rc|j}|t|djd|t|djd||dd||dd||dd||dd||dd||d	d||d
d||dd||dd||dd||dd||d
d||d
d||dd||dd||dd||dd||dd||dd||dd||dd||dd||dd||dd||dd||dd||dddS)Nr%r$r,b.pya/b.py/a/b.pyza.pyzb/pyz/a.pyzb.py/cz*.pyzb.pyczb./pyzab/c.pyza*/*.pyz
/d/ab/c.pyz	/dab/c.pyz	ab/c.py/d/b.py/*.pyz/a/*.pyz/ab.pyz	/a/b/c.pyz/**/*.pyz
/a/**/*.py)rrrrmatchrassertFalsers  rtest_match_commonz#_BasePurePathTest.test_match_common=sH*aafflB777*aafflC888&		//000())&11222)**6223336001116001117))&112228**622333&		//000())&11222)**6223337))&112227))&112228**622333)**955666,--i88999633444;--i88999;--i88999'

((112226112228**7334449++G44555)**9556668**955666;--i88999;--j99:::+,,\::;;;;;rcPfd}j}|d}|d}|d}|d}|||||||||||||||j}|d}|d}|d}|d	}|||||||||||||||t5|ikddddS#1swxYwYdS)
Nc`||||dSr)
assertLess
assertGreaterr%r'rs  rrz:_BasePurePathTest.test_ordering_common.<locals>.assertLesses3OOAq!!!q!$$$$$rr%r(abcr'r.r-z/abcr1)rrr	TypeError)rrr|r%r'r+r*s`      rtest_ordering_commonz&_BasePurePathTest.test_ordering_commoncs	%	%	%	%	%
H
AcFF
AeHH
AeHH
AcFF
1a
1a
1a
1a
1aH
AdGG
AfII
AfII
AdGG
1a
1a
1a
1a
1a


y
)
)		
ACC"HH																		s?DD"Dc|j}|j}|d}|j}||d|||j|d}|j}|||ddfdS)Nr(rkr-r%r')rrrrrr)rrr|rurs     rtest_parts_commonz#_BasePurePathTest.test_parts_commonshH
AeHH
+++

eQW%%%
AfIIc300000rc|j}|d}||d|tj|ddS)Nr()r()rrr
__fspath__rfspathr{s   rtest_fspath_commonz$_BasePurePathTest.test_fspath_commonsTH
AeHH111	!h/////rc	jD]2\}}|dj}|jd}||kr'|fd|Dz}||f|}|D]}j|}||d|t|t|t|||
|4dS)NrcFg|]}tfd|DS)c3NK|]}|djV dS)rN)rr)rrrs  rrzA_BasePurePathTest.test_equivalences.<locals>.<listcomp>.<genexpr>s3DD$$,,sDH55DDDDDDr)tuple)rtrs  rrz7_BasePurePathTest.test_equivalences.<locals>.<listcomp>sF###DDDD!DDDDD###rzfailed with args {})equivalencesitemsrrappendrrrformathashrr)rktuplescanonposixpcanonrrus`       rtest_equivalencesz#_BasePurePathTest.test_equivalencess^*0022	6	6IAvIIc48,,EIIdh,,E~~########

ui(((XXe__F
6
6DHaL  F,A,H,H,K,KLLL  a$v,,777  Q///  u5555
6	6	6rc|j}|d}||j|d||jj|d||jjj|||jjjj||d}||j|d||jj|d||jjj|d||jjjj|ddS)Nrxr(r%ryr-r.rrrrparentr{s   rtest_parent_commonz$_BasePurePathTest.test_parent_commonsCH
AgJJ11U88,,,!!C&&111/555/6<<<
AhKK11V99---!!D''222/3888/6#?????rc\|j}|d}|j}|t|d||d|d||d|d||d|d||d	|d||d
|d||d|d||dd|df||dd|d|df||dd	|d|df||dd|d|df||ddd|d|df||ddd	|d|d|df|t	||d|d|dg|t5|ddddn#1swxYwY|t5|ddddn#1swxYwY|t5||d<dddn#1swxYwY|d
}|j}|t|d||d|d||d|d||d|d||d	|d||d
|d||d|d||dd|df||dd|d|df||dd	|d|df||dd|d|df||ddd|d|df||ddd	|d|d|df|t	||d|d|dg|t5|ddddn#1swxYwY|t5|dddddS#1swxYwYdS)Nrxrr(rr%r,rryr-r.r)rrparentsrrlistr
IndexErrorrrr|rupars    rtest_parents_commonz%_BasePurePathTest.test_parents_commons,H
AgJJiS1%%%Q5***Q3(((Q3(((R!!C&&)))R!!C&&)))R!!E((+++QqSAAeHH;///RaR11U88QQsVV"4555SbSAAeHHaaff#5666QRR11S6611S66"2333SSqSAAeHHaaff#5666TTrTQQsVVQQsVVQQuXX$>???cQQuXXqqvvqqvv$>???


z
*
*		GG															


z
*
*		FF															


y
)
)		CF															
AhKKiS1%%%Q6+++Q4)))Q3(((R!!C&&)))R!!D''***R!!F)),,,QqSAAfII<000RaR11V99aagg"6777SbSAAfIIqqww#7888QRR11T77AAcFF"3444SSqSAAfIIqqvv#6777TTrTQQsVVQQtWWaaii$@AAAcQQvYY$3$@AAA


z
*
*		GG															


z
*
*		FF																		sZ$	J99J=J=	K33K7:K7L**L.1L.	W&&W*-W*	X!!X%(X%c|j}||djd||djd||djddS)Nr(r$r-rrrdrivers  rtest_drive_commonz#_BasePurePathTest.test_drive_commonsoH5,,,6"---2b)))))rcB|j}|j}||djd||djd||dj|||dj|dSNr$r(rr-)rrrrrootrr|rs   rtest_root_commonz"_BasePurePathTest.test_root_commonsHh2R(((5+++3c***6-----rcB|j}|j}||djd||djd||dj|||dj|dSr)rrrranchorrs   rtest_anchor_commonz$_BasePurePathTest.test_anchor_commonsHh2r***5"---3,,,6)3/////rcT|j}||djd||djd||djd||djd||djd||djd||djd	||d
jd	dS)Nr$r,rr(r'r-/a/b/.rrrrrrnamers  rtest_name_commonz"_BasePurePathTest.test_name_commonsH2R(((3b)))3b)))5,,,6---8)3///8)62229*F33333rc|j}||djd||djd||djd||djd||djd||djd||djd||djd	||d
jd	||djd||djd||d
jd||djd||djd||djd||djd||djddS)Nr$r,..rr(r-r	r.pyra/.hgrc/a/.hgrca/.hg.rc.rc	/a/.hg.rc
a/b.tar.gz.gz/a/b.tar.gza/Some name. Ending with a dot. /a/Some name. Ending with a dot.rrrsuffixrs  rtest_suffix_commonz$_BasePurePathTest.test_suffix_commonsCH2r***3+++4,,,3+++5"---6)2...8+R0008+U3339,e4449,b111:-r222:-u555;.666</777=))0%888<==DbIII=>>ErJJJJJrc|j}||djg||djg||djg||djg||djg||djg||djdg||d	jdg||d
jg||djg||djd
g||djd
g||djddg||djddg||djg||djgdS)Nr$r,rr(r-r	rrrrrrrrr.tarrrrrrrrsuffixesrs  rtest_suffixes_commonz&_BasePurePathTest.test_suffixes_commons4H2,,,3"---3"---5*B///6+R0008-r2228-w7779.8889.333:/444:/%999;05':::<1FE?CCC=))2VUODDD<==FKKK=>>GLLLLLrc|j}||djd||djd||djd||djd||djd||djd||djd	||d
jd||djd
||djddS)Nr$r,rrr(r'rr.hgrcr.hgrb.tarrSome name. Ending with a dot.rrrstemrs  rtest_stem_commonz"_BasePurePathTest.test_stem_common+sbH2R(((3b)))4t,,,3b)))5,,,8)3///9*G444:+U333<-w777<==B8	:	:	:	:	:rc$|j}||dd|d||dd|d||dd|d||dd|d||dd|d||d	d|d|t|d
jd|t|djd|t|djd|t|djd
|t|djd
|t|djd|t|djddS)Nr(d.xmlza/d.xmlr-z/a/d.xmlrr
a/Dot ending./a/Dot ending.r$r,rr2c/rnrrr	with_namerrrs  rtest_with_name_commonz'_BasePurePathTest.test_with_name_common9s@H5++G44aa	llCCC6,,W55qq}}EEE8..w779FFF9//88!!J--HHH?++55g>>)MMM+,,66w??:OOO*aaeeow???*aaff&6@@@*aaff&6@@@*aahh&8"===*aahh&8$???*aahh&8$???*aahh&8%@@@@@rc|j}||dd|d||dd|d||dd|d||dd|d	||d
d|d||dd|d||d
d|d|t|djd|t|djd|t|djd|t|djd|t|djd|t|djd|t|djddS)Nr(r*za/dr-z/a/drza/d.pyrz/a/d.pyrz/a/d.gzr,r-r$r,rr2r.rnrrr	with_stemrrrs  rtest_with_stem_commonz'_BasePurePathTest.test_with_stem_commonIsvH5++C00!!E((;;;6,,S1111V99===8..s33QQx[[AAA9//44aa	llCCC=))33C88!!I,,GGG?++55c::AAeHHEEE+,,66s;;QQvYYGGG*aaeeos;;;*aaff&6<<<*aaff&6<<<*aahh&8"===*aahh&8$???*aahh&8$???*aahh&8%@@@@@rc|j}||dd|d||dd|d||dd|d||dd|d||dd|d||dd|d|t|djd|t|d	jd|t|d
jd|t|djd|t|djd
|t|djd	|t|djd|t|djd
|t|djd|t|djd|t|djd|t|dj|jjdfdS)Nr(rza/b.gzr-z/a/b.gzrrr$r,rgz/.gzrnz.c/.dz./.dz.d/.r*)rrrwith_suffixrrrrrs  rtest_with_suffix_commonz)_BasePurePathTest.test_with_suffix_commonZsH5--e44aakkBBB6..u55qq||DDD800778EEE911%88!!I,,GGG80044aahh???6..r22AAfII>>>*aaee&7???*aaff&8%@@@*aaff&8%@@@*aahh&:DAAA*aahh&:C@@@*aahh&:C@@@*aahh&:FCCC*aahh&:EBBB*aahh&:GDDD*aahh&:FCCC*aahh&:FCCC*aahh&:<+S1	3	3	3	3	3rc4
|j}|d}|t|j|t|jd||||d||d|d|||d|d||d|d||d|d|||d|||d|||dd||t
|j|d|t
|j|d|t
|j|d	|t
|j|d
|d}|||d|d||d|d|||d
|d||d
|d||d
|d|||d|||d||t
|j|d|t
|j|d|t
|j|d|t
|j||t
|jd|t
|j|ddS)Nr(rr$r%r'r&r+rxa/cr.r-rr/r2ry/a/c)rrrrrelative_torrr{s   rtest_relative_to_commonz)_BasePurePathTest.test_relative_to_commonssAH
AeHH)Q]333)Q]D999qqss++QQuXX666r**AAeHH555qqvv..#777s++QQsVV444t,,aaff555qqxx00!!##666u--qqss333sC00!!##666*amQQsVV<<<*amQQwZZ@@@*amQQuXX>>>*amQQtWW===
AfIIqqvv..%999s++QQuXX666qqww//3888t,,aaff555u--qqvv666qqyy111133777v..444*amQQtWW===*amQQx[[AAA*amQQvYY???*amQQSS999*amR888*amQQsVV<<<<<rcN	|j}|d}|t|j|t|jd|||||d|||d||d|||d||d||dd|||d|||d|||d	|||d
|d}|||d||d|||d
||d
||d
|||d||d|||d|||d|||d|||||d|||ddS)Nr(rr$r%r&r'r+rxr<r.r-rr/r2ryr=)rrrris_relative_torrr{s   rtest_is_relative_to_commonz,_BasePurePathTest.test_is_relative_to_commonsH
AeHH)Q%5666)Q%5t<<<((--...((,,---((300111((..///((522333((//000((c22333))!!C&&11222))!!G**55666))!!E((33444))!!D''22333
AfII((300111((--...((411222((..///((//000((633444((00111))!!D''22333))!!H++66777))!!F))44555))!!##..///))"--...))!!C&&1122222rc|j}|d}tdtjdzD]}tj||}tj|}||j|j||||t|t||t|t|dS)Nr-rr)rrrangepickleHIGHEST_PROTOCOLdumpsloadsrrrrr)rr|ruprotodumpedrs      rtest_pickling_commonz&_BasePurePathTest.test_pickling_commonsH
AfII1f59::	.	.E\!U++Ff%%BMM",444R###T"XXtAww///SWWc!ff----
	.	.rN)%r5r6r7rrvr}rrrrrrrrrrrrrrrrrrrrrrrr!r)r1r5r:r?rBrKr8rrrjrjsF


L***JJJ
+
+
+---&&&&&&$BBB$$$======
))) &&&$<$<$<L8111000666$
@
@
@---^***...000	4	4	4KKK(MMM&:::AAA AAA"3332!=!=!=F 3 3 3D	.	.	.	.	.rrjcReZdZejZdZdZdZdZ	dZ
dZdZdZ
d	Zd
S)PurePosixPathTestc|j}||djd||djd||djddS)Nr-rrIr[r=rrrrrs  r	test_rootzPurePosixPathTest.test_rootspH6---8)3///7$/////rc|j}||d|d||d|d||d|ddS)Nr(A/br.r>r<)rrrrrs  rtest_eqzPurePosixPathTest.test_eqsHAAeHHaahh///4!!F)),,,AAdGGQQuXX.....rc:|j}||dd||dd||dddS)Nrzfile:///z/a/b.cz
file:///a/b.cz/a/b%#czfile:///a/b%25%23c)rrrrrs  rtest_as_urizPurePosixPathTest.test_as_urisH3*5558++--???9,,..0DEEEEErc	4ddlm}|j}	tjdn%#t
$r|dYnwxYw||dd|tjdzdS)Nr)quote_from_byteséz1\xe9 cannot be encoded to the filesystem encodingu/a/bézfile:///a/b)	urllib.parserWrrrrUnicodeEncodeErrorskipTestrr)rrWr|s   rtest_as_uri_non_asciiz'PurePosixPathTest.test_as_uri_non_asciis111111H	PK!	P	P	PMMNOOOOO	P:--//&)9)9"+f:M:M)N)NN	P	P	P	P	Ps$AAcv|j}||dddS)NzA.pyza.PY)rrrrrs  r
test_matchzPurePosixPathTest.test_matchs7H60011111rc|j}||||d||d||d||d||d||d||ddS)Nr%r)rr.rHr<r[rrris_absoluterrs  rtest_is_absolutez"PurePosixPathTest.test_is_absolutesAH**+++3++--...6..00111#**,,---$++--...'

..00111%,,..///'

..0011111rc|j}|d|d|d|d|d|d|d|ddS)NFr$r/foo/barz/dev/con/PRN/NULrrris_reservedrs  rtest_is_reservedz"PurePosixPathTest.test_is_reservedsH

eQQrUU..00111

eQQsVV//11222

eQQz]]6688999

eQQ122>>@@AAAAArc|j}|d}|d}|||d|dd}|||d|dd}|||ddSNr<r'r[r.z//cr2rrrrrs    r	test_joinzPurePosixPathTest.test_joinsH
AeHH
ZZ__QQwZZ(((
QtWW

e
$
$QQuXX&&&
QuXX

t
$
$QQtWW%%%%%rc&|j}|d}|dz}|||d|ddz}|||d|ddz}|||ddSrirrrrs    rtest_divzPurePosixPathTest.test_divsH
AeHH
WQQwZZ(((
QtWWu_QQuXX&&&
QuXX_QQtWW%%%%%rN)r5r6r7rQ
PurePosixPathrrrPrSrUr\r^rbrgrkrnr8rrrMrMs

C000///FFFPPP222	2	2	2BBB&&&	&	&	&	&	&rrMc&eZdZejZejZe	gdgddgddgddZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d S)!PureWindowsPathTest))rVr%)rVr&)rrVr%))rWr%)rVrr%)rVr.)z/zrWr%)z//x/yrWr%)r[)r[r+)r^r+)r?rZr^r_c6|d}|t|d|d}|t|d|d}|t|d|d}|t|d|d	}|t|d
dS)Nrxza\b\czc:/a/b/czc:\a\b\cr[r]r_z\\a\b\c	//a/b/c/drf)rrrrrts  rtest_strzPureWindowsPathTest.test_str sHHWQ+++HHZ  Q///HHWQ...HHYQ///HH[!!Q!122222rc|d|d|d|d|d|d|d|d|d	dS)
NrVr?z	c:a\b.txtrYr@z
c:\a\b.txtz\\some\sharez\\some\share\az\\some\share\a\b.txtrrs rtest_str_subclassz%PureWindowsPathTest.test_str_subclass,s  &&&  '''  ...  (((  )))  000  !2333  !5666  !<=====rc|j}||d|d||d|ddd||d|d||d|d||d|d||d|d	||d
|d||d|d
dS)Nc:a/brVr%r'zd:a/brJr-za/BrRC:a/Bc:A/b//Some/SHARE/a/Bz//somE/share/A/b)rrrrrs  rrSzPureWindowsPathTest.test_eq7sKH7QQwZZ0007QQtS#%6%6777AAgJJ'

333AAgJJ(444AAfIIqq{{333511U88,,,7QQwZZ000-..2D0E0EFFFFFrc|j}|t5|ddddn#1swxYwY|t5|ddddn#1swxYwY||dd||dd||dd||d	d
||dd||d
d||dddS)Nr-rxrWzfile:///c:/zc:/a/b.czfile:///c:/a/b.cz	c:/a/b%#czfile:///c:/a/b%25%23cuc:/a/bézfile:///c:/a/b%C3%A9z
//some/share/zfile://some/share/z//some/share/a/b.czfile://some/share/a/b.cu//some/share/a/b%#céz"file://some/share/a/b%25%23c%C3%A9)rrrrrrrs  rrUzPureWindowsPathTest.test_as_uriCsWH


z
*
*		
AfII															


z
*
*	 	 
AgJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 5**M::::--//1CDDD;..002IJJJ<//113IJJJ?++22446JKKK/0077992	4	4	4455<<>>=	?	?	?	?	?s#AAA1BB"Bc|j}||dd||dd||dd||dd||dd||dd||dd||dd||dd||dd||dd||d	d||d	d
||dd
||dd
||d
d||dd||dddS)Nzc:/b.pyrzc:*.pyzc:/*.pyzd:/b.pyrzc:b.pyrz//some/share/a.pyz//some/share/*.pyz//other/share/a.pyz//some/share/a/b.pyzB.pyzb.PYz	c:/a/B.Pyz	C:/A/*.pYz//Some/Share/B.Pyz//somE/sharE/*.pY)rrrrrrs  rrz%PureWindowsPathTest.test_match_commonSsH)**733444)**844555)**9556669++I667776112226223336334448**7334448**9556667))(334447)))44555-..44W==>>>-..445HIIJJJ/00667JKKLLL011778KLLMMM&		//000+,,[99:::-..445HIIJJJJJrcpfd}j}|d}|d}|||||k||k|d}|d}|||||k||kdS)Nc`||||dSr)assertLessEqualassertGreaterEqualrs  rassertOrderedEqualzDPureWindowsPathTest.test_ordering_common.<locals>.assertOrderedEqualms5  A&&&##Aq)))))rrzryz//some/Share/A/br{)rrr)rrr|rurs`    rrz(PureWindowsPathTest.test_ordering_commonks	*	*	*	*	*
H
AgJJ
AgJJ1a   QQ
A !!
A !!1a   QQrc|j}|d}|j}||d|d}|j}||d|d}|j}||ddS)Nrx)rVr%r'rJ)rYr%r'rs)r]r+r*)rrrr)rr|rurs    r
test_partszPureWindowsPathTest.test_parts|sH
AgJJ 0111
AhKK 2333
AkNN 899999rc|j}|d}||j|d||jj|d||jjj|d||jjjj|d|d}||j|d||jj|d||jjj|d||jjjj|d|d	}||j|d
||jj|d||jjj|ddS)Nzz:a/b/czz:a/bz:az:zz:/a/b/czz:/a/bz:/az:/rsr_r[rr{s   rtest_parentzPureWindowsPathTest.test_parentsH
AiLL11W::...!!E((333/4999/6$@@@
AjMM11X;;///!!F))444/5:::/6%AAA
AkNN11Y<<000!!G**555/7<<<<<rc|j}|d}|j}|t|d||d|d||d|d||dd|df||dd|df||dd|d|df||dd|df||ddd|df||ddd|d|df|t	||d|dg|t5|ddddn#1swxYwY|d}|j}|t|d||d|d	||d|d
||dd|d	f||dd|d	f||dd|d	|d
f||dd|d
f||ddd|d	f||ddd|d
|d	f|t	||d	|d
g|t5|ddddn#1swxYwY|d}|j}|t|d||d|d||d|d
||dd|df||dd|df||dd|d|d
f||dd|d
f||ddd|df||ddd|d
|df|t	||d|d
g|t5|dddddS#1swxYwYdS)Nzz:a/b/rrrrrrzz:/a/b/rrrsr_r[)rrrrrrrrrs    rtest_parentsz PureWindowsPathTest.test_parentss{H
AhKKiS1%%%Q5***Q4)))QqSAAeHH;///SbSAAeHH;///RaR11U88QQtWW"5666QRR11T77*---SSqSAAeHH;///TTrTQQtWWaahh$7888cQQuXXqqww$7888


z
*
*		FF															
AiLLiS1%%%Q6+++Q5***QqSAAfII<000QrTQQvYYL111RaR11V99aahh"7888QRR11U88+...SSqSAAfII<000TTrTQQuXXqqyy$:;;;cQQvYY%$9:::


z
*
*		FF															
AkNNiS1%%%Q9...Q7,,,QqSAAiLL?333QrTQQy\\O444RaR11Y<<7"<===QRR11W::-000SSqSAAiLL?333TTrTQQwZZ9$>???cQQy\\11W::$>???


z
*
*		FF																		s6	G33G7:G7	O))O-0O-
	W  W$'W$c|j}||djd||djd||djd||djd||djd||djd||djddS)	NrVrxrWc:/a/b/r[r\r^rsrrs  r
test_drivezPureWindowsPathTest.test_drivesH4---7)40005...9+T2227):6668*J777;-z:::::rc|j}||djd||djd||djd||djd||djd||djd||d	jddS)
NrVr$rxrWrXrr[r^rsrOrs  rrPzPureWindowsPathTest.test_rootsH4r***7"---5---9*D1117$///8)4000;,d33333rc|j}||djd||djd||djd||djd||djd||djd||d	jddS)
NrVrxrWrYrr[r]r^rs)rrrrrs  rtest_anchorzPureWindowsPathTest.test_anchorsH4...7*D1115&1119,f5557*L9998+\:::;.=====rcT|j}||djd||djd||djd||djd||djd||d	jd||d
jd||djddS)NrVr$rWrxr'rJc:a/b.pyr	c:/a/b.py//My.py/Share.php//My.py/Share.php/a/br
rs  r	test_namezPureWindowsPathTest.test_namesH4r***5+++7#...8)3///:+V444;,f555.//4b9992338#>>>>>rc|j}||djd||djd||djd||djd||djd||djd||d	jd||d
jd||djd||d
jd||djd||djd||djd||djd||djd||djddS)NrVr$rWrxrJrrr	c:a/.hgrc
c:/a/.hgrc
c:a/.hg.rcrc:/a/.hg.rcc:a/b.tar.gzr
c:/a/b.tar.gz!c:a/Some name. Ending with a dot."c:/a/Some name. Ending with a dot.rrrrs  rtest_suffixzPureWindowsPathTest.test_suffixs/H4,,,5"---7*B///8+R000:-u555;.666;.333</444</777=))0%888>**15999?++2E:::>??FKKK?@@GLLL.//6;;;233:B?????rc|j}||djg||djg||djg||djg||djdg||djdg||djg||d	jg||d
jdg||djdg||d
jddg||djddg||djg||djg||djg||djgdS)NrVrWrxrJrrrrrrrrrrrrrrrrrrs  r
test_suffixesz!PureWindowsPathTest.test_suffixessAH4)2...5*B///7,b1118-r222:/%999;05':::;0"555<12666<1E7;;;=))2UG<<<>**3fe_EEE?++4vuoFFF.//8"===233<bAAA>??H"MMM?@@I2NNNNNrc|j}||djd||djd||djd||djd||djd||d	jd||d
jd||djd
||djd||djddS)NrVr$zc:.zc:..rrWrxr'rrr#rr$rr%rr&r'rs  r	test_stemzPureWindowsPathTest.test_stemsdH4r***5+++6...5+++7#...:+S111;,g666<-u555>**/999>??D8	:	:	:	:	:rc8|j}||dd|d||dd|d||dd|d||dd|d|t|djd|t|d	jd|t|d
jd|t|djd|t|djd|t|djd
|t|djd
dS)Nrxr+z	c:a/d.xmlrJz
c:/a/d.xmlc:a/Dot ending.c:/a/Dot ending.rVrW
//My/Shared:d:ed:/er/rs  rtest_with_namez"PureWindowsPathTest.test_with_name%sH7--g66+GGG8..w77<III,--77@@!!K..QQQ-..88AA11\??SSS*aagg&7AAA*aahh&8'BBB*aaoo&?III*aajj&:DAAA*aajj&:EBBB*aajj&:FCCC*aajj&:LIIIIIrc8|j}||dd|d||dd|d||dd|d||dd|d|t|djd|t|d	jd|t|d
jd|t|djd|t|djd|t|djd
|t|djd
dS)Nrxr*zc:a/drJzc:/a/drrrVrWrrrrr3rs  rtest_with_stemz"PureWindowsPathTest.test_with_stem3sH7--c22AAgJJ???8..s33QQx[[AAA,--77<<aajjIII-..88==qq{{KKK*aagg&7===*aahh&8#>>>*aaoo&?EEE*aajj&:DAAA*aajj&:EBBB*aajj&:FCCC*aajj&:LIIIIIrc|j}||dd|d||dd|d||dd|d||dd|d|t|djd|t|d	jd|t|d
jd|t|djd|t|djd|t|djd
|t|djd
|t|djd|t|djd|t|djd|t|djd|t|djd|t|djd|t|djd|t|djddS)Nrxrzc:a/b.gzrJz	c:/a/b.gzrrr$r,rrr7rXrVr8z\.gzzc:.gzrnrgz.c/dz.c\d)rrrr9rrrs  rtest_with_suffixz$PureWindowsPathTest.test_with_suffixAsH7//66*

FFF80077;HHH:2259911Z==III;33E::AAkNNKKK*aaee&7???*aaff&8%@@@*aaff&8%@@@*aaoo&A5III*aajj&<dCCC*aajj&<cBBB*aajj&<dCCC*aajj&<dCCC*aajj&<fEEE*aajj&<gFFF*aajj&<gFFF*aajj&<eDDD*aajj&<fEEE*aajj&<fEEE*aajj&<gFFFFFrc	l|j}|d}|||d|d||d|d|||d|d||d|d||d|d|||d|||d||t|j||t|jd|t|j|d	|t|j|d
|t|j|d|t|j|d|t|j|d
|t|j|d|t|j|d|d}|||d|d||d|d|t||dd|t|dd|||d|d||d|d|||d|d||d|d||d|d|||d|||d||t|j|d|t|j|d|t|j|d|t|j|d|t|j|d	|t|j|d|t|j|d
|t|j|d|t|j|d|d}|||d|d||d|d||d|d|||d |d||d |d||d!|d|||d"|||d"||t|j|d#|t|j|d$|t|j|d%|t|j|d&dS)'N	C:Foo/BarrVzFoo/Barc:foOBarc:foO/	c:foO/baRr$rrFoo/FooC:/Foo
C:Foo/Bar/Baz	C:Foo/Baz
C:/Foo/Barz/Foo/Barz\Foo\BarrWc:/foOc:/foO/
c:/foO/baRC:/BazC:/Foo/Bar/Baz
C:/Foo/BazC:Food:///C/Foo//Server/Share/Foo/Bar//sErver/sHare//sErver/sHare///sErver/sHare/Foo//sErver/sHare/Foo///sErver/sHare/Foo/Bar/Server/Share/Fooc:/Server/Share/Foo
//z/Share/Foo//Server/z/Foo)rrrr>rrrr{s   rtest_relative_toz$PureWindowsPathTest.test_relative_toYsH
AkNNqqww//9>>>t,,aa	ll;;;qqzz22AAeHH===w//5:::x00!!E((;;;qq~~66<<<{33QQSS999*amQQSS999*amR888*amQQtWW===*amQQsVV<<<*amQQuXX>>>*amQQvYY???*amQQx[[AAA*amQQ5G5GHHH*amQQ{^^DDD
AlOOqqww//:???t,,aa
mm<<<Q]]11T773344lCCCQ]]40011<@@@qqxx00!!I,,???u--qq||<<<qq{{33QQuXX>>>x00!!E((;;;y1111U88<<<qq77===|44aacc:::*amQQx[[AAA*amQQ7G5H5HIII*amQQ|__EEE*amQQwZZ@@@*amQQtWW===*amQQuXX>>>*amQQsVV<<<*amQQvYY???*amQQy\\BBB
A&''qq)9':':;;QQy\\JJJ'788!!I,,GGG'89911Y<<HHHqq)='>'>??5JJJ';<<aahhGGG'<==qqxxHHHqq)A'B'BCCQQSSIII'?@@!!##FFF*amQQ7J5K5KLLL*amQQ7L5M5MNNN*amQQ5G5GHHH*amQQ7G5H5HIIIIIrc|j}|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"dS)#NrrVrrrr$rrrrrrrrrWrrrrrrrrrrrrrrrrrrr)rrrrArr{s   rtest_is_relative_toz'PureWindowsPathTest.test_is_relative_tosH
AkNN((411222((..///((744555((11222((22333((;88999((55666))!!##..///))"--...))!!D''22333))!!C&&11222))!!E((33444))!!F))44555))!!H++66777))!!O*<*<==>>>))!!K..99:::
AlOO((..///((522333((855666((33444((<99:::((66777))!!H++66777))!!,<*=*=>>???))!!L//::;;;))!!G**55666))!!D''22333))!!E((33444))!!C&&11222))!!F))44555))!!I,,77888
A&''((+;)<)<==>>>(()9::;;;(():;;<<<((+?)@)@AABBB(()=>>???(()>??@@@((+C)D)DEEFFF(()ABBCCC))!!,?*@*@AABBB))!!,A*B*BCCDDD))!!O*<*<==>>>))!!,<*=*=>>?????rc|j}||||d||d||d||d||d||d||d||d||d	||d
||d||d||d
||d||ddS)Nr%r)rr.rHrVr?zc:a/b/rWrZrr[r^r_rsr`rs  rrbz$PureWindowsPathTest.test_is_absolutes}H**+++3++--...6..001113++--...4,,..///7//112224,,..///5--//00080022333%,,..///&		--//000)0022333'

..00111(//11222)0022333+224455555rc|j}|d}|d}|||d|d}|||d|d}|||d|d}|||d|d}|||d|d	}|||d|d
}|||ddS)NC:/a/bx/y
C:/a/b/x/y/x/yC:/x/yD:x/yD:/x/y//host/share/x/yc:x/yc:/x/yrjrs    rrkzPureWindowsPathTest.test_joinsmH
AhKK
ZZ

QQ|__---
ZZ

QQx[[)))ZZ
 
 QQwZZ(((
ZZ
!
!QQx[[)))
ZZ*
+
+QQ122333ZZ
 
 QQ|__---
ZZ
!
!QQx[[)))))rc.|j}|d}||dz|d||dzdz|d||dz|d||dzdz|d||d	z|d	||d
zdz|d	||dz|d||d
zdz|d||dz|d||d
z|d||dz|ddS)Nrrrryrrz/xrzD:rrrrrmr{s   rrnzPureWindowsPathTest.test_divsH
AhKKUAAlOO444S3,888VQQx[[111TC8555	
Waajj111TE)11W::666Xqq{{333TF*AAhKK888//3E1F1FGGG	
Waaoo666Xqq{{33333rcD	|j}|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|ddS)NFr$rrdz//my/share/nul/con/auxTnulauxprnconzconin$zconout$COM1LPT9ucom¹ucom²ulpt³zNUL.txtzPRN  z	AUX  .txtzCOM1:barzLPT9   :barzbar.com9zbar.lpt9zc:/baz/con/NULzc:/NUL/con/bazrers  rrgz$PureWindowsPathTest.test_is_reservedsH

eQQrUU..00111

eQQsVV//11222

eQQz]]6688999

eQQ788DDFFGGG

dAAeHH0022333

dAAeHH0022333

dAAeHH0022333

dAAeHH0022333

dAAhKK3355666

dAAiLL4466777

dAAfII1133444

dAAfII1133444

dAAiLL4466777

dAAiLL4466777

dAAiLL4466777	


dAAiLL4466777

dAAgJJ2244555

dAAkNN6688999

dAAjMM5577888

dAAm,,88::;;;	


eQQz]]6688999

eQQz]]6688999

dAA.//;;==>>>

eQQ/00<<>>?????rN)#r5r6r7rQPureWindowsPathrrrjrcopyupdatertrvrSrUrrrrrrrPrrrrrrrrrrrbrkrnrgr8rrrqrqs

!C$16688L>>>.O





3
3
3	>	>	>
G
G
G??? KKK0   "
:
:
:===$,,,\;;;444>>>	?	?	?@@@&OOO&:::JJJJJJGGG08J8J8Jt3@3@3@j666****,444(!@!@!@!@!@rrqc.eZdZejZdZdZdZdS)PurePathTestc|d}|t|tjdkrt
jnt
jdSNr%nt)rrrrrrrQrrorts  rtest_concrete_classz PurePathTest.test_concrete_class-sVHHSMM

d1gg')w$G##G<Q	S	S	S	S	Srctjd}tjd}|||dSrq)rQrorrrrurs   rtest_different_flavours_unequalz,PurePathTest.test_different_flavours_unequal2s>!#&&#C((Aq!!!!!rctjd}tjd}|t5||kdddn#1swxYwY|t5||kdddn#1swxYwY|t5||kdddn#1swxYwY|t5||kddddS#1swxYwYdSrq)rQrorrrrs   r!test_different_flavours_unorderedz.PurePathTest.test_different_flavours_unordered7s!#&&#C((


y
)
)		
EE															


y
)
)		
FF															


y
)
)		
EE															


y
)
)		
FF																		sHAAA;BBB3CC

C
+C??DDN)	r5r6r7rQPurePathrrrrrr8rrrr*sL

CSSS
"""





rrc:tjjtg|RSr)rpathjoinBASErs r<lambda>rJs"',t(a(((rc:tjjtg|RSr)rrrrrs rrrKsbgl6.A...rrz)test requires a Windows-compatible systemz'test requires a POSIX-compatible systemceZdZejZdS)PosixPathAsPureTestN)r5r6r7rQ	PosixPathrrr8rrrrRs

CCCrrc(eZdZejZdZdZdS)WindowsPathAsPureTestc|j}|t5|dddddS#1swxYwYdSNrW)rrrNotImplementedErrorownerrs  r
test_ownerz WindowsPathAsPureTest.test_ownerZH


2
3
3		
AeHHNN																		A

AAc|j}|t5|dddddS#1swxYwYdSr)rrrrgrouprs  r
test_groupz WindowsPathAsPureTest.test_group_r
rN)r5r6r7rQWindowsPathrrr	rr8rrrrVs:

C
rrceZdZdZdZejdkrdZndZdZdZ	dZ
d	Zd
ZdZ
dZejed
uddZdZdZejeddZdZdZdZdZdZdZejdZdZ dZ!dZ"ejdZ#d Z$d!Z%ejd"Z&ejd#Z'dgd%Z(e(xZ)Z*ejd&Z+ejd'Z,d(Z-d)Z.ej/d*Z0e1ej/d+Z2ej/d,Z3ejd-Z4d.Z5ejd/Z6d0Z7ej8ed1d2Z9ej8e:d3d4Z;d5Z<d6Z=d7Z>ej8e?ed8d9d:Z@ej8e?ed8d9d;ZAeje?ed8d<d=ZBd>ZCd?ZDejd@ZEdAZFdBZGdCZHdDZIdEZJdFZKejeLdGdHZMeNdIZOdJZPdKZQdLZRejdMZSdNZTdOZUe1dPZVdQZWdRZXej8e?edSdTejeYjZdUkdVdWZ[dXZ\ej8e?e]dYdZejeLd[ejed\d]Z^d^Z_d_Z`d`ZadaZbdbZcdcZdejddZeejdeZfejdfZgd
S)h
_BasePathTestz?Tests for the FS-accessing functionalities of the Path classes.c,d}||tjttjt	dtjt	dtjt	dtjt	ddtjt	dtt	dd5}|d	dddn#1swxYwYtt	dd
d5}|ddddn#1swxYwYtt	ddd5}|d
dddn#1swxYwYtt	ddd5}|ddddn#1swxYwYtt	dddd5}|ddddn#1swxYwYtjt	ddtj	rtj
dt	dtj
dt	d|dt	d|tjddt	dd|tjddt	ddtj
dt	ddSdS)Nc|tjtddtjt
dS)NdirE)rchmodrrrmtreerr8rrcleanupz$_BasePathTest.setUp.<locals>.cleanup}s1HT&\\5)))T"""""rdirAdirBdirCdirDrfileAwbsthis is file A
fileBsthis is file B
fileCsthis is file C
z	novel.txtsthis is a novel
fileDsthis is file D
rlinkAnon-existing
brokenLinklinkBrlinkClinkDbrokenLinkLoop)
addCleanuprmkdirrropenwriterrcan_symlinksymlinkdirlinkr)rrr s   rrvz_BasePathTest.setUp|s	#	#	#	
   

f
f
f
ff%%&&&
f
$w--
&
&	)!
GG'(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)
$vw''
.
.	)!
GG'(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)
$vw''
.
.	)!
GG'(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)
$v{++T
2
2	*a
GG()))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*
$vvw//
6
6	)!
GG'(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)
fq!!! ""		BJwW

...J~tL'9'9:::LLg///LLdF33T&'5J5JKKKLLdF33T&'5J5JKKKJ'$/?*@*@AAAAA		B		BsZ5DDDE""E&)E&F--F14F1G88G<?G<"IIIrc4tj||ddS)NTtarget_is_directoryrr.rsrcdests   rr/z_BasePathTest.dirlinksJsDd;;;;;;rc0tj||dSrr3r4s   rr/z_BasePathTest.dirlinksJsD!!!!!rc|tjt	|t	||d|ddS)Nz and z don't point to the same file)rrrsamefilerrpath_apath_bs   r
assertSamez_BasePathTest.assertSamesT((Vc&kkBB)	*	*	*	*	*rc|t5}||i|dddn#1swxYwY||jjtjdSr)rFileNotFoundErrorr	exceptionerrnoENOENT)rfuncrkwargscms     rassertFileNotFoundz _BasePathTest.assertFileNotFounds


0
1
1	"RD$!&!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"+U\:::::s	044c|tj|tj|dSr)rrrnormcaser:s   rassertEqualNormCasez!_BasePathTest.assertEqualNormCases>))&11273C3CF3K3KLLLLLrc|tj}||||t|t||t|t|||	dSr)
rrrgetcwdrrIrrrrrars   r	_test_cwdz_BasePathTest._test_cwdsHHRY[[!!A  QQ000

d1ggtAww'''

(((((rcb|j}||dSr)rrcwdrLrts  rtest_cwdz_BasePathTest.test_cwds)HLLNNqrc
|j}tjd5}t|_|t
|t|t
|dt|t
|dtj	
td|t
|dddtj	
tddd|t
|ddtj	
tdd|t
|dtj	
td|t
|d	tj	
td	|t
|d
tj	
td
|t
|dd
tj	
tdd
|t
|d
dtj	
td
dddddS#1swxYwYdS)N	os.getcwdr,r%r'r+r%rr$r(r)rrrpatchrreturn_valuerrabsoluterrr)rr|rKs   rtest_absolute_commonz"_BasePathTest.test_absolute_commons)H
Z
$
$	Z"&F
S00$777S3!2!233T:::S3!2!233RW\\$5L5LMMMS3S!1!1!:!:!<!<==rw||DRUWZ\_?`?`aaa
S7G!4!4!=!=!?!?@@"',,tU\^eBfBfgggS<!9!9!;!;<<bgll4Q]>^>^___S#3!4!4!=!=!?!?@@"',,tUeBfBfggg
S4!1!1!3!344bgll46N6NOOOS3!6!6!8!89927<<cSW;X;XYYYS4!6!6!8!89927<<dTW;X;XYYY#	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	ZsN$O

OOc|tjd}||||t
|t
||t|t||	|
dS)N~)rrrr
expanduserrrIrrrrrars   r
_test_homez_BasePathTest._test_homesHHRW'',,--A  QQ000

d1ggtAww'''

(((((rNz(Test requires pwd module to get homedir.)reasonc.tj5}||j|tjtd|d<||jtjtd|d<||jddddS#1swxYwYdS)NuserprofileUSERPROFILEhomeHOME)
rEnvironmentVarGuardrYrrr^clearrrrr)renvs  r	test_homez_BasePathTest.test_homes

*
,
,		-OODHMMOO,,,IIKKK!#dM!B!BC
OODHMMOO,,,',,tV44CKOODHMMOO,,,		-		-		-		-		-		-		-		-		-		-		-		-		-		-		-		-		-		-sC)D

DDcZtjtd}tjtdd}||}||}||}||||||||||||tjtd}||}|t|j||t|j||t|j||t|j||t|j||t|j|dS)Nrrrfoo)
rrrrrrrr9rrr?)r
fileA_path
fileB_pathrurrnon_existentrs        r
test_samefilez_BasePathTest.test_samefilesW\\$00
W\\$88
HHZ  
XXj
!
!HHZ  

:..///

2'''J//000A'''w||D%00HH\""+QZ;;;+QZFFF+QZ;;;+QZFFF+QZ;;;+QZFFFFFrc|d}||tjddS)Nr$r,)rrrstatrrts  rtest_empty_pathz_BasePathTest.test_empty_paths=HHRLL273<<00000rzWASI has no user accounts.c|j}|d}|||tjd|d}||||d}||||d}|||||djdz}|||dS)NrWre/~../~r$)rrrrXrrrTrr{s   rtest_expanduser_commonz$_BasePathTest.test_expanduser_commonsH
AcFF27+=+=c+B+B)C)CDDD
AeHH+++
AdGG+++
AfII+++
Aaaeenn%&&,+++++rc|j}|t}|d||d|dz|d|dz|d|dzdzt	jr|d|dz|d|dz|d|dzdz|d|dzdz|d|d	z|d|d
|d|tdz|d|tdzdS)
NTrrFbahr"r%rrez/xyzzyu)rrrrexistsrr-r{s   rtest_existsz_BasePathTest.test_existssH
AdGG

dAHHJJ'''

dQZ//11222

dQ[0022333

ea'kE199;;<<< ""	AMM$W 4 4 6 6777MM$W 4 4 6 6777MM$Ww!6 > > @ @AAAMM%!g+"5!=!=!?!?@@@

ea%i//11222

eQQx[[//11222

eQQth//6688999

eQQtf}--446677777rcX|t}|dzd5}||tj||ddddn#1swxYwY|dzd5}||tj||	ddddn#1swxYwY|dzdd5}||tj
||	dddddS#1swxYwYdS)Nrrzthis is file A
rbthis is file Ar)	buffering)rrrr+rzio
TextIOBaserreadBufferedIOBasestrip	RawIOBase)rrur s   rtest_open_commonz_BasePathTest.test_open_common!sDHHTNN'k


$
$	;!!!R]333QVVXX'9:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;'k


%
%	B!!!R%6777QVVXX^^--/@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B'k



2
2	Ba!!!R\222QVVXX^^--/@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs8A	BBB+ADDD7AFF#&F#c^|t}|dzd||dzd|t|dzjd||dzddS)Nrsabcdefgsomestr)rrrwrite_bytesr
read_bytesrrrts  rtest_read_write_bytesz#_BasePathTest.test_read_write_bytes-sHHTNN	
W!!*---!g+1133Z@@@)a'k%>	JJJ!g+1133Z@@@@@rcl|t}|dzdd||dzddd|t|dzjd	||dzdddS)
Nruäbcdefgzlatin-1encodingzutf-8ignore)rerrorsbcdefgs	somebytes)rrr
write_textr	read_textrrrts  rtest_read_write_textz"_BasePathTest.test_read_write_text5sHHTNN	
W  i @@@!g+00X1//08	:	:	:	
)a'k%=|LLL!g+00)0DDjQQQQQrc|t}|dzdd||dzd|dzdd||dzd|dzdd||dzd	ttjd
}|dzd||dzd
|zdz|zdzdS)Nrzabcde
fghlk

mnopq
)newlinesabcde
fghlk

mnopq
sabcde

fghlk

mnopqz
sabcde

fghlk

mnopqasciirzabcde
fghlk

mnopqsabcdesfghlks
mnopq)rrrrrrrrlinesep)rruos_linesep_bytes   rtest_write_text_with_newlinesz+_BasePathTest.test_write_text_with_newlines>svHHTNN	
W  !:D III!g+11333	5	5	5
W  !:D III!g+11333	5	5	5
W  !:F KKK!g+11337	9	9	9 
W===	
W  !8999!g+1133"_4x?/QT^^	`	`	`	`	`rc|jt}|}t|}gd}t	jr|gdz
}||fd|DdS)N)rrrrr)r"r%r$r(c2h|]}t|Sr8rrrr|s  r	<setcomp>z-_BasePathTest.test_iterdir.<locals>.<setcomp>Zs# @ @ @!!D!** @ @ @r)rrriterdirsetrr-r)rruitpathsrr|s     @rtest_iterdirz_BasePathTest.test_iterdirRsH
AdGG
YY[[B<<< ""	KJJJJH @ @ @ @h @ @ @AAAAArc|jtd}t|}fddD}|||dS)Nr%c4h|]}td|S)r%rrs  rrz5_BasePathTest.test_iterdir_symlink.<locals>.<setcomp>bs'FFFQQQtWa((FFFr)rr')rrrrrr)rrurrr|s    @rtest_iterdir_symlinkz"_BasePathTest.test_iterdir_symlink\sh
H
AdGAIIKK  FFFF2DFFF)))))rcd|td}|t5}t	|dddn#1swxYwY||jjtj	tj
tjfdSNr)rrrrOSErrornextrassertInr@rAENOTDIRrBEINVALrrurEs   rtest_iterdir_nodirz _BasePathTest.test_iterdir_nodiresHHT7##


w
'
'	2																


bl(5=+0<+G	H	H	H	H	Hs"A$$A(+A(cfd}jt}|d}|tjj||dg||dg||dddgtjs"||dddgn!||dgd	tjs!||d
dgn!||d
gdtjs!||ddgn!||ddd
gtjs#||dgddS||dgddS)Ncft|fd|DdS)Nc2h|]}t|Sr8rrs  rrzA_BasePathTest.test_glob_common.<locals>._check.<locals>.<setcomp>q#(H(H(H!!D!**(H(H(Hrrrglobrr|rs  r_checkz._BasePathTest.test_glob_common.<locals>._checkp:SYY(H(H(H(Hh(H(H(HIIIIIrrrz
dir*/file*
dirB/fileB
dirC/fileCz*Ar)rrr"z*B/*)r
dirB/linkDlinkB/fileBzlinkB/linkD*/fileBr*/)rrrr)rrrrr%)	rrrrrzcollectionsrIteratorrr-rrrurr|s`   @rtest_glob_commonz_BasePathTest.test_glob_commonos5	J	J	J	J	J	JH
AdGG
VVG__b+/":;;;rG9qvvg###qvvl##lL%ABBB$&&	=F166$<<&'!23333F166$<<!;!;!;<<<$&&	CF166&>>L>2222F166&>>$B$B$B
C
C
C$&&	EF166)$$|n5555F166)$$|]&CDDD$&&	LF166$<<!A!A!ABBBBBF166$<<!J!J!JKKKKKrcfd}jt}|d}|tjj||dg||ddg||dgtjs!||ddgn!||dgd||dgd	tjs"||d
gdn!||d
gd||d
gdtd}||dgd||dddg||ddg||d
dg||d
ddg||ddg||ddgdS)Ncft|fd|DdS)Nc2h|]}t|Sr8rrs  rrzB_BasePathTest.test_rglob_common.<locals>._check.<locals>.<setcomp>rrrrs  rrz/_BasePathTest.test_rglob_common.<locals>._checkrrrrrz*/fileAr)rzdirB/linkD/fileBrzdirA/linkC/fileBzfile*)rrrdirC/dirD/fileDr)rrr	dirC/dirDr)r
dirA/linkCrrrrrr%r$)r$rrrrrr*)rdirC/novel.txtrrrrz*/*rz*.txtrz*.*)	rrrrglobrzrrrrr-rs`   @rtest_rglob_commonz_BasePathTest.test_rglob_commons	J	J	J	J	J	JH
AdGG
WWW

b+/":;;;rG9qwww,000qwwy!!2&&&$&&	LF1779%%~6666F1779%%(K(K(K
L
L
Lqwww"C"C"C	D	D	D$&&	F1774==###




F1774==###


	qwwr{{MMMNNN
AdFOOqwws||>>>	?	?	?qwww,0A!BCCCqwwu~~ 12333qwwt}}{m,,,qwwr{{V[1222qwww"2!3444qwwu~~ 0122222rc|j}|ttd}hd}||fd|DdS)Nr>rrrrrr"r%r$r(rrrrrrrch|]}|zSr8r8)rrrus  rrz8_BasePathTest.test_rglob_symlink_loop.<locals>.<setcomp>s 7 7 71Q 7 7 7r)rrrrrr)rr|givenexpectrus    @rtest_rglob_symlink_loopz%_BasePathTest.test_rglob_symlink_loopst
H
AdGGAGGCLL!!


	
 7 7 7 7 7 7 788888rcd}|j}|tdz|gdg|zR}|dddg|zfdt	d	D}|D]%}|t
||&fd
t	d	D}}t	|D]/}|dz}|D]%}|t
||&0dS)Ndeepr*Trrrc:g|]}Sr8)r)rjbasepatterns  rrz;_BasePathTest.test_glob_many_open_files.<locals>.<listcomp>s%8887##888rdc:g|]}dS)r*)r)rrrs  rrz;_BasePathTest.test_glob_many_open_files.<locals>.<listcomp>s#555QC555r)rrrr*rrDrr)	rdepthr|ruitersrirrs	       @@rtest_glob_many_open_filesz'_BasePathTest.test_glob_many_open_filess9Hqww
Ad#seEk###	((C55=))88888U3ZZ888	*	*BT"XXq))))5555%**555u	.	.ACA
.
.  b1----
.	.	.rc|j}|t}|t|d|tdh|t|d|tdh|t|dtdS)Nrz
dirA/../file*z
dirA/../fileAz../xyzzy)rrrrrrr{s   rtest_glob_dotdotz_BasePathTest.test_glob_dotdotsH
AdGGQVVD\\**aadmm,=>>>QVVO445549Q9Q7STTTQVVJ//00#%%88888rc
n|j}|tdz}||dz}||dz}||dz}|dz}||dzt
jfd}tjd|5|	tt|d	d
||	tt|d	d|
d|	tt|d	dddddS#1swxYwYdS)
Npermissionsfile1file2subdirfile3otherc|5}t|}dddn#1swxYwY|dtj|S)Nc|jSr)r)entrys rrzI_BasePathTest.test_glob_permissions.<locals>.my_scandir.<locals>.<lambda>s5:r)key)rsort
contextlibnullcontext)r
scandir_itentriesreal_scandirs   r
my_scandirz7_BasePathTest.test_glob_permissions.<locals>.my_scandirsd##
+zz**
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+LL55L666)'222s)--z
os.scandirrrr)rrrr*touch
symlink_torscandirrrRrrrrr)	rr|rrrrrrrs	        @rtest_glob_permissionsz#_BasePathTest.test_glob_permissionss
Hqww&

w



w



w
')***
z	3	3	3	3	3Zj
1
1	:	:STYYs^^!4!455q999LLNNNSTYYs^^!4!455q999LLSTYYs^^!4!455q999	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:s*C3F**F.1F.c
|tdz}||dz}|d|t|d|gdS)Nlong_symlinkbad_linkXbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadz**/*)rrrr*rrsortedr)rrrs   rtest_glob_long_symlinkz$_BasePathTest.test_glob_long_symlinksuxx~~.

*$K(((		& 1 122XJ?????rTc\||}|||dSr)resolver)rrurstrictrs     r_check_resolvez_BasePathTest._check_resolve
s/
IIfH%%%%%rcV
|j}|td}|t5}|ddddn#1swxYwY||jjtj|	t|dtj
td|tddd}|	t|dtj
tddd|tdddd}|	t|dtjtj
ddd|tdd	}||||td
}|||td|tdd
d	}|||tdd	|tddd	}|||tdd	|tdd
d	ddd}|||tdd	dddd|tdd
dddd}tjdkr*|||tdddddn(|||tddddt#jt'jdtj}|t"j|tjtj
|tddtjtdtj
|d|tdddd	}|||tdd	|tdddddd}|||tddddd|tddddddd}tjdkr%||||dddddS|||tdddddS)NreTrFinspamrrrr"rrr&r'rz-dirD)rdirlinkXlinkY)rrrrrrrr@rArBrIrrrrabspath_check_resolve_relativerr	_longpathtempfilemkdtemprKr)rr._check_resolve_absolute)rr|rurEr*s     rtest_resolve_commonz!_BasePathTest.test_resolve_commonsH
AdENN


w
'
'	#2
IITI"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#+U\:::  QYYeY%<%<!=!=!#dE!:!:	<	<	<
AdE4((  QYYeY%<%<!=!=!#dE4!H!H	J	J	J
AdD%v..  QYYeY%<%<!=!=!#eT61R1R!S!S	U	U	U
AdFG$$$$Q***
AdG$$Q$(8(8999
AdFGW--$$Q$(@(@AAA
AdFGW--$$Q$(@(@AAA
AdFGWeT6BB$$Q$*0)2)238	:	:	:
AdFGT5$??
7d??
((AAdFE4.4-6-67<
>
>
>
>

((AAdE4,H,H%PPP 057Y[[!B!B!B
C
C	(!,,,

27<<??D$9$9:::

4<<a!9!9:::
AdFGWg66$$Q$(@(@AAA
AdFGWeT6BB$$Q$tV(L(L%*	,	,	,
AdFGWdE4HH
7d??
((AAaf,E,EuMMMMM
((AAdE4,H,H%PPPPPsAAAc|t}|dtd|tjddtd|tjddtd|dz}||d||dzdz}|t|jd||d	|dzdzdS)
Nr,012Tr34F)
rrrr/rrrrrrr?)rrurrs    rtest_resolve_dotz_BasePathTest.test_resolve_dotNs
HHTNNS$s))$$$RW\\#s++T#YY777RW\\#s++T#YY777
G$//333
GcM+QYtDDD%00!c'C-@@@@@rch|dd}tj}tjt	|||t|tj|dS#tj|wxYw)Nnonexist)rrrrKchdirrrr)rruold_cwds   r)test_resolve_nonexist_relative_issue38671z7_BasePathTest.test_resolve_nonexist_relative_issue38671\sHHUG$$)++
	QYY[[$((4*;*;<<<HWBHWs
ABB1c|t}|}|}t||t
5|5	dddn#1swxYwYdddn#1swxYwYt|t|||||t
5|5	dddn#1swxYwYddddS#1swxYwYdSr)	rrrrrassertWarnsDeprecationWarningrtrrT)rrurit2s    r	test_withz_BasePathTest.test_withfsHHTNN
YY[[iikkS			


0
1
1		
















															
	
RS				


				




0
1
1		
















																		sl,B/A=1B=B	BB	BBBD<D$D<$D(	(D<+D(	,D<<EEc|tdz}|j}|dz}||||j||dz}||||j|dS)Nrm)rrrrkst_moderr)rrumodenew_modes    r
test_chmodz_BasePathTest.test_chmodzsHHTNNW$vvxx&=	)8444%<	)844444rc|tdz}|}|j}|dz}||d||j||dz}||d||j|dS)Nr"r!Tfollow_symlinksr")rrrrrkr#rr)rrurr$r%s     rtest_chmod_follow_symlinks_truez-_BasePathTest.test_chmod_follow_symlinks_trues
HHTNNW$
IIKKvvxx&=	$///)8444%<	$///)844444rc|tdz}|}|||||jdz||j|j|||dS)Nrr")rrrrkrrr#r)rrrusts   r	test_statz_BasePathTest.test_statsHHTNNW$
VVXX2&&&	
U"###,,,AFFHHb)))))rc|tdz}|}|||ddS)Nr"Fr()rrrrkrr,s   rtest_stat_no_follow_symlinksz*_BasePathTest.test_stat_no_follow_symlinkssMHHTNNW$
VVXXBu = =>>>>>rc|tdz}|}|||ddS)NrFr()rrrrkrr,s   r&test_stat_no_follow_symlinks_nosymlinkz4_BasePathTest.test_stat_no_follow_symlinks_nosymlinksMHHTNNW$
VVXXQVVEV::;;;;;rc|tdz}|}|||dS)Nr")rrrrkrlstatr,s   r
test_lstatz_BasePathTest.test_lstatsGHHTNNG#
VVXXB		*****rc|tdz}|}|||dSr)rrrrkrr4r,s   rtest_lstat_nosymlinkz"_BasePathTest.test_lstat_nosymlinksGHHTNNW$
VVXXQWWYY'''''rz&the pwd module is needed for this testcH|tdz}|j}	t	j|j}n(#t$r|d|zYnwxYw|	||
dS)Nrz4user %d doesn't have an entry in the system database)rrrrkst_uidpwdgetpwuidpw_nameKeyErrorr[rr)rruuidrs    rr	z_BasePathTest.test_ownersHHTNNW$ffhho	N<$$,DD	N	N	NMMFL
N
N
N
N
N	N	
qwwyy)))))A"A76A7z&the grp module is needed for this testcH|tdz}|j}	t	j|j}n(#t$r|d|zYnwxYw|	||
dS)Nrz5group %d doesn't have an entry in the system database)rrrrkst_gidgrpgetgrgidgr_namer=r[rr
)rrugidrs    rrz_BasePathTest.test_groupsHHTNNW$ffhho	O<$$,DD	O	O	OMMG#M
O
O
O
O
O	O	
qwwyy)))))r?c|tdz}|||j||jdSr)rrrunlinkrFrkrts  rtest_unlinkz_BasePathTest.test_unlinksUHHTNNW$	


''')))))rc|tdz}||j|ddS)NfileAAAT)
missing_ok)rrrrFrGrts  rtest_unlink_missing_okz$_BasePathTest.test_unlink_missing_oksFHHTNNY&)))	D!!!!!rc&|tdz}|D]}||||j||jdS)Nr)rrrrrGrmdirrFrkrs   r
test_rmdirz_BasePathTest.test_rmdirs{HHTNNV#		A
HHJJJJ				''')))))rlinkzos.link() is not presentc|t}|dz}|j}|dzdz}	|t
5||dddn#1swxYwYn/#t$r"}|d|zYd}~nd}~wwxYw|	|j||	tj||d|
|jtd}|t
5||dddn#1swxYwY|	tj|j||
|jdS)NrrfileAAz
os.link(): %sTrJ)rrrrkst_sizerrlink_toPermissionErrorr[rrrr9rrel_join)rr|rusizerers       rtest_link_toz_BasePathTest.test_link_tosHHTNN
Kvvxx
J!	/!!"455

		!














	/	/	/MM/A-........	/)4000))!Q//666Y


0
1
1		
IIaLLL															+T222sNB
A>2B
>BB
BB


B6B11B6E??FFc|t}|dz}|j}|dzdz}||||j||tj	||||
|dzdz}td}|||tj|j|||
dSNrrrRrJ)rrrrkrShardlink_torrrrr9rtrV)rr|targetrWrPlink2target2s       rtest_hardlink_toz_BasePathTest.test_hardlink_tosHHTNNW{{}}$6zH$   ,d333((66777

(((F
Y&7##
'"""))14888'''''rzos.link() is presentc|t}|dz}|dzdz}|t5||ddddS#1swxYwYdS)NrrrR)rrrrrrTrr|rurs    rtest_link_to_not_implementedz*_BasePathTest.test_link_to_not_implemented
sHHTNN
K
J!


2
3
3		
IIaLLL																		sA%%A),A)c|t}|dz}|j}|dzdz}||}|||||j|||jtd}||}|||||tj|j|||jdSr[)	rrrrkrSrenamerrFrVr)rr|rurWr	renamed_pr	renamed_qs        rtest_renamez_BasePathTest.test_renames
HHTNN
Kvvxx
J!HHQKK	A&&&)4000'''YHHQKK	DHHQKK000+T222'''''rc|t}|dz}|j}|dzdz}||}|||||j|||jtdd}||}|||||tj|j|||jdS)NrrrRrr)	rrrrkrSrrrFrVr)rr|rurWr
replaced_pr
replaced_qs        rtest_replacez_BasePathTest.test_replace$sHHTNN
Kvvxx
J!YYq\\
Q''')4000'''VW%%YYq\\
TXXa[[111+T222'''''rcB|t}||dz|d||dz|d||dz|d|t
5|dzddddS#1swxYwYdS)Nr"rr$r#r%r)rrrrreadlinkrrrs  r
test_readlinkz_BasePathTest.test_readlink5s=HHTNN!g+//11488G3D3DEEE!l*4466.11	3	3	3!g+//11488F3C3CDDD


w
'
'	%	%
[""$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%s/DDDct|t}|dz}||||||}|j}|j}tj
t||dz
|dz
f||}||j|||j||dz}|||dd|||
t|jddS)NnewfileA
newfileBiF)r$exist_okrt)rrrrrtrrrkst_mtimest_mtime_nsrutimerrrr)rr|rur-	old_mtimeold_mtime_nss      rtest_touch_commonz_BasePathTest.test_touch_common?saHHTNN
N$$$				

###
VVXXK	~	Q)b.)b.9:::				
VVXX===Y777
N$$$	UU+++

###'17U;;;;;rc<|t}|dz}||d5}||dddddS#1swxYwYdS)Nrrwrx)rrrrr+rr|r~)rr|rur s    rtest_touch_nochangez!_BasePathTest.test_touch_nochangeWsHHTNN
K				
VVD\\	BQQVVXX^^--/@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs	;BBBc6|t}|dz}||||||||t5}|dddn#1swxYwY|	|j
jtjdS)NnewdirA)
rrrrrtr*ris_dirrrrr@rAEEXIST)rr|rurEs    r
test_mkdirz_BasePathTest.test_mkdir^s
HHTNN
	M$$$				

###

###


w
'
'	2
GGIII															+U\:::::sC$$C(+C(c|tdd}|||t
5}|dddn#1swxYwY||jj	tj
|d|||||t
5}|ddddn#1swxYwY||jj	tj
tj|j}|tdd}|dd||||t"jdkrB|tj|jd	|z|tj|jj|dS)
NnewdirBnewdirCTrnewdirDnewdirEimrim)rrrrrtrrr*rr@rArBrrrrkS_IMODEr#rrr)rrurEr$s    rtest_mkdir_parentsz _BasePathTest.test_mkdir_parentsisHHT9i00$$$


w
'
'	2
GGIII															+U\:::	

###

###


w
'
'	"2
GGDG!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"+U\:::|AFFHH,--HHT9i00	t$$$

###

###
7d??T\!&&((*:;;Vd]KKKahmmoo&=>>EEEEEs$A??BB2EEEc|td}|j}|||||t5}|	dddn#1swxYwY|
|jjtj
|	d|||
|j|dS)NrTru)rrrrkst_ctimerrtrrFileExistsErrorr*rr@rAr)rrust_ctime_firstrEs    rtest_mkdir_exist_okz!_BasePathTest.test_mkdir_exist_oks>HHT6""*

###

###



/
/	2
GGIII															+U\:::	

###*N;;;;;sB>>CCc|td}|||t
5}|dddn#1swxYwY||jj	tj
|dz}|d|j}|||t
5}|ddddn#1swxYwY||jj	tj
|dd||||j|dS)NrrTrrrt)
rrrrrtrrr*rr@rArrkr)rrurErs    rtest_mkdir_exist_ok_with_parentz-_BasePathTest.test_mkdir_exist_ok_with_parentsHHT6""

###



/
/	2
GGIII															+U\:::
	M	*

###



/
/	"2
GGDG!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"+U\:::	t,,,

###*N;;;;;s$A>>BB(EEEz)FS root cannot be modified on Emscripten.c|dd|ddddS)NrTrur)rrrr*rs rtest_mkdir_exist_ok_rootz&_BasePathTest.test_mkdir_exist_ok_rootsf	


%%t%444

%%dT%BBBBBrc4dD]0}||dz}|sn1|d|t5|dzdzdddddS#1swxYwYdS)NZYXWVUTSRQPONMLKJIHGFEDCBAz:\z&cannot find a drive that doesn't existchildrTr)rrrr[rrr*)rr*rus   rtest_mkdir_with_unknown_drivez+_BasePathTest.test_mkdir_with_unknown_drives-	D	DAU##A88::


MMBCCC


w
'
'	7	7
[6
!(((666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7s#B

BBcV|tdd}|||t
5}|ddddn#1swxYwY||jj	tj
|t
5}|dddddn#1swxYwY||jj	tj
dS)NrrTrrrrrrrtrrr*rr@rArrs   rtest_mkdir_with_child_filez(_BasePathTest.test_mkdir_with_child_filesiHHT67++

###


/
/	"2
GGDG!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"+U\:::



/
/	12
GGD4G000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1+U\:::::s$BBBC44C8;C8cN|td}|||t
5}|dddn#1swxYwY||jj	tj
|t
5}|ddddn#1swxYwY||jj	tj
dS)NrTrurrs   rtest_mkdir_no_parents_filez(_BasePathTest.test_mkdir_no_parents_files^HHT7##

###


/
/	2
GGIII															+U\:::



/
/	#2
GGTG"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#+U\:::::s$A>>BB
C00C47C4ctdD]P|tdz}||t
jd
fd	}fdtdDt|dzdz}	tj	d	|5|d
ddddn#1swxYwY|
t|n3#t$r&|
t|YnwxYw||RdS)N zdirCPC%drct|}r!|||||dSr)rpopadd)rr$concurrently_createdr
real_mkdirs  rmy_mkdirzE_BasePathTest.test_mkdir_concurrent_parent_creation.<locals>.my_mkdirs^4yy;;==3JtT***(,,T222
4&&&&&rc:g|]}td|zzS)r)bool)rnpattern_nums  rrzG_BasePathTest.test_mkdir_concurrent_parent_creation.<locals>.<listcomp>s*FFFtK16233FFFrdir1dir2zos.mkdirTFr)r)rDrrrrrtrr*rrrRassertNotInrrrr)rrurp12rrrrs    @@@@r%test_mkdir_concurrent_parent_creationz3_BasePathTest.test_mkdir_concurrent_parent_creations 99	(	(KzK788AQXXZZ(((J

'

'

'

'

'

'

'

'GFFFU1XXFFFG#&55 f*v%C
AZ
H55<<IIdUI;;;<<<<<<<<<<<<<<<
  S+?@@@@#
>
>
>

c#hh(<=====
>
OOAHHJJ''''7	(	(s6"D
7CD
C	D
"C	#D

-D:9D:c|t}|dz}|dzdz}|||||||||dzdz}|t|||||||||	|dz}|dzdz}||d|||||||
|	|
t|dS)	NrrlinkAAlinkAAArlinkAAAATr1)
rrrrrrkrr4rrrrrr)rr|r]rPs    rtest_symlink_toz_BasePathTest.test_symlink_tosHHTNNW6zH$fkkmm444DJJLL&++--8886zI%F$$$fkkmm444DJJLL&++--888'''V6zJ&D999fkkmm444DJJLL&++--888

&&&T\\^^,,-----rc`|t}||dz||dz||dz||dzdztjr||dz||dz||dzd||d	zd||d
zddS)Nrrr#rrr"r%r$FudirAzdirA)rrrrrrrr-rrs  rtest_is_dirz_BasePathTest.test_is_dirsrHHTNNV++--...!g+--//000!n,4466777!g+-5577888 ""	@a'k1133444OOQ[0022333ao5577???

q<'//115999

q:~--//77777rc^|t}||dz||dz||dz||dzdztjr~||dz||dz||dz||dzd	||d
zd	dS)Nrrr#rrr"r%r$fileAFfileA)rrrris_filerrr-rrs  rtest_is_filez_BasePathTest.test_is_file	soHHTNNW--//000!f*--//000!n,5577888!g+-6688999 ""	:OOQ[1133444a'k2244555ao6688999

q=(1133U;;;

q;//11599999rcn|t}|d}||dz||dz||dz||dzdz||tjr*||dz||dd||d	ddS)
Nrrrr#rrr"u/Fz/)rrrris_mountrrr-r)rr|Rs   r
test_is_mountz_BasePathTest.test_is_mount	scHHTNNHHSMM!g+//11222!f*..00111!n,6688999!g+-7799:::

%%% ""	7a'k3355666

dhhy))2244e<<<

dhhw''0022E:::::rc4|t}||dz||dz||dz||dzdzt	jr~||dz||dz||dz||dzd	||d
zd	t	jrX||dzd	||dzd	dSdS)
Nrrr#rrr"r%r$rFrulinkAzlinkA)	rrrr
is_symlinkrr-rrrrs  rtest_is_symlinkz_BasePathTest.test_is_symlink&	sHHTNN!g+1133444!f*0022333!n,88::;;;!g+-99;;<<< ""	<OOQ[4466777OOQ[4466777OOQ_88::;;;

q=(1133U;;;

q;//115999 ""	>MM1},5577???MM1{?3355u=====	>	>rc<|t}||dz||dz||dz||dzdz||dzd||dzddSNrrr#rrrFr)rrrris_fiforrs  rtest_is_fifo_falsez _BasePathTest.test_is_fifo_false6	sHHTNN!g+..00111!f*--//000!n,5577888!g+-6688999

q=(1133U;;;

q;//11599999rmkfifozos.mkfifo() requiredvxworksz%fifo requires special path on VxWorksc|td}	tjt	|n/#t
$r"}|d|zYd}~nd}~wwxYw|||	|
|	|||tdd||tdddS)Nmyfifozos.mkfifo(): %su	myfifoFzmyfifo)
rrrrrrrUr[rrr	is_socketrr)rr|rXs   rtest_is_fifo_truez_BasePathTest.test_is_fifo_true?	s/
HHT8$$	1Ic!ff	1	1	1MM+a/00000000	1		$$$'''%%%

dhht^44<<>>FFF

dhht\22::<<eDDDDDs!?
A+	A&&A+c<|t}||dz||dz||dz||dzdz||dzd||dzddSr)rrrrrrrs  rtest_is_socket_falsez"_BasePathTest.test_is_socket_falseN	sHHTNN!g+0022333!f*//11222!n,7799:::!g+-88::;;;

q=(3355u===

q;1133U;;;;;rAF_UNIXzUnix sockets requiredz/Unix sockets are not implemented on Emscripten.zCannot create socket on WASI.c|td}tjtjtj}||j	|t|nb#t$rU}t|tsdt|vr%|dt|zYd}~nd}~wwxYw|
|||||||tdd||tdddS)NmysockzAF_UNIX path too longzcannot bind Unix socket: u	mysockFzmysock)rrrsocketrSOCK_STREAMr)closebindrr
isinstancerUr[rrrrrr)rr|sockrXs    rtest_is_socket_truez!_BasePathTest.test_is_socket_trueW	s
HHT8$$}V^V-?@@
###	DIIc!ff	D	D	D1o..
D+s1vv55

9CFFBCCC	D	


&&&%%%%%%

dhht^44>>@@%HHH

dhht\22<<>>FFFFFs "B
C"
ACC"c<|t}||dz||dz||dz||dzdz||dzd||dzddSr)rrrris_block_devicerrs  rtest_is_block_device_falsez(_BasePathTest.test_is_block_device_falsen	sHHTNN!g+6688999!f*5577888!n,==??@@@!g+->>@@AAA

q=(99;;UCCC

q;77995AAAAArc<|t}||dz||dz||dz||dzdz||dzd||dzddSr)rrrris_char_devicerrs  rtest_is_char_device_falsez'_BasePathTest.test_is_char_device_falsew	sHHTNN!g+5577888!f*4466777!n,<<>>???!g+-==??@@@

q=(88::EBBB

q;6688%@@@@@rcX|d}|s|d||||||||dd||dddS)Nz	/dev/nullz/dev/null requiredu/dev/nullFz
/dev/null)	rrrtr[rrrrrrrs  rtest_is_char_device_truez&_BasePathTest.test_is_char_device_true	sHH[!!xxzz	0MM.///((**+++**,,---%%%

dhh011@@BBEJJJ

dhh//>>@@%HHHHHrcB|td}tdtjdzD]e}tj||}tj|}|||fdS)Nrrr)	rrrrDrErFrGrHrrk)rrurIrJrs     rrKz"_BasePathTest.test_pickling_common	sHHT7##1f59::	2	2E\!U++Ff%%BRWWYY1111	2	2rc|j}|d}|d}||jd|jd||jd|jddS)Nz/usr/bin/fooz/usr/local/binrrr)rrrrrbs    rtest_parts_interningz"_BasePathTest.test_parts_interning	snH
An
A

agaj!'!*---

agaj!'!*-----rc|t}|tjddtd|tjddtd|tjddtd||td|dz}||||t|t|dz}||||t|t|dz}||||t|t|dz}||||t|ttj
}tjt	|d}||||t|t|d}||||t|t|d}||||t|t|d}||||t|ttj|dS#tj|wxYw)Nlink0link1r^link3)rrrr/rrrrrrIrrKr)rlink0_targetr|ruold_paths     r_check_complex_symlinksz%_BasePathTest._check_complex_symlinks	sNHHTNNRW\\'733T']]CCCRW\\'733T']]CCCRW\\'733T']]CCC\4==111[!!##A  Q...
[!!##A  Q...
[!!##A  Q...
[!!##A  Q...9;;
	!!))++AQ"""$$SVVT222!!))++AQ"""$$SVVT222!!))++AQ"""$$SVVT222!!))++AQ"""$$SVVT222HXBHXs
FP,,Qc:|tdSr)rrrs rtest_complex_symlinks_absolutez,_BasePathTest.test_complex_symlinks_absolute	s$$T*****rc0|ddS)Nr,)rrs rtest_complex_symlinks_relativez,_BasePathTest.test_complex_symlinks_relative	s$$S)))))rcl|tjdddS)Nrr)rrrrrs r&test_complex_symlinks_relative_dot_dotz4_BasePathTest.test_complex_symlinks_relative_dot_dot	s,$$RW\\&$%?%?@@@@@r)T)hr5r6r7__doc__rvrrr/r=rFrIrLrOrUrYunittestskipIfr:rcrirlrrprurrrrrrskip_unless_symlinkrrrrrrrrrrrrr
rrrskip_unless_working_chmodr&
only_posixr*r.r0r2r5r7
skipUnlessr	rBrrHrLrOhasattrrYr`rcrhrlror{r}rrrrrronly_ntrrrrrrrrrrsysplatformrrrrrrrrKrrrrrr8rrrresHII,BBBB
w$	<	<	<	<	"	"	"***
;;;
MMM)))ZZZ,)))X_tF
-
-
-GGG(111
X_W:;;,,<;,888"
B
B
BAAARRR```(BBB"**#"*HHHLLL:%3%3%3N"99#"9$..."999"::#":B"@@#"@&&&&
9GF5":Q:Q#":Qx"AA#"A((
5
5)(
5(55)(Z5(**)(*"??#"?
<<<
"++#"+
(((
XFGG**HG*XFGG**HG****"""
***XV,,.HII  JI *XV,,.HII((JI("X_WWR((*@AABA((("(((""%%#"%<<<0BBB	;	;	;FFF2
<
<
<<<<"X_]$OPPCCQPC

77
W7
;
;
;
;
;
;(((<"..#"..888:::;;Z;>>> :::XX..0FGGX_S\Y.;==
E
E==HG
E<<<X335LMMX_HX_0GGNMG BBBAAA	I	I	I222...'''R"++#"+"**#"*"AA#"AAArrc.eZdZejZdZdZdZdS)PathTestc|d}|t|tjdkrt
jnt
jdSr)rrrrrrrQrrrts  rrzPathTest.test_concrete_class	sVHHSMM

d1gg#%7d??G8I	K	K	K	K	Krctjdkr'|ttjdS|ttjdS)Nr)rrrrrQrrrs rtest_unsupported_flavourz!PathTest.test_unsupported_flavour	sM
7d??173DEEEEE173FGGGGGrc|}|td5t|dddddS#1swxYwYdS)NzUnacceptable patternr$)rrassertRaisesRegexrrrrts  rtest_glob_empty_patternz PathTest.test_glob_empty_pattern	sHHJJ

#
#J0F
G
G																				s#A  A$'A$N)	r5r6r7rQPathrrrrrr8rrrr	sN
,CKKK
HHHrrceZdZejZdZdddZej	e
peddZdZ
ej	e
peddZejd	Zd
ZdZejeedd
ej	ejdkddZej	ejdkddZdS)
PosixPathTestc|j}|t|dd|t|dd|t|dd|t|dd|t|dd|t|dddS)Nrr.r-r=r<r[)rrrrrTrs  r
test_absolutezPosixPathTest.test_absolute	s;HQQsVV__..//555QQtWW--//00$777QQvYY//1122F;;;	
QQtWW--//00$777QQuXX..00115999QQwZZ002233W=====rTrc|j|}|t5t||ddddS#1swxYwYdSr)rrrRuntimeErrorprintr)rrrrs    r_check_symlink_loopz!PosixPathTest._check_symlink_loop	stx


|
,
,	(	($,,v&&'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(s#AAAz,umask is not implemented on Emscripten/WASI.ctjd}|tj||t}|dzd5	dddn#1swxYwYtjtd}|t
j	|j
dtjd|dzd5	dddn#1swxYwYtjtd}|t
j	|j
ddS)Nrnew_filerother_new_file)rumaskr)rrrr+rkrrrr#rold_maskrur-s    rtest_open_modezPosixPathTest.test_open_mode	s
8A;;(+++HHTNN*n
"
"4
(
(																	
WT*%%
&
&bj115999
""
(
(
.
.																	
WT*++
,
,bj11599999s$'A55A9<A9:DDDcDtj}	tjd|d}|t|dtj|dS#tj|wxYw)Nrrz/spam)rrKrrrrrr)rcurrent_directoryrus   rtest_resolve_rootzPosixPathTest.test_resolve_root
sIKK	(HSMMM  AS--w777H&'''''BH&''''sAB		Bc,tjd}|tj||t}|dztjtd}|t
j	|j
dtjd|dztjtd}|t
j	|j
d|dzd	tjtd}|t
j	|j
ddS)
Nrr
rrrrmasked_new_filei)r$)rrr)rrrrrkrrrr#rs    rtest_touch_modezPosixPathTest.test_touch_mode
sA
8A;;(+++HHTNN	
Z   
WT*%%
&
&bj115999
	

	$$&&&
WT*++
,
,bj115999	

	%%5%111
WT+,,
-
-bj11599999rctjdtd|tdtjdtd|tdtjdtd|td|tdddtjtd	td
|td
tjtdtd|tdtjtdtd
|td
|td
dddS)NzlinkX/insiderrzlinkZ/../linkZlinkZreFrzlinkU/insidelinkUlinkVzlinkW/../linkWlinkW)rr.rrrrs rtest_resolve_loopzPosixPathTest.test_resolve_loop'
sp	
>4==111  w///

7DMM***  w///

#T']]333  w///  we DDD

4''g777  w///

4==$w--000  w///

4())4==999  w///  we DDDDDrcz|j}|t}t|d}t	jtstn|}||||t|dtdS)NFILEazFILEa*)rrrrrrfs_is_case_insensitiverrr|rurrs     r	test_globzPosixPathTest.test_glob<
sH
AdGGAFF7OO$$'>tDDO%'''QVVH--..66666rc||j}|td}t|d}t	jtstn|}||||t|dtdS)NrFILEdzFILEd*)rrrrrrr$rr%s     r
test_rglobzPosixPathTest.test_rglobD
sH
AdFOOAGGG$$%%'>tDDO%'''QWWX..//77777rgetpwallz%pwd module does not expose getpwall()rzno home directory on VxWorksc|j}tjdddl}|jtj}|j}|j	dpd}|j
D]-}|j}|j	d}||kr|rn.|}|}d}	|j|r|dz
}|j|n#t$rYnwxYw|d}	|d|d}
|d|d}|d	|d}|d
|d}
|d}|d|d}tj5}|dd||	||d
z||
||d
z||||d
z|||||
|
||||t&|jd|d<||	|d||
||d
z||||d
z|||||
|
||||t&|jddddS#1swxYwYdS)Nr:rrfakeuserrz~/DocumentsrWz
/Documentsrornr$r_	Documentsz/tmpz/tmp/Documents)rrr
import_moduler:r;rgetuidr<pw_dirrstripr*getpwnamr=rr`rrrXrr	)rr|r:pwdentusernameuserhome	othername	otherhomefakenamep1p2p3p4p5p6p7rbs                 rtest_expanduserzPosixPathTest.test_expanduserL
s$

H#E***


bikk**>='',,3"clnn	!	!FI
,,S11IH$$$ I I	#,x((
 C#,x((
 			D	Q}


Q'8'''
(
(
Q(9(((
)
)
Q*h***
+
+
Q(H(((
)
)
QrUU
Q'8'''
(
(

*
,
,	;GGFD!!!R]]__aakkK.GHHHR]]__aakkK.GHHHR]]__aa	ll[.HIIIR]]__b111R]]__b111R]]__b111lBM::: CKR]]__aa0@.A.ABBBR]]__aakkK.GHHHR]]__aa	ll[.HIIIR]]__b111R]]__b111R]]__b111lBM:::%	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;s%(%C
CCJO  O$'O$darwinz1Bad file descriptor in /dev/fd affects only macOScr	ttjdddd}|s|d|D]}|||||	|
||dS#t$r0}|jtjkr|dd}~wwxYw)Nz/dev/fdrrz.no file descriptors - issue was not reproducedz Bad file descriptor not handled.)rrQrrr[rtrrrrrrrrrAEBADFfail)rfile_descriptorsr rXs    rtest_handling_bad_descriptorz*PosixPathTest.test_handling_bad_descriptor
s'	#GL$;$;$A$A#$F$FGGK#
P

NOOO&







		!!###  """		





			w%+%%		<===	sC8C<<
D6+D11D6N)r5r6r7rQrrrrrrrrrrrrrrr!r&r)rrr:rrr@rFr8rrrr	s

C	>	>	>15(((((
X_ 6::	:(((X_ 6
:
:	
:"EE#"E(777888Xj11@BBX_S\Y.3553;3;55BB3;jX_S\X-HJJJJrrc4eZdZejZdZdZdZdZ	dS)WindowsPathTestc
|j}|t|dd|t|dd|t|ddd}|t||||t||dz|dz|t||dz|dzt	jd5}||_|t|||t|d||t|dtj	|d|t|dd	d
tj	|dd	d
ddddS#1swxYwYdS)NrYr@rez\\server\share\r%rdrQr,r'r+)
rrrrrTrrRrSrrr)rr|sharerKs    rrzWindowsPathTest.test_absolute
sH	
QQvYY//1122F;;;QQwZZ002233W===QQz]]335566
CCC&QQuXX..00115999QQus{^^446677EEEQQuv~..7799::EFNKKKZ
$
$	A"'FS00%888S3!2!233U;;;S3!2!233RW\\%5M5MNNNS3S!1!1!:!:!<!<==W\\%c3??
A
A
A
	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	AsD?K**K.1K.c
|j}|t}|t|d|tdh|t|d|tdh|t|d|tdh|ttt|d|dh|ttt|d|dhdS)Nr#rz*a\rzF*az\FILEaz\fileA)rrrrrrmaprr{s   rr&zWindowsPathTest.test_glob
s3H
AdGGQVVG__--41A1A/CDDDQVVF^^,,$.ABBBQVVE]]++qqw/?/?-ABBBSaffWoo6677Q---IIISaffUmm44551


GGGGGrc
|j}|td}|t|d|tdh|t|d|tdh|ttt|d|dhdS)Nrr(rz*\rz\dirD\FILEd)rrrrrrrLrr{s   rr)zWindowsPathTest.test_rglob
sH
AdFOOQWWW--..!!D:K2L2L0NOOOQWWU^^,,$0D0D.FGGGSaggg&6&67788a;N;N;N:OPPPPPrc
`	jtj5dddddddddd<ddd	d
dd	t
jt
jt
j			f	d
}dd<|dd<dd<|dddddd<|dd<|ddddS#1swxYwYdS)Nr_r]HOMEPATH	HOMEDRIVEaliceUSERNAMEz~/My Documentsz~alice/My Documentsz~bob/My Documentsz/~/My Documentszd:~/My Documentsr$c	dddtjdd<dddS)NrRzC:/Users/alice/My DocumentsrQzC:/Users/bob/My Documents)rrrXrr	)	r|rbr9r:r;r<r=r>rs	rr3z.WindowsPathTest.test_expanduser.<locals>.check
s1
D)))  !"#@!A!ACCC!!,
>>>")J  !"#@!A!ACCC  !"#>!?!?AAA  "555  "555  "55555rzC:\Users\alicezC:\zUsers\alicezC:\Users\eve)rrrr`rrr	rXr)
rr3r|rbr9r:r;r<r=r>s
` @@@@@@@@rr@zWindowsPathTest.test_expanduser
sH

*
,
,1	GGFD!!!GGM4(((GGJ%%%GGK&&&%C
O#$$B())B&''B$%%B%&&B2BlBM:::lBM:::lBM:::R]]__b111R]]__b111R]]__b111
6
6
6
6
6
6
6
6
6
6
6
6
61C
OEGGG%C,C
OEGGGGGK&&&GGJ%%%!3C
EGGG+CKEGGGc1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	sG2H##H'*H'N)
r5r6r7rQrrrrr&r)r@r8rrrHrH
sa

CAAA2HHHQQQ33333rrHc8eZdZdZGddZdZdZdS)CompatiblePathTestz|
    Test that a type can be made compatible with PurePath
    derivatives by implementing division operator overloads.
    c$eZdZdZdZdZdZdS)CompatiblePathTest.CompatPathz
        Minimum viable class to test PurePath compatibility.
        Simply uses the division operator to join a given
        string and the string value of another object with
        a forward slash.
        c||_dSr)string)rrYs  r__init__z&CompatiblePathTest.CompatPath.__init__
s
 DKKKrcFt||jd|SrrrYrrs  r__truediv__z)CompatiblePathTest.CompatPath.__truediv__s(4::66u66777rcFt||d|jSrr\r]s  r__rtruediv__z*CompatiblePathTest.CompatPath.__rtruediv__s(4::6666777rN)r5r6r7rrZr^r`r8rr
CompatPathrWsK			!	!	!	8	8	8	8	8	8	8	8rracZtjd|dz}|||j||jd|t5tjddzddddS#1swxYwYdS)Ntestrightz
test/rightrr)rQrrarzrrYrrrresults  rtest_truedivzCompatiblePathTest.test_truedivs!&))DOOG,D,DDfdo666555


y
)
)	*	*V$$r))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*;B  B$'B$cZ|dtjdz}|||j||jd|t5dtjdzddddS#1swxYwYdS)Nleftrcz	left/testrr)rarQrrzrrYrrres  r
test_rtruedivz CompatiblePathTest.test_rtruedivs((7+;F+C+CCfdo666444


y
)
)	*	*!&))))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*rhN)r5r6r7rrargrkr8rrrUrUsd
88888888 ********rrU__main__)4rcollections.abcrrzrrrArQrErrkr
rrtest.supportrrrrtest.support.os_helperrr	rBr:ImportErrorobjectrTestCaser:rTrjrMrqrrrealpathrrrVrrrrrrrrrrHrUr5mainr8rr<module>rus								











&&&&&&////////""""""33333333OOOOOOOOC###&;&;&;&;&;v&;&;&;R!:!:!:!:!:'):!:!:!:H;6;6;6;6;6$h&7;6;6;6DX.X.X.X.X.X.X.X.vI&I&I&I&I&)8+<I&I&I&XX@X@X@X@X@+X->X@X@X@t$h&7>
w((..
(/"'T/EGG
X_RW_FHH
+	/	iAiAiAiAiAFiAiAiAX#}h/(tttttM8#4tttn	_____mX%6__	_D&*&*&*&*&**&*&*&*RzHMOOOOOsA	A)(A)