ó {G_Tc@sÒddlZddlmZmZddlZddlZddlmZmZmZm Z eej ƒZ d„Z d„Z dejfd„ƒYZdejfd „ƒYZd „Zed krÎeƒndS( iÿÿÿÿN(t test_supportttest_genericpath(trealpathtabspathtdirnametbasenamecCs/dtk}d}|tj|ƒ|ƒg|S(s­ On Windows, posixpath.abspath still returns paths with backslashes instead of posix forward slashes. If this is the case, several tests fail, so skip them. s\s'ABSTFN is not a posix path - tests fail(tABSTFNtunittesttskip(ttesttfound_backslashtmsg((s//usr/local/lib/python2.7/test/test_posixpath.pyt!skip_if_ABSTFN_contains_backslash s cCs)ytj|ƒWntk r$nXdS(N(tostrmdirtOSError(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt safe_rmdirs t PosixPathTestcBseZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zed„ƒZed„ƒZeedƒrüd„Zd„Zd„Zd„Zd„Zd„Zd„Znd„ZRS(cCs|jƒdS(N(ttearDown(tself((s//usr/local/lib/python2.7/test/test_posixpath.pytsetUpscCsCx<dddgD]+}tjtj|ƒttj|ƒqWdS(Ntt1t2(RtunlinktTESTFNR(Rtsuffix((s//usr/local/lib/python2.7/test/test_posixpath.pyR!scCsd|jtjddddƒdƒ|jtjdddƒdƒ|jtjddd ƒd ƒdS( Ns/footbars/bartbazs/bar/bazs /foo/bar/bazs/foo/sbar/sbaz/s /foo/bar/baz/(t assertEqualt posixpathtjoin(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_join&s"cCs|jtjdƒd ƒ|jtjdƒd ƒ|jtjdƒd ƒ|jtjdƒdƒ|jtjd ƒdƒdS(Ns/foo/bars/fooRt/Rtfoos////foos////s //foo//bars//foo(s/foosbar(R!R(RR"(s////R"(s//foosbar(RRtsplit(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_split+s cCsê|jtj|ƒ||fƒ|jtjd|ƒd||fƒ|jtjd|ƒd||fƒ|jtjd|ƒd||fƒ|jtjd|ƒd||fƒ|jtj|dƒ||ddfƒdS(NR!sabc/sabc.def/s /abc.def/R(RRtsplitext(Rtpathtfilenametext((s//usr/local/lib/python2.7/test/test_posixpath.pyt splitextTest2s ''''cCsè|jdddƒ|jdddƒ|jdddƒ|jdd d ƒ|jd d d ƒ|jd d d ƒ|jddd ƒ|jdddƒ|jddd ƒ|jddd ƒ|jddd ƒ|jd d d ƒdS(Nsfoo.barR"s.bars foo.boo.barsfoo.boosfoo.boo.biff.bars foo.boo.biffs.csh.rcs.cshs.rctnodotsRs.cshrcs ...manydotss...manydots.exts.extt.s..s........(R)(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_splitext:scCs|jtjdƒtƒ|jtjdƒtƒ|jtjdƒtƒ|jtjdƒtƒ|jtjdƒtƒdS(NRR!s/foos/foo/barsfoo/bar(tassertIsRtisabstFalsetTrue(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_isabsHs cCs|jtjdƒdƒ|jtjdƒdƒ|jtjdƒdƒ|jtjdƒdƒ|jtjdƒdƒdS(Ns/foo/barRR!RR"s////foos //foo//bar(RRR(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_basenameOs cCs|jtjdƒdƒ|jtjdƒdƒ|jtjdƒdƒ|jtjdƒdƒ|jtjdƒd ƒdS( Ns/foo/bars/fooR!R"Rs////foos////s //foo//bars//foo(RRR(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_dirnameVs cCsV|jtjtjdƒtƒttjddƒ}zÿ|jdƒ|jƒ|jtjtjdƒtƒt t dƒr4t j tjdtjdƒ|jtjtjdƒt ƒt j tjdƒ|jtjtjdƒt ƒ|jtjtjdƒtƒ|jtjtjdƒt ƒnWd|jƒsQ|jƒnXdS(NRtwbR"tsymlinkR(R-RtislinkRRR/topentwritetclosethasattrR R5R0tremovetexiststlexists(Rtf((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_islink]s       ' cCsAttjddƒ}z |jdƒ|jƒ|jtjtjdtjdƒtƒt t dƒrt j tjdtjdƒ|jtjtjdtjdƒtƒt j tjdƒttjddƒ}|jdƒ|jƒ|jtjtjdtjdƒt ƒnWd|jƒs<|jƒnXdS(NRR4R"R5RR(R7RRR8R9R-RtsamefileR0R:R R5R;R/(RR>((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_samefileos:            cCswttjddƒ}z@|jdƒ|jƒ|jtjtj tjdƒtj tjdƒƒt ƒt tdƒrUtj tjdtjdƒ|jtjtj tjdƒtj tjdƒƒt ƒtj tjdƒttjddƒ}|jdƒ|jƒ|jtjtj tjdƒtj tjdƒƒtƒnWd|jƒsr|jƒnXdS(NRR4R"R5RR(R7RRR8R9R-RtsamestatR tstatR0R:R5R;R/(RR>((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_samestatšs6     cCs|jtjdƒtƒdS(NR!(R-RtismountR0(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_ismountÁscCs|jtjdƒdƒyddl}Wntk r<nÛX|jtjdƒtƒtjdƒdkr”|jtjdƒdtjdƒƒn|jtjdƒtƒ|jtjdƒtƒtjƒC}d|d<|jtjdƒdƒ|jtjd ƒd ƒWdQXdS( NR"iÿÿÿÿs~/t~R!s~root/s~foo/tHOMEs~/foos/foo( RRt expandusertpwdt ImportErrortassertIsInstancet basestringRtEnvironmentVarGuard(RRJtenv((s//usr/local/lib/python2.7/test/test_posixpath.pyttest_expanduserÄs   cCs³|jtjdƒdƒ|jtjdƒdƒ|jtjdƒdƒ|jtjdƒdƒ|jtjdƒdƒ|jtjdƒd ƒ|jtjd ƒdƒdS( NRR+R!s//s///s///foo/.//bar//s/foo/bars///foo/.//bar//.//..//.//bazs/foo/bazs///..//./foo/.//bar(RRtnormpath(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_normpathÚscCsh|jtdƒtjƒƒ|jtdƒtjƒƒ|jtdjdgdƒƒtjƒƒdS(NR+s./.R!id(RRR tgetcwdR(R((s//usr/local/lib/python2.7/test/test_posixpath.pyttest_realpath_curdirãscCst|jtdƒttjƒƒƒ|jtdƒtttjƒƒƒƒ|jtdjdgdƒƒdƒdS(Ns..s../..R!id(RRRR RSR(R((s//usr/local/lib/python2.7/test/test_posixpath.pyttest_realpath_pardirés"(R5cCsGz2tjtdtƒ|jttƒtdƒWdtjtƒXdS(NR(R R5RRRRR(R((s//usr/local/lib/python2.7/test/test_posixpath.pyttest_realpath_basicðscCsªz3tdƒ}tjttƒ|jttƒtƒtjtdtdƒtjtdtdƒ|jttdƒtdƒ|jttdƒtdƒ|jttdƒtdƒ|jttdƒttƒƒ|jttdƒttƒdƒtjtdtd ƒ|jttd ttƒd ƒtd ƒ|jttd ttƒdƒtdƒtjttƒd td ƒ|jttd ƒtd ƒtjd tttƒƒdttƒdtdƒ|jttdƒtdƒtjttƒƒ|jtttƒƒtƒWdtj|ƒt j tƒt j tdƒt j tdƒt j td ƒt j tdƒt j td ƒXdS(NR+RRs1/xs1/..s1/../xs/xtxtys1/../sa/btas../R!tc( RR R5RRRRRtchdirRR(Rtold_path((s//usr/local/lib/python2.7/test/test_posixpath.pyttest_realpath_symlink_loopsøs<  $! ! 0   cCs‘z]tjtƒtjdttƒtdƒtjdtdƒ|jttdƒtƒWdtjtdƒtjtdƒt tƒXdS(Ns../s/selfsself/self/selfs/link( R tmkdirRR5RRRRRR(R((s//usr/local/lib/python2.7/test/test_posixpath.pyt(test_realpath_repeated_indirect_symlinks!s cCsd}tdƒ}z±tjtƒxDt|ƒD]6}tjdjd|gdƒtd|dƒq/Wtjdtdƒ|jttd|ƒtƒtj tƒ|jtd|ƒtƒWdtj |ƒx-t|dƒD]}t j td|ƒqäWt tƒXdS(Ni R+R!s%ds/%dis/0( RR R^RtrangeR5RRRR[RRR(RtdepthR\ti((s//usr/local/lib/python2.7/test/test_posixpath.pyttest_realpath_deep_recursion-s  4  cCs¯zqtdƒ}tjtƒtjtdƒtjtdtdƒtjtdƒ|jtdƒtdƒWdtj|ƒtj tdƒt tdƒt tƒXdS(NR+s/ys/kRYs/y/a( RR R^RR5R[RRRRR(RR\((s//usr/local/lib/python2.7/test/test_posixpath.pyttest_realpath_resolve_parents@s   cCsøz¬tdƒ}tjtƒtjtdƒtjtdƒtjtdtdƒ|jttdƒtdƒtjttƒƒ|jtt tƒdƒtdƒWdtj|ƒt j tdƒt tdƒt tdƒt tƒXdS(NR+s/ks/k/ys/link-ys /link-y/..( RR R^RR5RRR[RRRRR(RR\((s//usr/local/lib/python2.7/test/test_posixpath.pyt(test_realpath_resolve_before_normalizingSs   cCs×z™tdƒ}tjtƒtjtdƒtjttdƒtjttƒƒttƒ}|jt |dƒtƒ|jt |dƒtdƒWdtj|ƒt j tdƒt tdƒt tƒXdS(NR+s/ktlinkslink/k( RR R^RR5R[RRRRRRR(RR\tbase((s//usr/local/lib/python2.7/test/test_posixpath.pyttest_realpath_resolve_firstos   " cCsFtjd„}t_ztjjtjƒƒd}|jttjdƒ|jtjdƒdƒ|jtjtj dƒƒdƒ|jtjdƒdƒ|jtjdƒdƒ|jtjddƒd|d ƒ|jtjdd ƒd|d ƒ|jtjdd ƒd ƒ|jtjddƒdƒ|jtjddƒdƒ|jtjddƒdƒ|jtjddƒdƒ|jtjddƒdƒ|jtjddƒdƒ|jtjddƒdƒ|jtjddƒdƒ|jtjd d ƒdƒ|jtjd d ƒdƒWd|t_XdS(NcSsdS(Ns/home/user/bar((((s//usr/local/lib/python2.7/test/test_posixpath.pyt„siÿÿÿÿRRYsa/bs../a/bs../bs../s/as../cs/a/bsb/cs../../aR+s /foo/bar/bats/x/y/zs../../../foo/bar/bats/foo/bartbatR!s foo/bar/bats../../..s/xs../foo/bar/bats ../../../x( R RSR&R#t assertRaisest ValueErrorRtrelpathRR(Rt real_getcwdtcurdir((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_relpathƒs,"$$ (t__name__t __module__RRR R$R)R,R1R2R3R?RARDRFRPRRR RTRUR:R RVR]R_RcRdReRhRp(((s//usr/local/lib/python2.7/test/test_posixpath.pyRs4           + '     )    tPosixCommonTestcBs eZeZddddgZRS(RmR@t sameopenfileRB(RqRrRt pathmodulet attributes(((s//usr/local/lib/python2.7/test/test_posixpath.pyRsscCstjttƒdS(N(Rt run_unittestRRs(((s//usr/local/lib/python2.7/test/test_posixpath.pyt test_main¢st__main__(RR RRRR RRRRRRR RtTestCaseRt CommonTestRsRxRq(((s//usr/local/lib/python2.7/test/test_posixpath.pyts " ÿ‚