C_FV SSKrSSKrSSKrSSKrSSKrSSKJrJrJrJ r SSK J r SSK J r SSjr"SS5r"SS \\R 5r"S S \5r"S S \R 5r\S:Xa\R*"5 gg)N)is_apple is_emscripten os_helperwarnings_helper)assert_python_ok)FakePathct[USS5nURU5 SSS5 g!,(df  g=f)Nxbr)openwrite)filenamedatafps ? @    +->? @    -/?@ A    +->? @    +->? @   /1CD E    ,.@A B    ,.@A B    .0AB C    ,.@A B    ,.@A B  6B "* a 01 a 018AA''QqS 2!9= cl[RnUR[RU5 [ US5 UR UR RU5S5 [R"U5 [ US5 UR UR RU5S5 g)NsHellos Hello World! ) rTESTFN addCleanupunlinkrr8r#rosremove)r'r s r test_getsizeGenericTest.test_getsizees##  (((3Hh' 00:A> (Ho. 00:B?rDc[RnUR[RU5 [ US5 [ USS5nUR S5 SSS5 [ USS5nUR5nSSS5 URWS5 URURRU5URRU55 g!,(df  N=f!,(df  Nv=f)Nfoor4rbarrbsfoobar) rrHrIrJrr r readr8assertLessEqualr#rr)r'r frs r test_filetimeGenericTest.test_filetimeps##  (((3Hf% (D! $ GGFO%(D! $668D% y)  OO $ $X . OO $ $X . % $% $s C!1C2! C/2 Dc[Rn[R"U5nUR [R U5 UR URRU5S5 UR URRU5S5 UR URRU5S5 UR URRU5S5 [U5 UR URRU5S5 UR URRU5S5 UR URRUS-5S5 UR URRUS-5S5 UR URRUS-5S5 UR URRUS-5S5 UR URRU5S5 UR URRU5S5 UR URRUS-5S5 UR URRUS-5S5 UR URRUS-5S5 UR URRUS-5S5 UR URRUS9S5 UR URRUS9S5 g)NFT)path) rrHrKfsencoderIrJassertIsr#rlexistsrr'r bfilenames r test_existsGenericTest.test_existssq##KK)   (((3 doo,,X6> doo,,Y7? doo--h7? doo--i8%@H doo,,X6= doo,,Y7> doo,,X-@A5I doo,,Y-@A5I doo,,X->?G doo,,Y-@A5I doo--h7> doo--i8$? doo--h.ABEJ doo--i'.ABEJ doo--h.?@%H doo--i'.ABEJ doo,,(,;TB doo--8- doo++Hx,?@%H doo++I,?@%H doo++Hv,=>F doo++I,?@%H '  ! MM$////95 A MM$//// :E B   X & & HHX  MM$////94 @ MM$//// :D A OOH %   X & OOH %6A!H1.A,I 1I  I$c[Rn[R"U5nUR UR R U5S5 UR UR R U5S5 UR UR R US-5S5 UR UR R US-5S5 UR UR R US-5S5 UR UR R US-5S5 [U5 UR UR R U5S5 UR UR R U5S5 [R"U5 [R"U5 UR UR R U5S5 UR UR R U5S5 [R"U5 g![R"U5 f=f![R"U5 f=fru) rrHrKr^r_r#rrrJrvrwras r test_isfileGenericTest.test_isfiles##KK)  doo,,X6> doo,,Y7? doo,,X-@A5I doo,,Y-@A5I doo,,X->?G doo,,Y-@A5I '  ! MM$//00:D A MM$//00;T B   X & & HHX  MM$//00:E B MM$//00;U C OOH %   X & OOH %rzc[Rn[RS-nUR[RU5 UR[RU5 [ U5 UR UR RX55 [ U5 URUR RX55 UR[UR R5 gN2) rrHrIrJrr9r#samefilerir r!)r'file1file2s r test_samefileGenericTest.test_samefiles    3&  ((%0  ((%0E 00>?E 11%?@ )T__%=%=>rDc[Rn[RS-nUR[RU5 UR[RU5 [ U5 U"X#5 UR UR RX#55 [R"U5 [ U5 URUR RX#55 gr) rrHrIrJrr9r#rrKrLrir'functest_fn1test_fn2s r_test_samefile_on_link_func'GenericTest._test_samefile_on_link_funcs####c)  (((3  (((3H X  00DE (H 11(EFrDcBUR[R5 grg)rrKsymlinkr's rtest_samefile_on_symlink$GenericTest.test_samefile_on_symlink ((4rDlinkzrequires os.linkcUR[R5 g![anUR SU-5 SnAgSnAff=fNz os.link(): %s)rrKrPermissionErrorskipTestr'es rtest_samefile_on_link!GenericTest.test_samefile_on_link= /  , ,RWW 5 / MM/A- . . /" A AA ct[Rn[RS-nUR[RU5 UR[RU5 [ U5 [ R "U5nURURRU[ R "U555 [ U5 [ R "U5nURURRX455 UR[URR5 gr) rrHrIrJrrKstatr9r#samestatrir r!)r'rrstat1stat2s r test_samestatGenericTest.test_samestats####c)  (((3  (((3H! 008IJKH! 11%?@ )T__%=%=>rDc[RS-n[RS-nUR[RU5 UR[RU5 [ U5 U"X#5 UR UR R[R"U5[R"U555 [R"U5 [ U5 URUR R[R"U5[R"U555 g)N1r) rrHrIrJrr9r#rrKrrLrirs r_test_samestat_on_link_func'GenericTest._test_samestat_on_link_funcs##c)##c)  (((3  (((3H X  001B131BD E (H 11"''(2C24''(2CE FrDcBUR[R5 grg)rrKrrs rtest_samestat_on_symlink$GenericTest.test_samestat_on_symlink.rrDcUR[R5 g![anUR SU-5 SnAgSnAff=fr)rrKrrrrs rtest_samestat_on_link!GenericTest.test_samestat_on_link2rrc[RnUR[RU5 [ U5 [ USS5nUR 5n[ USS5nUR 5nURURRX555 SSS5 SSS5 g!,(df  N=f!,(df  g=f)NrRr) rrHrIrJrr filenor9r# sameopenfile)r'r fp1fd1fp2fd2s rtest_sameopenfileGenericTest.test_sameopenfile9s##  (((3H (D! $**,Cha(Cjjl < F @ $DBV,.BC __]$FG4HD4+ &2&2 ? G""5#5V,.@A/B/ ? F ""5#5V,.@A/B/ HrDrc\rSrSr\rSrSrg)TestGenericTestiEc[RGHnUS:XaM [URU5nUR US9 US;a!U"S5 U"S5 U"S5 U"S5 OUR [ [45 U"S5 SSS5 UR [ [45 U"S5 SSS5 UR[S5 U"S5 SSS5 UR[S5 U"S5 SSS5 SSS5 GM g!,(df  N=f!,(df  N{=f!,(df  Ne=f!,(df  NO=f!,(df  GMa=f) Nr)r()rrru /tmpabcdss /tmpabcdsz /tmpabcdss /tmpabcdsz embedded null) rrr"r#subTestr OSErrorUnicodeEncodeErrorUnicodeDecodeErrorassertRaisesRegex ValueError)r'r(rs rtest_invalid_paths"TestGenericTest.test_invalid_pathsKs11D~%4??D1D4(88*+)*))***G5G+HI./J**G5G+HI-.J// OL_-M// OL-.M)( 2JIIILLLL)(smAE" D#E"1 D/:E" E!E"? EE" D, (E"/ D= 9E" E E" E E"" E2 rN)r&rrr genericpathr#rrrrDrrrEsJ/rDrc\rSrSr\R /SQ-rSrSrSr\ R"\ RS5S5r SrS rS rS rS rS rSrSrSrSrg) CommonTestid)curdirpardirextsepseppathsepdefpathaltsepdevnullnormcase splitdrive expandvarsnormpathabspathjoinsplitsplitextisabsbasenamedirnamer`islinkismount expanduserrrealpathcBURRnSH"nU"U5nURX!"U55 M$ URU"S5S5 URU"S5S5 SSSS/[S5SS14HnUR [ X5 M g)N)z FoO/./BaRs FoO/./BaRr,rDTrg@o)r#rr8 bytearrayr r!)r'rr@r]s r test_normcaseCommonTest.test_normcaseos??++,A A   Q ,- "r* #,4CYs^c#YGD   i 8HrDcPURRnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S 5S 5 URU"S 5S 5 g) N/foo/bar)r,rfoo:bar)r,r:foo:bar)r,r/foo/bar)rDrfoo:bar)rDr:foo:bar)rDr)r#rr8)r'rs rtest_splitdriveCommonTest.test_splitdrive}s__//  J/1AB I.@ J/1AB K02DE J/1BC K02DErDcURRn[R"5nUR 5 SUS'SUS'SUS'UR U"S5S5 UR U"S5S5 UR U"S 5S 5 UR U"S 5S 5 UR U"S 5S 5 UR U"S 5S 5 UR U"S5S5 UR U"S5S5 UR U"S5S5 UR U"S5S 5 UR U"S5S5 UR U"S5S5 UR U"S5S5 UR U"S5S5 UR U"S5S5 UR U"S5S5 UR U"S5S5 UR U"S5S5 UR U"S5S5 UR U"S 5S!5 UR U"S"5S5 UR U"S#5S#5 SSS5 g!,(df  g=f)$Nbarfoobaz1z{foobaz2z{foo}z$foo barzbar barz ${foo}barbarbarz $[foo]barz$bar barz$?barz$foo}barzbar}barz${fooz${{foo}}zbaz1}z$foo$fooz$bar$barrPs$foo barsbar bars ${foo}barsbarbars $[foo]bars$bar bars$?bars$foo}barsbar}bars${foos${{foo}}sbaz1}s$foo$foos$bar$bar)r#rrEnvironmentVarGuardclearr8)r'renvs rtest_expandvarsCommonTest.test_expandvarss__//  * * , IIKCJ CK!CL   Z. 6   Z 3Y ?   Z 4h ?   Z 4k B   Z 3Z @   Z0' :   Z 3Y ?   Z0' :   Z 3W =   Z 3X >   Z 3Z @   Z/ 8   Z 4j A   Z 5y A   Z 5| D   Z 4k B   Z18 <   Z 4j A   Z18 <   Z 4h ?   Z 4i @   Z 4k B7- , ,s H0I%% I3zneed os_helper.FS_NONASCIIc^^TRRmUU4Sjn[R"5nUR 5 [R nX2S'SU-X#'U"X35 U"SSU-5 U"SSU-5 U"SU-S U-5 U"S U-S U-5 U"S S U-5 U"[ R"U5[ R"U55 U"S [ R"SU-55 U"S[ R"SU-55 U"[ R"SU-5[ R"S U-55 U"[ R"S U-5[ R"S U-55 U"S[ R"S U-55 SSS5 g!,(df  g=f)Nc6>TRT"U5U5 grg)r8)valueexpectedrr's rcheck2CommonTest.test_expandvars_nonascii..checks   Z. 9rDspamhamz $spam barz%s barz ${spam}barz%sbarz${%s}barzham%sbarz $bar%s barz $spam}barz%s}bars $spam bars ${spam}bars $spam}bar)r#rrrr FS_NONASCIIrKr^)r'rrnonasciirs` @rtest_expandvars_nonascii#CommonTest.test_expandvars_nonasciisk__//  :  * * , IIK ,,H"K!H,CM ( % +x(2 3 ,( 2 3 *x'h)> ? ,)<(+B C +x(2 3 "++h'X)> ? , Hx,? @ A -Wx-?!@ A "++j834++j834 6 "++lX56++lX56 8 , Hx,? @ A'- , ,s E5F33 GcURSURRS55 [R"5 [R "S[ 5 URSURRS55 SSS5 [RS:XaSOSn[R"5 [R "S[ 5 SSUSS4H2nURURRU5[5 M4 SSS5 g!,(df  N=f!,(df  g=f) NrignorerPwin32rDsfs/foosC:\) assertInr#rwarningscatch_warnings simplefilterDeprecationWarningsysplatformassertIsInstancebytes)r'undecodable_pathr]s r test_abspathCommonTest.test_abspaths eT__44U;<  $ $ &  ! !(,> ? MM&$//"9"9&"A B' #&,,'"93| $ $ &  ! !(,> ?f&6I%%doo&=&=d&CUKJ' &' &' &sAD=AD0 D-0 D>cDURSURRS55 [R"5 [R "S[ 5 URSURRS55 SSS5 g!,(df  g=f)Nrr rP)rr#rrrrrrs r test_realpathCommonTest.test_realpathse eT__55e<=  $ $ &  ! !(,> ? MM&$//":":6"B C' & &s AB BctSH2nURURRU5[5 M4 g)N)r,./\z///foo/.//bar//)rr#rstrr'r]s rtest_normpath_issue5827"CommonTest.test_normpath_issue5827s+;D  ! !$//":":4"@# F KK  ##F+DD))'$-=E,++  23   sB++&B B(+B>=B>c[R(a0[RS;a[(d[RnO7[R (a[R nOUR S5 [R"5 [R"S[5 [R"W5 UR5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)N>wasir emscriptenzneed os_helper.TESTFN_NONASCIIr ) rTESTFN_UNDECODABLErrrTESTFN_NONASCIIrrrrrr+r)r'names rtest_nonascii_abspath CommonTest.test_nonascii_abspaths  ( (  %h//D  & &,,D MM: ;  $ $ &  ! !(,> ?##D)!!#*' &))' &s$2C7C&C7& C4 0C77 Dc[R"S[4SS9 SnUR[U5 UR R SS5 SSS5 UR[U5 UR R SS5 SSS5 UR[S5 UR R SS5 SSS5 UR[S5 UR R SS5 SSS5 UR[S5 UR R S5 SSS5 UR[S 5 UR R /5 SSS5 UR[S 5 UR R [S 5[S 55 SSS5 SSS5 g!,(df  GN=f!,(df  GNa=f!,(df  GN8=f!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  N=f!,(df  g=f) Nr,Tquiet.Can't mix strings and bytes in path componentsbytesr"int*listrrPrQ)rcheck_warnings BytesWarningrr!r#rrr'errmsgs rtest_join_errorsCommonTest.test_join_errorss  + +R,>d KEF'' 6:$$Xu5;'' 6:$$UH5;'' 59$$R/:'' 59$$UB/:'' 59$$R(:'' 6:$$R(;'' ;?$$Yv%6 &8IJ@L K:::::99999::??L KsIGI0G' I+G9I&H I!H=IH.7I/H?I G$ I' G6 1I9 H I H I H+ 'I. H< 8I? I I Ic[R"S[[44SS9 SnUR [ U5 UR RSS5 SSS5 UR [ U5 UR RSS5 SSS5 UR [ S5 UR RSS5 SSS5 UR [ S5 UR RSS5 SSS5 UR [ S 5 UR R[S 5[S 55 SSS5 SSS5 g!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  N=f!,(df  N\=f!,(df  g=f) Nr,Tr9r;r<r"r=r>rrPrQ) rr@rArrr!r#relpathrrBs rtest_relpath_errorsCommonTest.test_relpath_errorss<  + +l$678FEF'' 6:''%8;'' 6:''x8;'' 59''E2:'' 59''r2:'' ;?'' &(99V;LM@FF;:::9999??FFsF=E'F=6E9F=1F F=,F F='/F,F=' E6 1F=9 F F= F F= F) %F=, F: 6F== G cL[SSSURR-5 g)Nz-Sz-czimport )rr#r&rs r test_importCommonTest.test_import+stY1I1I%IJrDrN)r&rrrrrrrrrrrrr rrr$r'r.r6rDrHrKrrrDrrrds#559 9 FC>..0LMBNB2 LD G C>$$,K(N KrDrcP\rSrSrSrSrSrSrSrSr Sr S r S r S r S rg ) PathLikeTestsi/c[RUl[[R5UlUR [R UR5 [URS5 g)Nstest_genericpath.PathLikeTests)rrH file_namer file_pathrIrJrrs rsetUpPathLikeTests.setUp1sH"))!)"2"23  (($..9DNN$EFrDchURU"UR5U"UR55 grg)r8rQrP)r'rs rassertPathEqualPathLikeTests.assertPathEqual7s$ dnn-tDNN/CDrDcVUR[RR5 grg)rUrKr]rrs rtest_path_existsPathLikeTests.test_path_exists: RWW^^,rDcVUR[RR5 grg)rUrKr]rrs rtest_path_isfilePathLikeTests.test_path_isfile=rZrDcVUR[RR5 grg)rUrKr]rrs rtest_path_isdirPathLikeTests.test_path_isdir@s RWW]]+rDcUR[RRURUR /5UR 5 grg)r8rKr]rrQrPrs rtest_path_commonprefix$PathLikeTests.test_path_commonprefixCs5 --t~~t~~.NO )rDcVUR[RR5 grg)rUrKr]rrs rtest_path_getsizePathLikeTests.test_path_getsizeGs RWW__-rDcVUR[RR5 grg)rUrKr]rrs rtest_path_getmtime PathLikeTests.test_path_getmtimeJ RWW--.rDcVUR[RR5 grg)rUrKr]rrs rtest_path_getctime PathLikeTests.test_path_getctimeMrjrDcUR[RRURUR 55 grg)r9rKr]rrQrPrs rtest_path_samefile PathLikeTests.test_path_samefilePs' ((HIrD)rPrQN)r&rrrrRrUrXr\r_rbrerhrlrorrrDrrNrN/s7G E--,).//JrDrN__main__)rP)rrKrrr test.supportrrrrtest.support.script_helperrtest.support.os_helperrrrTestCaserrrNr&mainrrDrrws  8+ lHlH^ /k8#4#4/>HKHKV"JH%%"JJ z MMOrD