ダFBhSrSSKrSSKrSSKJr SSKJr SSKJr SSKJr SSKJ r SSK J r J r SSK r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSS KJr SS KJr \R<R>(a\R@"S 5eSSK!r!\!RDSLr#Sq$S r%S r&"SS\RN5r("SS\)5r*"SS\RN5r+"SS\RN5r,"SS\RN5r-\.S:Xa\R^"5 gg)zTests for 'site'. Tests assume the initial paths in sys.path once the interpreter has begun executing have not been removed. N)support)assert_python_ok) os_helper) socket_helper)captured_stderr)TESTFNEnvironmentVarGuard)mock)copyzPython was invoked with -Sc[RSSq[R(a}[ RR [R5(dJ[ R"[R5 [R"[R5 ggg![a1n[R"S[R<SU<35eSnAff=f)Nz&unable to create user site directory (z): ) syspath OLD_SYS_PATHsiteENABLE_USER_SITEosisdir USER_SITEmakedirs addsitedirPermissionErrorunittestSkipTest)excs 5/opt/alt/python313/lib64/python3.13/test/test_site.py setUpModuler-s88A;L RWW]]4>>%B%B = KK ' OODNN + &C  =##'+~~s%<= = =sAB'' C"1,CC"c2[[RSS&gN)rr rrtearDownModuler!<sCHHQKr cp\rSrSrSrSrSrSrSrSr Sr S \ 4S jr S r S rS rSrSrSr\R("\"\S5S5S5r\R("\R2S:HS5\R6"5S55rSr\R("\S5S5r\R("\ RBS5\R6"5S55r"\R("\S5S5r#\R("\S5S5r$Sr%\R("\S5S5r&S r'S!r(S"r)g#)$HelperFunctionsTests@z Tests for helper functions. c[RSSUl[RUl[R Ul[RUl [RUl [[R5Ulg)zSave a copy of sys.pathN)r rsys_pathr USER_BASEold_baserold_sitePREFIXES old_prefixes sysconfig _CONFIG_VARS original_varsr old_varsselfs rsetUpHelperFunctionsTests.setUpDsS     MM&33Y334 r cUR[RSS&UR[lUR [lUR[l UR[l [RbH[RR5 [RRUR5 ggzRestore sys.pathN)r&r rr(rr'r)rr+r*r.r,r-clearupdater/r0s rtearDownHelperFunctionsTests.tearDownMsmm )) !%!3!3   ! ! -  " " ( ( *  " " ) )$-- 8 .r cSn[RR"U6n[R"U6up4UR [RR U5U5 U[RRU5:XaUR X45 gUR [RRU5U5 g)N) BeginningEnd)rrjoinrmakepath assertEqualabspathnormcase)r1 path_parts original_dirabs_dirnorm_dirs r test_makepath"HelperFunctionsTests.test_makepathYs* ww||Z0  MM:6 6@ 277++L9 9   W /   RWW--g6 Ar cF[R"5n[RVs/sHKnU(dM [RR U5(dM2[R "U5SPMM snHnURX1U<SU<35 M gs snf)Nz> from sys.path not found in set returned by _init_pathinfo(): )r_init_pathinfor rrexistsr>assertIn)r1dir_setrentrys rtest_init_pathinfo'HelperFunctionsTests.test_init_pathinfofs{%%'9<:-$&GGNN4$8-dmmD)!,:E MM%7Contain common code for testing results of reading a .pth filez%s not in sys.modulesrN) rLimportedr modulesrr> good_dir_pathr assertFalserrK bad_dir_pathr1pth_files rpth_file_tests#HelperFunctionsTests.pth_file_testsnsr h''-0A0AA C dmmH$:$:;A>I (=(=>?r c,[5nURSS9 UR5 [R"UR UR [55 URU5 UR5 g!UR5 f=fNTprep) PthFilecleanupcreater addpackagebase_dirfilenamesetrYrWs rtest_addpackage$HelperFunctionsTests.test_addpackageusp 9d#  OO  OOH--x/@/@#% H    )    H   s ABB.c*^[RRU5nUS-n[RRX$5m[ TSSS9nUR U4Sj5 UR U5 SSS5 X$4$!,(df  X$4$=f)N.pthwutf-8encodingc0>[R"T5$r)rremove)pth_fnsr/HelperFunctionsTests.make_pth..sBIIf$5r )rrr@r=open addCleanupwrite)r1contentspth_dirpth_name pth_basenamerXrqs @rmake_pthHelperFunctionsTests.make_pths|''//'*&( g4 &# 0H OO5 6 NN8 $1$$1 0$$s 'B Bc RURS5up[5n[R"X[ 55 SSS5 UR WR 5S5 UR UR 5[R"[RRX555 UR UR 5S5 UR UR 5S5 UR UR 5S5 g!,(df  N=f)Nzimport bad-syntax zline 1 Tracebackzimport bad-syntax SyntaxError r{rrrbre assertRegexgetvaluereescaperrr=r1rxrqerr_outs r!test_addpackage_import_bad_syntax6HelperFunctionsTests.test_addpackage_import_bad_syntaxs--(=>  ' OOGSU 3 ))+X6 ))+ IIbggll73 4 6 ))+[9 ))+-AB ))+]; s D D&c URS5up[5n[R"X[ 55 SSS5 UR WR 5S5 UR UR 5[R"[RRX555 UR UR 5S5 UR UR 5S5 g!,(df  N=f)Nzrandompath import nosuchmodule zline 2r~ModuleNotFoundErrorrrs rtest_addpackage_import_bad_exec4HelperFunctionsTests.test_addpackage_import_bad_execs--(KL  ' OOGSU 3 ))+X6 ))+ IIbggll73 4 6 ))+[9 ))+-BC s C88 DcURS5up[R"X[55nUR U[55 g)Nz )r{rrbrer?)r1rxrq known_pathss rtest_addpackage_empty_lines0HelperFunctionsTests.test_addpackage_empty_liness6-- 5oogsu=  ce,r c URS5up[5nUR[R"X[ 555 SSS5 SUlURWR5S5 [RH,n[U[5(dMURSU5 M. g!,(df  Nv=f)Nzabcdef zabcdef)r{rrUrrbremaxDiffr?rr r isinstancestr assertNotIn)r1rxrqrrs r#test_addpackage_import_bad_pth_file8HelperFunctionsTests.test_addpackage_import_bad_pth_files--7  '   T__WceD E  ))+R0HHD$$$  t4  s /B== C c[5nURSS9 UR5 [R"UR [ 55 URU5 UR5 g!UR5 f=fr\)r_r`rarrrcrerYrWs rtest_addsitedir$HelperFunctionsTests.test_addsitedirsh9d#  OO  OOH--su 5    )    H   s A A66Bc[S5nURSS9 UR5 [R"UR [ 55 UR[R"UR5S[R5 URUR [R5 UR5 g!UR5 f=f)Nz.dotfileTr]r) r_r`rarrrcrerr>rTr rrLrWs rtest_addsitedir_dotfile,HelperFunctionsTests.test_addsitedir_dotfiles:&d#  OO  OOH--su 5   T]]8+A+AB1Esxx P MM(++SXX 6    H   s B$CC#chflagsztest needs os.chflags()c[5nURSS9 UR5 [R"UR 5n[R "UR UR[R-5 [R"UR[55 UR[R"UR5S[ R"5 UR%UR[ R"5 UR5 g!UR5 f=f)NTr]r)r_r`rarstat file_pathrst_flags UF_HIDDENrrrcrerr>rTr rrL)r1rXsts rtest_addsitedir_hidden_flags1HelperFunctionsTests.test_addsitedir_hidden_flagss9d#  OO ++,B JJx))2;;+G H OOH--su 5   T]]8+A+AB1Esxx P MM(++SXX 6    H   s DD,,D>win32ztest needs Windowsc[5nURSS9 UR5 [R"SSUR /5 [ R"UR[55 UR[ R"UR5S[R5 URUR[R5 UR5 g!UR5 f=f)NTr]attribz+Hr)r_r`ra subprocess check_callrrrrcrerr>rTr rrLrWs r%test_addsitedir_hidden_file_attribute:HelperFunctionsTests.test_addsitedir_hidden_file_attributes9d#  OO   ! !8T83E3E"F G OOH--su 5   T]]8+A+AB1Esxx P MM(++SXX 6    H   s CC33DctUR[R"5[R"55 gr)r?r _getuserbaser,r0s rtest__getuserbase&HelperFunctionsTests.test__getuserbases$ **,i.D.D.FGr zneed user sitecX[RS:Xa[R(aSnO[RS-nUR [R R[R"[R"555[R"SU55 g)Ndarwinosx_framework_user_userpurelib) r platform _frameworkrnamer?rnormpathr _get_pathrr,get_path)r1schemes r test_get_path"HelperFunctionsTests.test_get_pathsi <<8 #)FWWw&F ))$..9J9J9L*MN"++Iv> @r z.es4r rAPPDATA~z os.path.isdirF) return_valuerrT)rrr'r r patchunsetrrrrrrobjectr swap_attrreaddusersitepackagesassert_called_once_withassert_not_calledrU)r1rrr mock_isdirmock_addsitedirrs rtest_no_home_directory+HelperFunctionsTests.test_no_home_directory\sY  "g ZZ,.? @ MM*I 6((*I OOI00rvv>% '002I OOI00;Y GA#ZZe < ZZ  t\ 2o   t%7 >%K  $ $[ 1  . .y 9  - - /   [ )?3= <A @# "? >3 2= 2K?LGK7)CDJJ|R[[]; G$  !4!4!6<<ED@;;EDs$+C%AB?*C? C C C )rr(r+r)r/r.r&N)*__name__ __module__ __qualname____firstlineno____doc__r2r8rFrOrYrfrr{rrrrrrr skipUnlesshasattrrrr rrrequires_subprocessrr HAS_USER_SITErrrrrrrrrr__static_attributes__rr rr#r#@s5 9 BH@ *-v% < D- 5  Y/1JK L 02FG   " #H H(89@:@..1>?   "%?#?%?N(890:0"(89=:=72(89*:*>  =r r#c:\rSrSrSr\SSS4SjrSrS SjrS r g ) r_iz/Helper class for handling testing of .pth filestime __testdir____badcUS-Ul[RRS5Ul[RR URUR5UlX lX0lX@l [RR URUR5Ul [RR URUR5Ul g)zInitialize instance variablesrjrN) rdrrr@rcr=rrR good_dirname bad_dirnamerTrV)r1 filename_baserRr r!s r__init__PthFile.__init__s&. + dmmT]]C (&WW\\$--9J9JKGGLL8H8HIr cb[URS5n[SUS9 [SUS9 [SUR-US9 [URUS9 [UR US9 UR 5 [R"UR5 g!UR 5 f=f)a?Create a .pth file with a comment, blank lines, an ``import ``, a line with self.good_dirname, and a line with self.bad_dirname. Creation of the directory for self.good_dir_path (based off of self.good_dirname) is also performed. Make sure to call self.cleanup() to undo anything done by this method. rkz#import @bad module namerrz import %sN) rtrprintrRr r!closermkdirrT)r1FILEs rraPthFile.createsDNNC(  ,4 8 $T " + -D 9 $##$ / $"" . JJL ##$ JJLs ABB.c[RRUR5(a [R"UR5 U(a[[ R RUR5Ul UR(a[ R UR O8UR(a'UR[ R UR'[RRUR5(a [R"UR5 [RRUR5(a![R"UR5 gg)zMake sure that the .pth file is deleted, self.imported is not in sys.modules, and that both self.good_dirname and self.bad_dirname are not existing directories.N) rrrKrrpr rSgetrRimported_modulerTrmdirrV)r1r^s rr`PthFile.cleanups 77>>$.. ) ) IIdnn % #&;;??4==#AD ##KK .##-1-A-A DMM* 77>>$,, - - HHT'' ( 77>>$++ , , HHT&& ' -r ) rVr!rcrrdrTr rRr.N)F) rrrrrrr#rar`rrr rr_r_s9%+f!.G J%,(r r_ch\rSrSrSrSrSrSrSr\ R"S5S5r S r S r S rS r\R""5S 5r\ R&"\"\R,S5S5\R R1S5\R R2S555rSrg)ImportSideEffectTestsiz(Test side-effects from importing 'site'.c4[RSSUlg)zMake a copy of sys.pathN)r rr&r0s rr2ImportSideEffectTests.setUps  r c>UR[RSS&gr5)r&r rr0s rr8ImportSideEffectTests.tearDownsmm r cS[RSl[R"5 UR [RSR5 g)z{Test for __cached__ is None. Regarding to PEP 3147, __cached__ can be None. See also: https://bugs.python.org/issue30167 Ntest)r rS __cached__r abs_paths assertIsNoner0s rtest_abs_paths_cached_None0ImportSideEffectTests.test_abs_paths_cached_Nones<*. F&  #++f-889r c[R"5 [5n[RH%nUR X!5 UR U5 M' gr)rremoveduppathsrer rradd)r1 seen_pathsrs rtest_no_duplicate_paths-ImportSideEffectTests.test_no_duplicate_pathss? U HHD   T . NN4 r ztest not implementedcgrrr0s rtest_add_build_dir(ImportSideEffectTests.test_add_build_dirs r cUR[[S55 UR[[S55 g)Nquitexitrrbuiltinsr0s rtest_setting_quit'ImportSideEffectTests.test_setting_quits( &12 &12r cUR[[S55 UR[[S55 UR[[S55 g)N copyrightcreditslicenserJr0s rtest_setting_copyright,ImportSideEffectTests.test_setting_copyrights; +67 )45 )45r cBUR[[S55 g)NhelprJr0s rtest_setting_help'ImportSideEffectTests.test_setting_helps &12r czS[R;aSSKnURS5 gg![a gf=f)N sitecustomizerz(sitecustomize not imported automatically)r rSrYfail ImportError)r1rYs rtest_sitecustomize_executed1ImportSideEffectTests.test_sitecustomize_executeds? #++ - F$ DE .  s - ::cS/n[R(aURS5 [R"5nUR [ RU5 [5nX#S'UGHan[ R"U5 [R"U5 [RRX$S35nSU3n[US5nURSUS35 SSS5 [R "["R$S S /5nUR'XhR)S 55 [R "["R$S S S /5nUR+XhR)S 55 SU:XdGM[R "["R$S S S /5nUR+XhR)S 55 GMd SSS5 g!,(df  N=f!,(df  g=f)NrY usercustomize PYTHONPATHz.py EXECUTED_rkzprint("z")rz""rlz-Sr)rrappendtempfilemkdtemprurrmtreer rr)rr=rtrvr check_outputr rrLdecoder) r1 mod_namestemp_dirr module_namecustomize_path eyecatcherfoutputs r%test_customization_modules_on_startup;ImportSideEffectTests.test_customization_modules_on_startups      _ -##%  (((3 "g$,L !(   *"!#h-s8K!L( 6 .#.!GGgj\45/$00#..$1MN j--*@A$00#..$d1ST  ]]7-CD#k1'44cnndDRV5WXF$$Zw1GH) )# "/.# "s-)A*G0G)BG0 A G0 G- )G00 G> HTTPSHandlerz$need SSL support to download licensenetworkc^[RR5Sn[RR USS9nUR [RR5 [R"U5 [RRU5nUR5nSSS5 SSS5 URWSSU-S9 g!,(df  N+=f!,(df  N4=f![RRanURnSnANfSnAff=f)NrIHEAD)methodz Can't find )msg)rQ_Printer__dataspliturllibrequestRequestru urlcleanuprtransient_interneturlopengetcodeerror HTTPErrorcoder?)r1urlreqdatares rtest_license_exists_at_url0ImportSideEffectTests.test_license_exists_at_url.s$$**,Q/nn$$S$8 112 11#6^^++C0D<<>D17 s (;< 1076||%% 66D sN*C8 C' C1C'9C8 C$ C'' C51C85C88D, D''D,)r&N)rrrrrr2r8r<rBrskiprErLrRrVr\rrrorrrzr{r8requires_resourcesystem_must_validate_certrrrr rr2r2s2$$ :!]])* + 3 6 3F   ""I#"IJ@?A \\##I. \\++ =,/A =r r2c\rSrSr\R "5S5r\R "5S5r\R "5S5r\R "5S5r Sr g)StartupImportTestsiBc `[R"[RSSSSS/[RSSS9nUR 5S nUR URS [U55 [R"U5nUHtn[R"[RR[R"U5S 55nU(dMTUR!S [#U5S U35 Mv [R"[RSSSS SS/[R[RSSS9nUR 5up&UR URS X&45 [R"U5nUR%SU5 1SknUR'UR)U5U5 UR+SXv5 UR+SXv5 1SkR-[R.5n UR'UR)U 5U5 g)N-Xutf8rrz!import sys; print(repr(sys.path))rlsurrogateescape)stdoutrnerrorsrz*.pthzfound z .pth files in: z-vz#import sys; print(set(sys.modules)))rr rnrr>r_sre re._parser re._compiler re._constantslocalecopyreg> heapqtypeskeywordreprlibweakrefoperator functools itertools collections _collections)rPopenr rPIPE communicater? returncodereprast literal_evalglobrrr=rskipTestrrLrU intersectionr differencebuiltin_module_names) r1popenrisolated_pathsr pth_filesr rSre_modscollection_modss rtest_startup_imports'StartupImportTests.test_startup_importsDs  #..$"&(K"M(2*1(9 ; ""$Q' ))1d6l;))&1 #D "'',,t{{4/@'"JKIy s9~&66FtfMN#  #..$d"&(M"O(2(2*1(9 ; **, ))1v.>?""6* fg&P --g6? 73 G4'Js'?'?@  --o>Gr c[R"[RSS/5R 5nUR US5 g)Nr9import sys; sys.exit(hasattr(sys, "__interactivehook__"))z''__interactivehook__' not added by siterrr rwaitrr1rs rtest_startup_interactivehook/StartupImportTests.test_startup_interactivehookws=   cnnd GI JJN$&  DEr c[R"[RSSS/5R 5nUR US5 g)Nrrrz,'__interactivehook__' added in isolated mode)rrr rrrUrs r%test_startup_interactivehook_isolated8StartupImportTests.test_startup_interactivehook_isolated}sC   cnndD GI JJN$&  JKr c[R"[RSSS/5R 5nUR US5 g)NrrzYimport site, sys; site.enablerlcompleter(); sys.exit(hasattr(sys, "__interactivehook__"))z6'__interactivehook__' not added by enablerlcompleter()rrs r.test_startup_interactivehook_isolated_explicitAStartupImportTests.test_startup_interactivehook_isolated_explicitsC   cnndD gi jjnjnjp  STr rN) rrrrrrrrrrrrr rrrBs}   "0H#0Hd   "F#F    "L#L    "U#Ur rc\rSrSr\R S:XaSSjrOSSjrSrS\S\ 4Sjr \ R"5S 5r \ R"5S 5r\ R"5S 5r\ R"5S 5rS rg) _pthFileTestsirc SSKn[R"5nUR[R U5 [ RRU[ RR[R5S5nUR[R5n[ RRU[ RRU5S5n[R"[RU5 [R"Xg5 [ R "[ RR[ RRU5SS55HXn[R"U[ RRU[ RRU5S55 MZ U(a&[ RR#U5SS-n O%[ RR#U5SS-n [%U SSS9n UH n ['XS9 M SSS5 U$!,(df  U$=f) NrrIzvcruntime*.dll._pthrkrrmr&)_winapircrdrurrerrr=ryr rGetModuleFileName dllhandleshutilr rsplitextrtr') r1linesexe_pthrriexe_file dll_src_filedll_filefn _pth_filermlines r_create_underpth_exe"_pthFileTests._create_underpth_exes '')H OOI,,h 7ww||HbggmmCNN.KA.NOH"44S]]CLww||HbggmmL.I!.LMH KK 1 KK /ii RWW]]<-H-KM] ^_ B Xrww}}R7H7K LM`GG,,X6q9GC GG,,X6q9GC iv6!!D$'"7O76Os /I  Ic U(d[R"S5e[R"5nUR [ R U5 [RRU[RR[R5S5n[R"[RU5 US-n[US5nUH n[XvS9 M SSS5 U$!,(df  U$=f)Nz1library ._pth file not supported on this platformrIrrkr&)rrrcrdrurrerrr=ryr rsymlinkrtr')r1rrrirrrmrs rrrs''([\\'')H OOI,,h 7ww||HbggmmCNN.KA.NOH JJs~~x 0 7*Ii%!D$'"&O&%Os C44 Dc/nUHbnU(a USS:XaM[RR[RRX55nUR U5 Md U$)Nr#)rrr@r=rb)r1 sys_prefixrr&rabs_paths r"_calc_sys_path_for_underpth_nosite0_pthFileTests._calc_sys_path_for_underpth_nositesSD47c>wwrww||J'EFH OOH %  r libpath import_sitec6^S/n[TRS55n[SSU-5nUS::aURSUSS35 UR U4S j[ U555 UR S S /5 U(aUR S 5 U$) Nfake-path-namerlrvi0urz Python stdlib path is too long (,z bytes)c3(># UHnTv M g7frr).0_rs r /_pthFileTests._get_pth_lines..s=*>? !  MM23I!2LGT V=% *<=="k*+    ] +r crSS/[RQSPSPnURU5nUR[RR U5U5n[ R"USSSS/S S S 9nUR5RS 5nURUS 5 URUUS5 g)Nz#.z# ..rhz..rrrCimport sys; print("\n".join(sys.path) if sys.flags.no_site else "")rlr)rnrrsys.flags.no_site was Falsesys.path is incorrect) r rrrrdirnamerrfrstripryrr?)r1rrr&rnactual_sys_paths rtest_underpth_basic!_pthFileTests.test_underpth_basics68CHH8c848 ,,Y7:: GGOOH % (((D&$ R* $57!--///5 )FG    # r c[RRn[RR [ R5nURUSS9nURU5nUR[RR U5U5n[RR5nSUS'SRU[R[R"S55US'[ R""USS/US S S 9nUR%5R'S 5nUR)US 5 UR+UUS5 g)NFrfrom-envr`z{}{}{}PATHrrrlr)rrnrrrr)r8r STDLIB_DIRrrrr rrrrrr formatpathsepgetenvrrfrryrr?) r1r exe_prefixrrr&rrnrs rtest_underpth_nosite_file'_pthFileTests.test_underpth_nosite_files,,))WW__S^^4 ''U'C ,,Y7:: GGOOH % jjoo&Looj"**bii>OPF (((D R* W->@!--///5 )FG    # r c [RRn[RR [ R5nURURUSS95n[RR U5n[RR5nSUS'SRU[R"S55US'[R"USS[RR!US 5<S U<S [RR!US5<S 3/US 9nUR#US 5 g)NTrrr`{};{}rr/import sys; sys.exit(not sys.flags.no_site and r in sys.path and L not in sys.path and all("\r" not in p and "\n" not in p for p in sys.path))rrr8rrrrrr rrrrr rrrrr=rr1rrrrrrs rtest_underpth_file _pthFileTests.test_underpth_files,,))WW__S^^4 ,,   T  :<WW__X. jjoo&LnnZ61BCF __h Z)9: Z4   34r c [RRn[RR [ R5nURURUSS9SS9n[RR U5n[RR5nSUS'SRU[R"S55US'[R"US S [RR!US 5<S U<S [RR!US5<S 3/US9nUR#US5 g)NTrF)rrr`r rrr rr r rrr rs rtest_underpth_dll_file$_pthFileTests.test_underpth_dll_files,,))WW__S^^4 ,,   T  :E-KWW__X. jjoo&LnnZ61BCF __h Z)9: Z4   34r rN)T)rrrrr rrrrboolrrrrrrrrrr rrrs ||w ( c4    " # $   " # .   "5#5&   "5#5r r__main__)0rr test.supportr8rtest.support.script_helperrrrrtest.support.os_helperrr rrKrr rrrrrr r,rc urllib.errorrzurllib.requestr r flagsno_siterrrrrrr!TestCaser#rr_r2rrrmainrr rrs 7"&(>    99   8 99 t+   =O=8,,O=d 5(f5(nv=H--v=rGU**GURN5H%%N5b z MMOr