\R&\&S955r?S:r@S;rAS<rBS=rCg)> PosixPathTest*cnSH/nUR[R"[U-55 M1 g)N)12) assertFalse posixpathlexistsr)selfsuffixs rsetUpPosixPathTest.setUp,s)$F   Y..v? @%rc[RnURU"SSSS5S5 URU"SSS5S5 URU"SSS 5S 5 URU"S S S S5S5 URU"S S S5S5 URU"SSS5S5 URU"SS5S5 URU"SSS5S5 URU"SS5S5 URU"SS5S5 URU"SS5S5 URU"SS5S5 URU"SSS5S5 URU"SSS5S 5 URU"SS!S5S5 URU"S"S5S#5 URU"S$S5S#5 URU"SS%S&5S'5 URU"SS%S(5S(5 g))N/foobar/barbaz/bar/bazz /foo/bar/bazz/foo/zbar/zbaz/z /foo/bar/baz//foobars/barsbazs/bar/bazs /foo/bar/bazs/foo/sbar/sbaz/s /foo/bar/baz/ar$za/ba/bzb/a/b/b/cdza/b/c/dzb//cza/b//c/dzb/c//a/a/bz/a/z/bcz/b/cz/c)r(join assertEqual)r*fns r test_joinPosixPathTest.test_join0s ^^ FE659:F FE51>J GVV4?K GVWf={K GVV4O Hgw7?OP Ct4 CRt4 Cu5 Cv6 D#u5 D$v6 C,y9 C-z: C-y9 D#v6 E3v6 Cs+v6 Ct,t4rcUR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S 5S 5 UR[R"S 5S 5 UR[R"S 5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 g)N/foo/bar)r/r0/)rFr$foo)r$rG////foo)////rG //foo//bar)//foor0/foo/bar)r4r5/)rMrfoo)rrN////foo)////rN //foo//bar)//foor5)r@r(splitr*s r test_splitPosixPathTest.test_splitHs 4oF -y9 /= 3_E 68HI 57HI . < 0-@ 46GH 79KLrcUR[R"U5X#45 UR[R"SU-5SU-U45 UR[R"SU-5SU-U45 UR[R"SU-5SU-U45 UR[R"SU-5SU-U45 UR[R"US-5X#-S-S45 [US5n[US5n[US5nUR[R"U5X#45 UR[R"SU-5SU-U45 UR[R"SU-5SU-U45 UR[R"S U-5S U-U45 UR[R"S U-5S U-U45 UR[R"US-5X#-S-S 45 g) NrFzabc/zabc.def/z /abc.def/r$ASCIIrMsabc/sabc.def/s /abc.def/r)r@r(splitextbytes)r*pathfilenameexts r splitextTestPosixPathTest.splitextTestUs ++D1H?C ++C$J7#.#9NO ++FTM: 8+S1 3 ++J,=>$x/5 7 ++K$,>?%0#6 8 ++D3J7".3.3 5T7#7+C! ++D1H?C ++D4K8/3/ 1 ++GdN;!H,c2 4 ++K$,>?%0#6 8 ++L4,?@&137 9 ++D4K8".4/5 7rcURSSS5 URSSS5 URSSS5 URSS S 5 URS S S 5 URS S S 5 URSSS 5 URSSS5 URSSS 5 URSSS 5 URSSS 5 URS S S 5 g)Nzfoo.barrGz.barz foo.boo.barzfoo.boozfoo.boo.biff.barz foo.boo.biffz.csh.rcz.cshz.rcnodotsr$z.cshrcz ...manydotsz...manydots.extz.ext...z........)r^rTs r test_splitextPosixPathTest.test_splitextqs )UF3 -F; ,nfE )VU3 (Hb1 (Hb1 -; +]FC #sB' $b) *j"5 "b"%rc[RnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S 5S 5 URU"S 5S 5 URU"S 5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S 5 URU"S!5S"5 URU"S#5S$5 g)%Nr$)r$r$r$r6)r$r$r6r8)r$r$r8r9)r$r$r9r<)r$rFr6r=)r$rFr8z/a/b/)r$rFr9//a)r$//r6z///a)r$rFrgz///a/b)r$rFz//a/bc:/a/b)r$r$ri\/a/b)r$r$rj\a\b)r$r$rkr)rrra)rrrl/a)rrMrl//a)rs//rls///a)rrMrn)r( splitrootr@r*fs rtest_splitrootPosixPathTest.test_splitroots    2 - 3/ 5?3 6$45 4.1 6$45 7%67 5?3 6$45 8&89 8&89 8&89 8&89 31 4"23 5#45 6$67 7%89rcUR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S 5S5 UR[R"S 5S5 UR[R"S 5S5 UR[R"S 5S5 g) Nr$FrFTr/rEfoo/barrrMr4rLsfoo/bar)assertIsr(isabsrTs r test_isabsPosixPathTest.test_isabss ioob)51 iooc*D1 ioof-t4 iooj148 iooi0%8 iooc*E2 iood+T2 ioog.5 iook2D9 iooj159rcUR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S 5 UR[R"S 5S 5 UR[R"S 5S 5 UR[R"S 5S 5 UR[R"S5S 5 g)NrEr0rFr$rGrHrJrLr5rMrrNrOrQ)r@r(rrTs r test_basenamePosixPathTest.test_basenames ++J7? ++C0"5 ++E2E: ++I6> ++L95A ++K8&A ++D137 ++F3V< ++J7@ ++M:FCrcUR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S 5 UR[R"S 5S 5 UR[R"S 5S 5 UR[R"S 5S5 UR[R"S5S5 UR[R"S5S5 g)NrEr/rFrGr$rHrIrJrKrLr4rMrNrrOrPrQrR)r@r(rrTs r test_dirnamePosixPathTest.test_dirnames **:6? **3/5 **5126 **95v> **<8'B **;7A **40$7 **62C8 **:6@ **=98DrcPUR[R"[S-5S5 UR[R"[S-5S5 UR [ R[S-5 [[S-S5nURS5 SSS5 UR[R"[S-5S5 [ R"5(GaUR [ R[S-5 [R"[S-[S-5 UR[R"[S-5S5 [R"[S-5 UR[R"[S-5S5 UR[R"[S-5S5 UR[R"[S-5S5 gg!,(df  GNv=f)Nr%Fr&wbrNT)rvr(islinkrr) addCleanupr unlinkopenwrite can_symlinkossymlinkremoveexistsrps r test_islinkPosixPathTest.test_islinks` i&&v|4e< i'' 5u=  ((&3,7 &3, % GGFO& i&&v|4e<  " " OOI,,fsl ; JJv|Vc\ 2 MM)**6C<8$ ? IIfsl # MM)**6C<8$ ? MM)**6C<8% @ MM)++FSL94 @ # & %s H H%cUR[R"[S-5S5 UR[R"[R "[5S-5S5 UR[R"[S-5S5 UR[R"[R "[5S-5S5 g)NuF)rvr(rrrfsencoderTs rtest_islink_invalid_paths'PosixPathTest.test_islink_invalid_pathss i&&v'895A i&&r{{6':W'DEuM i&&v7? i&&r{{6':W'DEuMrcXUR[R"S5S5 UR[R"S5S5 UR[R"[S55S5 UR[R"[S55S5 g)NrFTrM)rvr(ismountr rTs r test_ismountPosixPathTest.test_ismountsn i'',d3 i''-t4 i'' 6= i''7>rcTUR[R"[5S5 [R "[5 UR[R"[5S5 [ R"[5 g![ R"[5 f=f)NF)rvr(rrrmkdirr rmdirrTs rtest_ismount_non_existent'PosixPathTest.test_ismount_non_existents^ i''/7 $ HHV  MM)++F3U ; OOF #IOOF #s AB B'c4UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 g)N/F///)rvr(rrTs rtest_ismount_invalid_paths(PosixPathTest.test_ismount_invalid_pathssf i'' 2E: i''159 i''0%8 i''159rc[R"S[5 UR[R "[5S5 [ R"[5 g![ R"[5 f=f)NrFF)rrrrvr(rr rrTs rtest_ismount_symlinks#PosixPathTest.test_ismount_symlinkssK % JJsF # MM)++F3U ;   V $I  V $s AA""A>NzTest requires posix modulec[RnSnU[lUR[R"[ 5S5 U[lg!U[lf=f)Nc dSnSnU[:XaSnSn[R"SXSSSSSSS4 5$)Nr)rposix stat_resultr[st_inost_devs r fake_lstat?PosixPathTest.test_ismount_different_device..fake_lstatsAFFv~$$aAq!Q1%MN NrTrlstatrvr(rrr* save_lstatrs rtest_ismount_different_device+PosixPathTest.test_ismount_different_devicesGXX  O "!BH MM)++F3T :!BHzBH 5A A#c[RnSnU[lUR[R"[ 5S5 U[lg!U[lf=f)Nc SnSnUR[5(aU[:wa [S5eU[:XaSnSn[R"SXSSSSSSS4 5$)Nrz!Fake [Errno 13] Permission deniedr) startswithrOSErrorrrrs rrEPosixPathTest.test_ismount_directory_not_readable..fake_lstat sdFFv&&46>ABBv~$$aAq!Q1%MN NrTrrs r#test_ismount_directory_not_readable1PosixPathTest.test_ismount_directory_not_readablesGXX  O "!BH MM)++F3T :!BHzBHrcVUR[R"[55 gN)r'r( isjunctionrrTs rtest_isjunctionPosixPathTest.test_isjunctions --f56rwin32zFast paths are not for win32cUR[RR[R L5 UR [R"[RR55 UR[RR[RL5 UR [R"[RR55 gr) assertTruerr[ror_path_splitroot_exr'inspect isfunctionnormpath_path_normpathrTs rtest_fast_paths_in_use$PosixPathTest.test_fast_paths_in_use!s ))U-E-EEF ++BGG,=,=>? ((E,@,@@A ++BGG,<,<=>rcUR[R"S5S5 UR[R"S5S5 g)NrGrN)r@r( expanduserrTs rtest_expanduserPosixPathTest.test_expanduser+s8 --e4e< --f5v>rc`[R"5nSUS'UR[R"S5S5 SUS'UR[R"S5S5 SHnUR US9 X!S'UR[R"S5S5 UR[R"S5S5 UR[R"S 5S 5 SSS5 M SSS5 g!,(df  M=f!,(df  g=f) Nz /home/victorHOME~z /home/victor/)rFr$rh///)homerF~/z~/foor/)r EnvironmentVarGuardr@r(rsubTest)r*envrs rtest_expanduser_home_envvar)PosixPathTest.test_expanduser_home_envvar/s  * * ,(CK   Y11#6 G*CK   Y11#6 G,\\t\,"&K$$Y%9%9#%>D$$Y%9%9$%?E$$Y%9%9'%BFK -,-- ,-,- ,s%A+DA7D 8 D D D D-vxworkszno home directory on VxWorksc [R"S5nUR[R"S5[ 5 UR[R"S5[ 5 [R"S5S:wazUR[R"S5S-[R"S55 UR[R"S5S-[R"S55 UR[R"S5[ 5 UR[R"S 5[ 5 UR[R"S 5[ 5 UR[R"S 5[ 5 [R"5nUS UR[R"55RnURS5=(d SnUR[R"S5U5 [R R#US [$S9 [R R#US[$S9 SH)nUR[R"U5U5 M+ SSS5 SSS5 SSS5 g!,(df  N=f!,(df  N(=f!,(df  g=f)Npwdrs~/rrF~rMz~root/z~foo/s~root/s~foo/rgetpwuid) side_effectgetpwnam)rz~/.localz ~vstinner/)r import_moduleassertIsInstancer(rstrrZr@r rrrgetuidpw_dirrstriprpatchobjectKeyError)r*rrrr[s rtest_expanduser_pwd!PosixPathTest.test_expanduser_pwd?s))%0 i2248#> i22595A    $ +   $$S)C/$$T*    $$T*T1$$U+  i228%K-K > K K K K  K.c B[R"S5n[R"US5nU"5Vs/sHo3RPM nn[R "S5(aSOSn[ U5U:a1[R"U5 URSS9 XES-U*S-2 UHnURU5nURnURS 5=(d S nURXcRS 9 UR[R "S U-5U5 UR[R "["R$"S U-55["R$"U55 SSS5 M gs snf!,(df  M=f) Nrgetpwallcpuidc"UR5$r)isascii)names r4PosixPathTest.test_expanduser_pwd2..ss  r)keyrF)rrr)r rr get_attributepw_nameis_resource_enabledlenrandomshufflesortrrrrr@r(rrr)r*rrentrynamesmaxusersrrs rtest_expanduser_pwd2"PosixPathTest.test_expanduser_pwd2hsD))%0((j9,4J7J5J7"66u==43 u:  NN5 ! JJ6J 7k8)Q,./DLL&E<=8>=sF A;F F )2)r$rb)rFrF)/.rF)z/./rF)z/.//.rF)z /./foo/barrE)r/r/)rErE)rhrh)rrF)z///foo/.//bar//rE)z///foo/.//bar//.//..//.//baz///z/foo/baz)z///..//./foo/.//barrE)rbrb)z.//.rb)z ./foo/barru)rcrc)../rc)../foor ) ../../foor )z ../foo/../barz../bar)z../../foo/../bar/./baz/boom/.. ../../bar/baz/..rFr )z/../rF)z/..//rF)z//.rh)z//..rh)//...r)z//../foorK)z //../../foorK)/../foor/)z /../../foor/)z /../foo/../rF)z/../foo/../barr1)z/../../foo/../bar/./baz/boom/..r3)z/../../foo/../bar/./baz/boom/.z /bar/baz/boom)zfoo/../bar/bazzbar/baz)zfoo/../../bar/bazz ../bar/baz)zfoo/../../../bar/bazr )zfoo///../bar/.././../baz/boomz ../baz/boom)zfoo/bar/../..///../../baz/boomz../../baz/boom)/foo/..rF)z /foo/../..rF)z//foo/..rh)z //foo/../..rh)z ///foo/..rF)z ///foo/../..rF)z ////foo/..rF)z /////foo/..rFcURHupURU5 [R"U5nUR X25 SSS5 UR S5nUR S5nURU[ S9 [R"U5nUR X25 SSS5 M g!,(df  Ny=f!,(df  M=f)Nzutf-8)type)NORMPATH_CASESrr(rr@encoderZ)r*r[expectedresults r test_normpathPosixPathTest.test_normpaths"11NDd#"++D1  2$;;w'Dw/Hd/"++D1  20/2## 0/s(B> (C> C  C strictTc|UR[S0UD6[R"55 UR[S0UD6[R"55 UR[SR S/S-540UD6[R"55 UR[S0UD6[R "55 UR[S 0UD6[R "55 UR[SR S/S-540UD6[R "55 g) NrbrFr.rM)rb)z./.)r)s./.)r@rrgetcwdr?getcwdbr*rs rtest_realpath_curdir"PosixPathTest.test_realpath_curdirs 00"))+> 262BIIK@ #((C53;"7B6BBIIKP 1&12::<@ 3F3RZZ\B $))TFSL"9DVDbjjlSrc UR[S0UD6[[R"555 UR[S0UD6[[[R"5555 UR[SR S/S-540UD6S5 UR[S0UD6[[R "555 UR[S 0UD6[[[R "5555 UR[SR S/S-540UD6S5 g) NrcrFr..rM)rc)z../..)r")s../..)r@rrrrr?rrs rtest_realpath_pardir"PosixPathTest.test_realpath_pardirs 1&17299;3GH 4V4ggbiik>R6ST #((D6C<"8CFCSI 262GBJJL4IJ 5f5wwrzz|?T7UV $))UGcM":EfEtLrc [R"[S-[5 UR[ [40UD6[S-5 [ R "[5 g![ R "[5 f=fNr%)rrrr@rr rrs rtest_realpath_basic!PosixPathTest.test_realpath_basicsT  % JJvcz6 *   Xf77 D   V $I  V $s A A&&Bc:[R"[S-[5 UR[[ [SS9 UR[[ [S-SS9 [ R"[5 g![ R"[5 f=f)Nr%Trr&)rrr assertRaisesFileNotFoundErrorrr rrTs rtest_realpath_strict"PosixPathTest.test_realpath_strictsk  % JJvcz6 *   /6$  O   /6C>BchSnUR[[USS9 UR[[USS9 UR[[U[S9 SnUR[[USS9 UR[[USS9 UR[[U[S9 SnUR[[USS9 UR[[USS9 UR[[U[S9 SnUR[[USS9 UR[[USS9 UR[[U[S9 SnUR[[USS9 UR[[USS9 UR[[U[S9 S nUR[[USS9 UR[[USS9 UR[[U[S9 S nUR[[USS9 UR[[USS9 UR[[U[S9 S nUR[[USS9 UR[[USS9 UR[[U[S9 S n[ R S :XaSUR[USS9U5 UR[[USS9 UR[U[S9U5 ORUR[[USS9 UR[[USS9 UR[[U[S9 Sn[ R S :Xa9UR[USS9U5 UR[U[S9U5 O8UR[[USS9 UR[[U[S9 UR[[USS9 Sn[ R S :XaSUR[USS9S5 UR[[USS9 UR[U[S9S5 ORUR[[USS9 UR[[USS9 UR[[U[S9 Sn[ R S :Xa9UR[USS9S5 UR[U[S9S5 O8UR[[USS9 UR[[U[S9 UR[[USS9 Sn[ R S :XaSUR[[USS9 UR[[USS9 UR[[U[S9 OUR[USS9U5 [R(a9UR[[USS9 UR[[U[S9 O8UR[[USS9 UR[U[S9U5 Sn[ R S :Xa9UR[[USS9 UR[[U[S9 OUR[USS9U5 [R(a9UR[[USS9 UR[[U[S9 gUR[[USS9 g)NrFr*Trz/nonexistent/xs/nonexistent/xz//..s//..z/nonexistent/x/..s/nonexistent/x/..rru/nonexistent/u//..rFu/nonexistent//..z /nonexistentrs/nonexistent/) r+ ValueErrorrrr,sysplatformr@UnicodeEncodeErrorUnicodeDecodeErrorr is_wasir)r*r[s rtest_realpath_invalid_paths)PosixPathTest.test_realpath_invalid_pathss *hUC *hTB *h]K *hUC *hTB *h]K# *hUC +XtDI *h]K$ *hUC +XtDI *h]K *hUC *hTB *h]K *hUC *hTB *h]K& *hUC +XtDI *h]K' *hUC +XtDI *h]K <<7 "   Xd594 @   /4  M   Xd=A4 H   0(D  O   0(D  N   0(D  W$ <<7 "   Xd594 @   Xd=A4 H   0(D  O   0(D  W +XtDI <<7 "   Xd593 ?   /4  M   Xd=A3 G   0(D  O   0(D  N   0(D  W' <<7 "   Xd59> J   Xd=A> R   0(D  O   0(D  W +XtDI <<7 "   0(D  O   0(D  N   0(D  W   Xd594 @!!'8T$!G!!'8T-!P!!"3XtD!Q  $}!EtL# <<7 "   0(D  O   0(D  W   Xd594 @ ??   gxd  C   gxm  L   /4  Mrc2[R"[R"[S-5[5 UR [ [40UD6[S-5 [R"[5 g![R"[5 f=fr&) rrr(relpathrr@rr rrs rtest_realpath_relative$PosixPathTest.test_realpath_relativeNs_ % JJy((4f =   Xf77 D   V $I  V $s AA::Bc[R"[S-[5 UR[ S[-40UD6[ S-5 [ R"[5 g![ R"[5 f=f)Nr%znonexistent/../)rrrr@rrr rrs rtest_realpath_missing_pardir*PosixPathTest.test_realpath_missing_pardirXs` % JJv|V ,   *V3>v>  N   V $I  V $s A A))Bc2 [R"[[5 UR[ [5[5 [R"[S-[S-5 [R"[S-[S-5 UR[ [S-5[S-5 UR[ [S-5[S-5 UR[ [S-5[S-5 UR[ [S-5[ [55 UR[ [S-5[ [5S-5 [R"[S-[S-5 UR[ [S -[ [5-S-5[S-5 UR[ [S -[ [5-S-5[S-5 [R"[ [5S -[S -5 UR[ [S -5[S -5 [R"S [ [ [55-S -[ [5-S-[S-5 UR[ [S-5[S-5 [R"[ [55 UR[ [ [55[5 SSS5 [R"[5 [R"[S-5 [R"[S-5 [R"[S-5 [R"[S-5 [R"[S -5 g!,(df  N=f![R"[5 [R"[S-5 [R"[S-5 [R"[S-5 [R"[S-5 [R"[S -5 f=f)Nr%r&1/x1/..1/../x/xxy1/../r8r6rrFr>) rrrr@rrrr change_cwdrrTs rtest_realpath_symlink_loops)PosixPathTest.test_realpath_symlink_loopscs " ) JJvv &   Xf-v 6 JJvcz6#: . JJvcz6#: .   XfSj16#: >   XfSj16#: >   XfUl3VE\ B   XfVm4gfo F   XfXo6$8N O JJvcz6#: .   XfWnx7G&G#&MN#c\ +   XfWnx7G&G#&MN#c\ + JJx'%/ <   XfSj16%< @ JJux883>'(*-./5cz ;   XfSj16#: >%%gfo6  (6*:!;VD7   V $   VCZ (   VCZ (   VCZ (   VCZ (   VCZ (76   V $   VCZ (   VCZ (   VCZ (   VCZ (   VCZ (s%K5O)7-O$O) O&"O))B-Rc[R"[[5 UR"[[ [40UD6 [R"[S-[S-5 [R"[S-[S-5 UR"[[ [S-40UD6 UR"[[ [S-40UD6 UR"[[ [S-40UD6 UR"[[ [S-40UD6 UR"[[ [S-40UD6 [R"[S-[S-5 UR"[[ [S-[ [5-S-40UD6 UR"[[ [S-[ [5-S-40UD6 [R"[ [5S -[S -5 UR"[[ [S -40UD6 [R"S [ [[55-S -[ [5-S -[S -5 UR"[[ [S -40UD6 [R"[[55 UR"[[ [ [540UD6 SSS5 [R"[5 [R"[S-5 [R"[S-5 [R"[S-5 [R"[S -5 [R"[S -5 g!,(df  N=f![R"[5 [R"[S-5 [R"[S-5 [R"[S-5 [R"[S -5 [R"[S -5 f=f)Nr%r&r@rArBrDrErFr8r6rrFr>) rrrr+rrrrr rGrrs r"test_realpath_symlink_loops_strict0PosixPathTest.test_realpath_symlink_loops_stricts " ) JJvv &   gx B6 B JJvcz6#: . JJvcz6#: .   gx Fv F   gx Fv F   gx H H   gx I& I   gx KF K JJvcz6#: .   gx$Wnx/??#E QIO Q   gx$Wnx/??#E QIO Q JJx'%/ <   gx Fv F JJux883>'(*-./5cz ;   gx Fv F%%gfo6!!'8Xf5EPP7   V $   VCZ (   VCZ (   VCZ (   VCZ (   VCZ (76   V $   VCZ (   VCZ (   VCZ (   VCZ (   VCZ (s%J7N)9+N$N) N&"N))B-Qcz[R"[5 [R"S[ [5-[S-5 [R"S[S-5 UR [ [S-40UD6[5 [R"[S-5 [R"[S-5 [R"[5 g![R"[S-5 [R"[S-5 [R"[5 f=f)Nrz/selfzself/self/selfz/link) rrrrrr@rr rrrs r(test_realpath_repeated_indirect_symlinks6PosixPathTest.test_realpath_repeated_indirect_symlinkss  $ HHV  JJux//'1A B JJ'')9 :   Xfw&6A&A6 J   Vg- .   Vg- . OOF #   Vg- .   Vg- . OOF #s B C$$AD:cXSn[R"[5 [U5H=n[R"SR SU-/S-5[SUS---5 M? [R"S[S-5 UR [[SU--40UD6[5 [R"[5 UR [SU-5[5 SSS5 [US-5H#n[R"[SU--5 M% [R"[5 g!,(df  N^=f![US-5H#n[R"[SU--5 M% [R"[5 f=f)N rFz%dz/%drrbz/0) rrrrangerr?r@rr rGrr)r*rdepthis rtest_realpath_deep_recursion*PosixPathTest.test_realpath_deep_recursions3 $ HHV 5\ 388TAXJO4fuA6NO" JJsFTM *   Xfuu}&<GG P%%f-  $,!7@.519%  %!)!34& OOF # .-519%  %!)!34& OOF #s%CE #E/E EEAF)c[R"[5 [R"[S-5 [R"[S-[S-5 [R "[S-5 UR [S0UD6[S-5 SSS5 [R"[S-5 [R"[S-5 [R"[5 g!,(df  Nc=f![R"[S-5 [R"[S-5 [R"[5 f=f)Nz/y/kz/y/a)r6) rrrrr rGr@rrrrs rtest_realpath_resolve_parents+PosixPathTest.test_realpath_resolve_parentss $ HHV  HHVd] # JJv}ftm 4%%ftm4  !8!8$*VO55   Vd] + OOFTM * OOF # 54   Vd] + OOFTM * OOF #s%A9D ;#C;D ; D D AE"c[R"[5 [R"[S-5 [R"[S-5 [R"[S-[S-5 UR [ [S-40UD6[S-5 [ R"[[55 UR [ [[5S-40UD6[S-5 SSS5 [ R"[S-5 [ R"[S-5 [ R"[S-5 [ R"[5 g!,(df  N=f![ R"[S-5 [ R"[S-5 [ R"[S-5 [ R"[5 f=f)NrXz/k/yz/link-yz /link-y/..) rrrrr@rr rGrrrrrs r(test_realpath_resolve_before_normalizing6PosixPathTest.test_realpath_resolve_before_normalizings> $ HHV  HHVd] # HHVf_ % JJv(: ;   Xf|&;FvFQU V%%gfo6  (6*:\*I!TV!T!'$07   Vi/ 0 OOFVO , OOFTM * OOF #76   Vi/ 0 OOFVO , OOFTM * OOF #s%CF4E6<F6 FFA3G:c<[R"[5 [R"[S-5 [R"[[S-5 [R "[ [55 [[5nUR[US-40UD6[5 UR[US-40UD6[S-5 SSS5 [R"[S-5 [R"[S-5 [R"[5 g!,(df  Nc=f![R"[S-5 [R"[S-5 [R"[5 f=f)NrXlinkzlink/k) rrrrr rGrrr@rrr)r*rbases rtest_realpath_resolve_first)PosixPathTest.test_realpath_resolve_first s $ HHV  HHVd] # JJvv /%%gfo6'  $-!B6!BFK  $/!DV!DftmT7   Vf_ - OOFTM * OOF #76   Vf_ - OOFTM * OOF #s&AAD4E4 E>EAFzCan't set symlink permissionsdarwinz1only macOS requires read permission to readlink()c[R"[S-[5 [R"[SSS9 UR [ [5[5 UR [ [S-5[S-5 UR [ [S-5[ [5S-5 UR [ [S-5[5 [R"[SSS9 [R"[5 g![R"[SSS9 [R"[5 f=f Nr%rF)follow_symlinksr/rr) rrrchmodr@rrr rrTs r test_realpath_unreadable_symlink.PosixPathTest.test_realpath_unreadable_symlinks % JJvcz6 * HHVUE :   Xf-v 6   Xfvo6 H   Xfy&8976?V;S T   Xfy&896 B HHVUE :   V $ HHVUE :   V $s C D6E cd[R"[S-[5 [R"[SSS9 UR [ 5 [ [40UD6 SSS5 UR [ 5 [ [S-40UD64 SSS5 UR [ 5 [ [S-40UD6 SSS5 UR [ 5 [ [S-40UD6 SSS5 [R"[SSS9 [R"[5 g!,(df  N=f!,(df  N=f!,(df  N=f!,(df  Nv=f![R"[SSS9 [R"[5 f=fre)rrrrhr+PermissionErrorrrrs r'test_realpath_unreadable_symlink_strict5PosixPathTest.test_realpath_unreadable_symlink_strict/s  JJvcz6 * HHVUE :""?3*6*4""?3&3F344""?3)+6v64""?3)+6v64 HHVUE : IIf 43333333 HHVUE : IIf slAE9D5$E9EE93EE9$E(8E95 E?E9 EE9 E%!E9( E62E996F/c[R"[5 [R"[S-5 [R"[S5 UR [ [SS9[5 UR [ [SS9[5 UR [ [[ S9[5 [R"[5 URS5 UR [ [S-SS9[S-5 UR[[ [S-SS9 UR[[ [S-[ S9 UR [ [S-SS9[S-5 UR[[ [S-SS9 UR[[ [S-[ S9 [R"[S5 [R"[S-5 [R"[5 g![a GNc4[[S5nURS5 SSS5 UR[ [SS9[5 UR[ [SS9[5 UR[ [[ S9[5 UR[ [S-SS9[5 UR [[[S-SS9 UR [[[S-[ S9 UR[ [S-SS9[5 UR [[[S-SS9 UR [[[S-[ S9 UR[ [S-SS9[[55 UR [[[S-SS9 UR [[[S-[ S9 UR[ [S -SS9[S -5 UR [[[S -SS9 UR [[[S -[ S9 [R"[5 g!,(df  GNL=f![R"[5 f=f) Nwtest_posixpath wuz ereFr*TrFrr /subdir) rrrr@rrr+NotADirectoryErrorrr rrps rtest_realpath_nonterminal_file,PosixPathTest.test_realpath_nonterminal_filehs  %fc"a01#   XfU;V D   XfT:F C   Xf]CV L   Xfsl5A6 J   0(FSLQU  V   0(FSL%2  4   XftmEBF K   0(FTMRV  W   0(FTM%2  4   XfunUCWV_ U   0(FUNSW  X   0(FUN%2  4   Xfy&8GR[I[ \   0(FY.s7Hrr$r6r8z../a/bz../brr<z../cr=r:z../../arbz /foo/bar/batz/x/y/zz../../../foo/bar/batrEbatrFz foo/bar/batz../../..rCz../foo/bar/batz ../../../x) rrr[rSr+ TypeErrorr(r9r0r@r)r* real_getcwdcurdirs r test_relpathPosixPathTest.test_relpaths}$&II/H bi $WW]]299;/3F   i):):D A   j)*;*;R @   Y..s3S 9   Y..y/@/@/EF L   Y..u5u =   Y..x8( C   Y..sF;U6\$=N O   Y..uf="6\&0 2   Y..sE:I F   Y..sC8# >   Y..~xHJ` a   Y..~zJE R   Y..~sC] S   Y..sNCZ P   Y..~tDFV W   Y..t^Dl S   Y..sC8# >   Y..tT:C @   Y..vv> D#BI BIs L2M M*c([RSsn[l[RR[R"55SnUR [ [ RS5 UR[ R"S5S5 UR[ R"[ R"S55S5 UR[ R"S5S5 UR[ R"S5S5 UR[ R"SS5SU-S -5 UR[ R"SS 5SU-S -5 UR[ R"SS 5S 5 UR[ R"SS5S5 UR[ R"SS5S5 UR[ R"SS5S5 UR[ R"SS5S5 UR[ R"SS5S5 UR[ R"SS5S5 UR[ R"SS5S5 UR[ R"SS5S5 UR[ R"S S 5S5 UR[ R"S S 5S5 UR [[ RSS5 UR [[ RSS5 U[lg!U[lf=f)Ncg)Ns/home/user/barrrrrr2PosixPathTest.test_relpath_bytes..s:Lrrrrlsa/bs../a/bs../bs../rms../cs/a/bsb/cs../../ars /foo/bar/bats/x/y/zs../../../foo/bar/batrLsbatrMs foo/bar/bats../../..s/xs../foo/bar/bats ../../../xsbytesr) rrr[rSr+r0r(r9r@rr)r* real_getcwdbrs rtest_relpath_bytes PosixPathTest.test_relpath_bytess&(jj2L"rz &WW]]2::<04F   j)*;*;S A   Y..t4d ;   Y..y/@/@/FG N   Y..v6 ?   Y..y99 E   Y..tW=#F]50 2   Y..vw?#F]72 4   Y..tVTR[R"U5U5 TR[R"UVs/sHn[R"U5PM sn5[R"U55 gs snfr)r@r( commonpathrr)pathsrpr*s rcheck,PosixPathTest.test_commonpath..checks_   Y11%8( C   Y1152Q5a2;;q>52QR[[2 42Qs B c >TRU[RU5 TRU[RUVs/sHn[R"U5PM sn5 gs snfr)r+r(rrr)excrrr*s r check_error2PosixPathTest.test_commonpath..check_error sP   c9#7#7 ?   c9#7#77<=u!r{{1~u= ?=s A* z/usrusrz /usr/localz /usr/local/z /usr//localz //usr/localz /usr/./localz /./usr/localrFz/devz /usr/lib/z/usr/lib/python3z/usr/libz /usr/lib64/z /usr/lib64spamalotr$and/jamand/spamandzand//jamz and/spam//z and/./jamz ./and/spam)rrr)rrrz spam/alotz /spam/alots /usr/lib/zusr/lib/python3susr/lib/s/usr/lib/python3susr/lib/python3zusr/lib/)r+rr(rr0iter)r*rrs` rtest_commonpathPosixPathTest.test_commonpaths 4 ? )Y%9%94@ *i&:&:B? *i&:&:DHEJ0J0 |nl+ |\*L9 }l+\: }m,l; }m,l; ~~. = sFmS! vv$ {./< {M*F3 z<(&1 {L)62 vh vv' vv# y*%u- z<(%0 {L)51 -r2 ,e4 rdB r;$J\ 23 )Y%9%9');< > )Y%9%9'):; = )Y%9%9&(:; = )Y%9%9&(;< > )Y%9%9&(:; = )Y%9%9%':; =rr)D__name__ __module__ __qualname____firstlineno__r,rBrUr^rdrrrxr{r~rrrrrr skip_unless_symlinkrrskipIfrrrrr1r2r cpython_onlyrrrrrrrrrrrr#r'r-r6r:r=rHrKrNrUrYr\rarrhsupports_follow_symlinksrirmrrryr|rrrr__static_attributes__rrrr!r!*sA50 M78 &:4 : D EA$N ? $: ""%#%__Ud]$@A"B""__Ud]$@A"B"*7__S\\W,.LM ?N??L __S\\Y.35%G5%GN__S\\Y.35454.3Nj 3'2$'(M)BCTD'T'2$'(M)BCMD'M""&2-01%2'#%""&%'#%]N~""&2-01%2'#%""&2-01%2'#%""&%)'#%)N""&Hd#h %>?%)@'#%)N""&2$'(M)BC $D'# $""&2$'(M)BC$D'#$"""&2-01$2'#$$""&2$'(M)BC$D'#$4""&2$'(M)BC$D'#$"""& __RXXR%@%@@Bab __S\\X-/bc %dc'# %""& __RXXR%@%@@Bab __S\\X-/bcHd#h %>?@dc'#  '"" $#' $D'%'%<""&+'#+@""& +'# +D$6&<6=rr!c \rSrSr\r/SQrSrg)PosixCommonTesti?)r9samefile sameopenfilesamestatrN)rrrrr( pathmodule attributesrrrrrr?s JDJrrc\rSrSr\rSrSrSrSr Sr Sr Sr S r S rS rS rS rSrSrSrSrSrSr\"0SS0S\05S5rSrSrSrg) PathLikeTestsiDc[Ul[[5UlUR [ R UR5 [URSS5nURS5 SSS5 g!,(df  g=f)Nxbrstest_posixpath.PathLikeTests) r file_namer file_pathrr rrr)r*files rr,PathLikeTests.setUpHsX!&)  (($..9 $..$ *d JJ6 7+ * *s !A<< B chURU"UR5U"UR55 gr)r@rr)r*funcs rassertPathEqualPathLikeTests.assertPathEqualOs$ dnn-tDNN/CDrcNURURR5 gr)rr[normcaserTs rtest_path_normcase PathLikeTests.test_path_normcaseR TYY//0rcNURURR5 gr)rr[rwrTs rtest_path_isabsPathLikeTests.test_path_isabsU TYY__-rcURURRS[S5S5URRSSS55 g)Nr6r7r>)r@r[r?r rTs rtest_path_joinPathLikeTests.test_path_joinXs; Xc]C@S#6 8rcNURURR5 gr)rr[rSrTs rtest_path_splitPathLikeTests.test_path_split\rrcNURURR5 gr)rr[rYrTs rtest_path_splitext PathLikeTests.test_path_splitext_rrcNURURR5 gr)rr[ splitdriverTs rtest_path_splitdrive"PathLikeTests.test_path_splitdriveb TYY112rcNURURR5 gr)rr[rorTs rtest_path_splitroot!PathLikeTests.test_path_splitrootes TYY001rcNURURR5 gr)rr[rrTs rtest_path_basename PathLikeTests.test_path_basenamehrrcNURURR5 gr)rr[rrTs rtest_path_dirnamePathLikeTests.test_path_dirnamek TYY../rcNURURR5 gr)rr[rrTs rtest_path_islinkPathLikeTests.test_path_islinkns TYY--.rcNURURR5 gr)rr[r)rTs rtest_path_lexistsPathLikeTests.test_path_lexistsqrrcNURURR5 gr)rr[rrTs rtest_path_ismountPathLikeTests.test_path_ismounttrrcNURURR5 gr)rr[rrTs rtest_path_expanduser"PathLikeTests.test_path_expanduserwrrcNURURR5 gr)rr[ expandvarsrTs rtest_path_expandvars"PathLikeTests.test_path_expandvarszrrcNURURR5 gr)rr[rrTs rtest_path_normpath PathLikeTests.test_path_normpath}rrcNURURR5 gr)rr[rrTs rtest_path_abspathPathLikeTests.test_path_abspathrrrTcURURR5 UR[URR40UD65 gr)rr[rrrs rtest_path_realpath PathLikeTests.test_path_realpaths< TYY//0 WTYY%7%7B6BCrcNURURR5 gr)rr[r9rTs rtest_path_relpathPathLikeTests.test_path_relpathrrcURRURUR/5nUR XR5 gr)r[rrrr@)r* common_paths rtest_path_commonpath"PathLikeTests.test_path_commonpaths5ii**DNNDNN+KL  nn5r)rrN)rrrrr(r[r,rrrrrrrrrrrrrrrrrrrrrrrrrrrrDs D8E1.8.13210/0033102$'(M)BCDDD 06rr__main__)#rrr(rr1r functoolsrrrrrrrr r test.supportr r test.support.os_helperr rrr ImportErrorrrrTestCaser! CommonTestrrrmainrrrr s  II!&"3 =2R=H%%R=j E&1183D3DE J6H%%J6Z Z MMO# EsC CC