NStsSrSSKrSSKrSSKrSSKrSSKrSSKJr SSK J r SSK J r SSK Jr \Rr\S-rSrS r\R(R+\5rS R/5r\R(R+\5rS rS rS r"SS5r"SS\5r"SS\5r"SS\\R@5r!"SS\\R@5r""SS\\R@5r#"SS\\R@5r$"SS\\R@5r%"SS5r&"S S!5r'"S"S#\R@5r("S$S%\R@5r)\*S&:Xa\RV"5 gg)'zTests for the linecache module N) ModuleSpec)support) os_helper)assert_python_okz.missingz !@$)(!@#_1z linecache abcz3 " Docstring " def function(): return result z% def f(): return 1 + 1 a = f() z def f(): return 3c(^\rSrSrU4SjrSrU=r$)TempFile+c*>[TU]5 [R"SS9nURUlUR UR5 SSS5 UR[RUR 5 g!,(df  N9=f)NF)delete) supersetUptempfileNamedTemporaryFilename file_namewritefile_byte_string addCleanuprunlink)selffp __class__s :/opt/alt/python313/lib64/python3.13/test/test_linecache.pyrTempFile.setUp-sa    ( ( 6"WWDN HHT** +7  (($..97 6s -B B)r)__name__ __module__ __qualname____firstlineno__r__static_attributes__ __classcell__rs@rr r +s ::r c4^\rSrSrU4SjrSrSrSrU=r$)GetLineTestsGoodData5c>SRUR5RS5Ul[TU]5 g)Nrutf-8)join file_listencoderr r)rrs rrGetLineTestsGoodData.setUp8s, " 7 > >w G  r#c@[R"UR5n[U5HUup#UR S5(dUS- n[ R "URUS-5nURX45 MW SSS5 g!,(df  g=f)N )tokenizeopenr enumerateendswith linecachegetline assertEqual)rrindexline cached_lines r test_getline!GetLineTestsGoodData.test_getline<sp ]]4>> *b(} }}T**DLD'// J   3 -+ * *s A%B Bcz[R"UR5nURXR5 gN)r4getlinesrr6r*rliness r test_getlines"GetLineTestsGoodData.test_getlinesEs(""4>>2 /r#)r) rrrrrr:rAr r!r"s@rr%r%5s400r#r%c \rSrSrSrSrSrg)GetLineTestsBadDataJcfUR[R"URS5S5 g)Nr/r)r6r4r5rrs rr: GetLineTestsBadData.test_getlineMs# **4>>1=rBr#cdUR[R"UR5/5 gr=)r6r4r>rrGs rrA!GetLineTestsBadData.test_getlinesPs! ++DNN;R@r#N)rrrrr:rAr rKr#rrDrDJsCAr#rDc\rSrSr/rSrSrg) EmptyFileTcj[R"UR5nURUS/5 g)Nr.)r4r>rr6r?s rrAEmptyFile.test_getlinesWs(""4>>2 'r#rKN)rrrrr*rAr rKr#rrMrMTs I(r#rMc\rSrSrS/rSrg)SingleEmptyLine\r.rKNrrrrr*r rKr#rrRrR\s Ir#rRc\rSrSr/SQrSrg) GoodUnicode`)uá zb zabcdef u ááááá rKNrTrKr#rrVrV`s;Ir#rVc\rSrSrSrSrg)BadUnicode_NoDeclarationcs abcrKNrrrrrr rKr#rrYrYcs#r#rYc\rSrSrSrSrg)BadUnicode_WithDeclarationfs# coding=utf-8 abcrKNr[rKr#rr]r]fs1r#r]c\rSrSrSrSrg) FakeLoaderjc SU3$)Nz source for rKrfullnames r get_sourceFakeLoader.get_sourceksXJ''r#rKNrrrrrer rKr#rr`r`js(r#r`c\rSrSrSrSrg)NoSourceLoaderocgr=rKrcs rreNoSourceLoader.get_sourcepsr#rKNrgrKr#rririosr#rich\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrg)LineCacheTeststc [RnURU"[S5[5 URU"[S5[5 UR [ U[S5 URU"[S5[5 URU"[S5[5 [Hkn[RR[U5S-n[USS9n[U5HupVURXa"X5S-55 M! SSS5 Mm [R"S5nURU/5 g!,(df  M=f) Nig?r/.pyr(encodingza/b/c/__init__.py)r4r5r6FILENAMEEMPTY assertRaises TypeError INVALID_NAMEMODULESospathr) MODULE_PATHr1r2r>)rr5entryfilenamefiler7r8emptys rr:LineCacheTests.test_getlinevs## 5159 2.6 )Wh< *E2 q159Eww||K7%?Hh1T#,T?KE$$T78QY+GH$321""#67 # 21s +/E E c`UR[R[R5 [ [RSSS9nUR [ 5 SSS5 [R"[R5nURU/SQ5 g!,(df  NG=f)Nwr(rs)r.z def f(): z return 3 ) rrrTESTFNr1rSOURCE_3r4r>r6)rrr@s rtest_no_ending_newline%LineCacheTests.test_no_ending_newlinesq  (()*:*:; )""C' :b HHX ;""9#3#34  FG; :s B B-c/n[HRn[RR[U5S-nUR U5 [ R"US5 MT URU/5 UVs/sHoD[ R;dMUPM nnURU/5 [ R"5 UVs/sHoD[ R;dMUPM nnURU/5 gs snfs snf)Nrrr/) rzr{r|r)r}appendr4r5assertNotEqualcacher6 clearcache)rcachedr~rfn cached_emptys rtest_clearcacheLineCacheTests.test_clearcachesEww||K7%?H MM( #   h * FB'%+IVr/HV I r* %+EVrY__/DV E r* J Fs5C9C9C>C>c [Rn[RS-nUR [R U5 [ USSS9nUR[5 SSS5 U"US5 /n[ USS9n[U5H0upVURXa"X%S-55 URU5 M2 SSS5 [ USSS9nUR[5 SSS5 [R"S5 [U5HupVURXa"X%S-55 M! [R"U5 [ USS9n[U5H0upVURXa"X%S-55 URU5 M2 SSS5 g!,(df  GNB=f!,(df  N=f!,(df  N=f!,(df  g=f)Nrrrr(rsr/dummy)r4r5rrrrr1rSOURCE_1r2r6rSOURCE_2 checkcache)rr5 source_namesource source_listr7r8s rtest_checkcacheLineCacheTests.test_checkcaches##&&.   ((+6 +sW 5 LL "6 Q + 0F(0   w{AI'FG""4( 11 +sW 5 LL "6 W%%[1KE   T7; #B C2 [) + 0F(0   w{AI'FG""4( 11 0/6 5 1 0 6 51 0s2F AF2GAG F/2 G G G"c [R"[5n[R"5 UR S[R "[S55 UR U[R"[55 g)NF)r4r>rurr6 lazycacher?s rtest_lazycache_no_globals(LineCacheTests.test_lazycache_no_globalssV""8,  3 3Hd CD  2 28 <=r#c[R"[[55n[R"5 UR S[R "[[555 UR S[[R[55 UR U[R"[55 g)NTr/) r4r>NONEXISTENT_FILENAMEglobalsrr6rlenrr?s rtest_lazycache_smoke#LineCacheTests.test_lazycache_smokes""#7C  )%%&:GIF H C 0D EFG  2 23G HIr#cl[R"5 [R"[[ 55n[R"5 [R"[5 [R "[[ 55 UR U[R"[55 gr=)r4rr>rrrr6 updatecacher?s r*test_lazycache_provide_after_failed_lookup9LineCacheTests.test_lazycache_provide_after_failed_lookupsm""#7C/00')<  5 56J KLr#c[R"5 [R"[[ 55 [R "5 gr=)r4rrrrrrGs rtest_lazycache_check#LineCacheTests.test_lazycache_checks-0')<r#c[R"5 URS[R"S[ 555 URS[R"S[ 555 g)NFrz)r4rr6rrrGs rtest_lazycache_bad_filename*LineCacheTests.test_lazycache_bad_filenamesL  3 3B BC  3 3GWY GHr#c:[R"5 [R"[[ 55nUR S[R "[[ 555 UR S[[R[55 g)NF) r4rr>rrr6rrrr?s rtest_lazycache_already_cached,LineCacheTests.test_lazycache_already_cachedsi""#7C      4gi @ B C 0D EFGr#cf[R"[5nURU5 Sn[R "[SU5 [R"[5nSSS5 UR WU5 [R"5 [R "[SU5 [R"[5nSSS5 UR W/5 UR [R"[5U5 g!,(df  N=f!,(df  N\=f)Nc[er=) MemoryError)argskwargss rraise_memoryerror:LineCacheTests.test_memoryerror..raise_memoryerrors r#r)r4r>ru assertTruer swap_attrr6r)rr@rlines2lines3s rtest_memoryerrorLineCacheTests.test_memoryerrors""8,     y-9J K''1FL '   y-9J K''1FL $ ++H5u=L K L Ks D1D" D" D0cSnS[5[54HCn[R"5 SUS.nUR [R "X5/5 ME [R"5 S[ 5S.nUR [R "X5S/5 S[5[S[ 554HMn[R"5 S[ 5US.nUR [R "X5S/5 MO [R"5 [S[ 55nSURUS.nUR [R "X5S/5 g) Nz scheme://pathza.b.c)r __loader__zsource for a.b.c r)rr__spec__zx.y.zzsource for x.y.z ) objectrir4rr6r>r`rloader)rrrmodule_globalsspecs r test_loaderLineCacheTests.test_loaders6"VX~'78F  "*1HN   Y//I2 N9 &-Z\J ++HE./ 168ZJL%ABD  "*1*.0N   Y//I23 5 C ':<0&-T[[&*, ++HE./ 1r#cS[S-S4SSS-S44GHupURSU35 [R"5 [R"U5nUR U/5 UR U[R5 SSS5 US 4S U4X44HupEURS U3XES 9 [R"5 S S/U4[RU'[R"U5 UR U[R5 SSS5 M GM [R"5 g!,(df  N=f!,(df  M=f)N)zNUL bytes filenamerz filename with embedded NUL bytes)u .pyz'surrogate codes (MUSICAL SYMBOL G CLEF)ai@Bzvery long filenamez updatecache: okkeyz checkcache: )rrdri) __file__subTestr4rrassertListEqual assertNotInrr)rrdescr@rrds rtest_invalid_names!LineCacheTests.test_invalid_namess> *   B C K9_2 3  JD dV45$$&!--d3$$UB/  y7 6$(, |!L \\L"7&)">((*,-tR+BIOOC(((-$$S)//: >>"M'  8 #65>>sAE7A#E E  E! cSn[SU5up#nURUS5 URUS5 URUS5 g)Nz1import linecache;assert len(linecache.cache) == 0z-crr#)rr6)rcmdlineretcodestdoutstderrs rtest_linecache_python_string+LineCacheTests.test_linecache_python_string;sHE"24"A !$ % %r#rKN)rrrrr:rrrrrrrrrrrrrr rKr#rrnrntsN$2H+")B> JM I H >16>&r#rnc:^\rSrSrU4SjrSrSrSrSrU=r $)LineCacheInvalidationTestsiBcP>[TU]5 [R"5 [R S-Ul[R S-Ul[R S-UlUR URUR4HnUR[RU5 [USSS9nURSUS35 SSS5 URU[R5 [R"U5 UR!U[R5 M ["R$"UR 5 [URSSS9nURS 5 SSS5 g!,(df  N=f!,(df  g=f) Nz.1z.2z.3rr(rsz print("I am z")zprint("was modified"))r rr4rrr deleted_file modified_fileunchanged_filerrr1rrrr>assertInr{remove)rfnamerrs rr LineCacheInvalidationTests.setUpCs;  %,,t3&--4'..5''(())+E OOI,,e 4eS73v |E7"564   UIOO 4   u % MM% 1+ $##$ $$$cG < LL0 1= <43= F+F F  F%c@[R"UR5 URUR[R5 UR UR [R5 UR UR[R5 gr=)r4rrrrrrrrGs r test_checkcache_for_deleted_file;LineCacheInvalidationTests.test_checkcache_for_deleted_fileYs`T../ **IOO< d(()//: d))9??;r#c@[R"UR5 URUR[R 5 UR UR[R 5 URUR[R 5 gr=)r4rrrrrrrrGs r!test_checkcache_for_modified_filersm&*"7   *,   GGOOH %    !ggooh'     ::080*A(A($h&7&7(*H,=,=<&(9(9<$2H4E4E$2!4h6G6G2((  L&X&&L&\'<!2!2'