Rh2zddlZddlZddlZddlZddlZddlmZddlmZddl m Z Gdde Z Gdd Z y) N)support) os_helper) print_warningc eZdZy)SkipTestEnvironmentN)__name__ __module__ __qualname__0/usr/lib/python3.12/test/libregrtest/save_env.pyrr sr rc eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9e:e;Dcgc]#}|jyd8rt{tv|%c}}}}Z>d9Z?d:Z@d;ZAd<ZBd=ZCd>ZDd?ZEy@cc}}}}w)Asaved_test_environmentaSave bits of the test environment and restore them at block exit. with saved_test_environment(test_name, verbose, quiet): #stuff Unless quiet is True, a warning is printed to stderr if any of the saved items was changed by the test. The support.environment_altered attribute is set to True if a change is detected. If verbose is more than 1, the before and after state of changed items is also printed. c<||_||_||_||_yN) test_nameverbosequietpgo)selfrrrrs r__init__zsaved_test_environment.__init__'s"  r )zsys.argvcwdz sys.stdinz sys.stdoutz sys.stderrz os.environzsys.pathzsys.path_hooks __import__zwarnings.filterszasyncore.socket_mapzlogging._handlerszlogging._handlerListz sys.gettracezsys.warnoptionsz!multiprocessing.process._danglingzthreading._danglingzsysconfig._CONFIG_VARSzsysconfig._INSTALL_SCHEMESfileslocalezwarnings.showwarningshutil_archive_formatsshutil_unpack_formatsz!asyncio.events._event_loop_policyzurllib.requests._url_tempfileszurllib.requests._openerc(tj|Sr)sysmodulesrnames r get_modulez!saved_test_environment.get_moduleFs{{4  r cL |j|S#t$rtwxYwr)r$KeyErrorrr"s rtry_get_modulez%saved_test_environment.try_get_moduleJs+ &??4( ( &% % &s#cN|jd}t|jSNzurllib.request)r'list_url_tempfilesrurllib_requests r"get_urllib_requests__url_tempfilesz9saved_test_environment.get_urllib_requests__url_tempfilesQs$,,-=>N1122r c<|D]}tj|yr)runlink)r tempfilesfilenames r&restore_urllib_requests__url_tempfilesz=saved_test_environment.restore_urllib_requests__url_tempfilesTs! 'H   X & 'r c<|jd}|jSr))r'_openerr,s rget_urllib_requests__openerz2saved_test_environment.get_urllib_requests__openerXs,,-=>%%%r c4|jd}||_yr))r$r5)ropenerr-s rrestore_urllib_requests__openerz6saved_test_environment.restore_urllib_requests__opener[s)9:!'r cL|jdtjSNasyncio)r'rmaybe_get_event_loop_policyrs r%get_asyncio_events__event_loop_policyzs r get_sys_argvz#saved_test_environment.get_sys_argvf##((|SXXsxx{22r cL|dt_|dtjddyNr)r rF)r saved_argvs rrestore_sys_argvz'saved_test_environment.restore_sys_argvha= m r c*tjSr)osgetcwdr>s rget_cwdzsaved_test_environment.get_cwdlsyy{r c.tj|yr)rPchdir)r saved_cwds r restore_cwdz"saved_test_environment.restore_cwdns r c"tjSrr stdoutr>s rget_sys_stdoutz%saved_test_environment.get_sys_stdoutq zzr c|t_yrrX)r saved_stdouts rrestore_sys_stdoutz)saved_test_environment.restore_sys_stdouts ! r c"tjSrr stderrr>s rget_sys_stderrz%saved_test_environment.get_sys_stderrvr[r c|t_yrra)r saved_stderrs rrestore_sys_stderrz)saved_test_environment.restore_sys_stderrxr_r c"tjSrr stdinr>s r get_sys_stdinz$saved_test_environment.get_sys_stdin{s yyr c|t_yrrh)r saved_stdins rrestore_sys_stdinz(saved_test_environment.restore_sys_stdin}s  r cttjtjttjfSr)rErPenvirondictr>s rget_os_environz%saved_test_environment.get_os_environs$"**~rzz4 +;;;r c|dt_tjjtjj|dyrJ)rProclearupdate)r saved_environs rrestore_os_environz)saved_test_environment.restore_os_environs5"1%   -*+r cxttjtjtjddfSr)rEr pathr>s r get_sys_pathz#saved_test_environment.get_sys_pathrHr cL|dt_|dtjddyrJ)r rx)r saved_paths rrestore_sys_pathz'saved_test_environment.restore_sys_pathrNr cxttjtjtjddfSr)rEr path_hooksr>s rget_sys_path_hooksz)saved_test_environment.get_sys_path_hookss%#..!3>>3>>!3DDDr cL|dt_|dtjddyrJ)r r~)r saved_hookss rrestore_sys_path_hooksz-saved_test_environment.restore_sys_path_hookss$Q'Nqr c*tjSr)r gettracer>s rget_sys_gettracez'saved_test_environment.get_sys_gettraces||~r c.tj|yr)r settrace)r trace_fxns rrestore_sys_gettracez+saved_test_environment.restore_sys_gettraces Yr c"tjSrbuiltinsrr>s rget___import__z%saved_test_environment.get___import__s"""r c|t_yrr)rimport_s rrestore___import__z)saved_test_environment.restore___import__s %r c|jd}t|j|j|jddfSNwarnings)r'rEfiltersrrs rget_warnings_filtersz+saved_test_environment.get_warnings_filterss;&&z2(""#X%5%5x7G7G7JJJr c^|jd}|d|_|d|jddy)NrrrK)r$r)r saved_filtersrs rrestore_warnings_filtersz/saved_test_environment.restore_warnings_filterss2??:.(++A.r ctjjd}|xr|jj xsiS)Ntest.support.asyncore)r r!get socket_mapcopy)rasyncores rget_asyncore_socket_mapz.saved_test_environment.get_asyncore_socket_maps4;;??#:;6H//446<"s rget_sys_warnoptionsz*saved_test_environment.get_sys_warnoptionss%#//"COOS__Q5GGGr cL|dt_|dtjddyrJ)r r)r saved_optionss rrestore_sys_warnoptionsz.saved_test_environment.restore_sys_warnoptionss!'**1-r c>tjjSr) threading _danglingrr>s rget_threading__danglingz.saved_test_environment.get_threading__danglings""''))r c~tjjtjj|yr)rrrsrt)rrs rrestore_threading__danglingz2saved_test_environment.restore_threading__danglings(!!#""5)r cx|jd}|j|jjSNzmultiprocessing.process)r'_cleanuprr)rmultiprocessing_processs r%get_multiprocessing_process__danglingzz3saved_test_environment.get_files..s:;]]=9277==#4C"=;sAA)sortedrPlistdirr>s r get_filesz saved_test_environment.get_filess"; " ;; ;r ctj}||vrs|dz|vrktjj |rtj |ytjj |rtj|yyyy)Nr)rTESTFNrPrxisfiler0rrmtree)r saved_valuers r restore_filesz$saved_test_environment.restore_files sj    [ b3h{%Bww~~b!  $r"  $#&C r LC_cg}|jD]*} |j|tj|df,|S#tt f$rY@wxYwr)_lcappendr setlocale TypeError ValueError)rpairingslcs r get_localez!saved_test_environment.get_locales](( B V%5%5b$%? @A  z*  s'>AAcD|D]\}}tj||yr)rr)rrrsettings rrestore_localez%saved_test_environment.restore_locales%  *KB   R ) *r c<|jd}|jSr)r' showwarningrs rget_warnings_showwarningz/saved_test_environment.get_warnings_showwarning s&&z2###r c4|jd}||_yr)r$r )rfxnrs rrestore_warnings_showwarningz3saved_test_environment.restore_warnings_showwarning#s??:."r c#K|jD]9}|jdd}d|z}d|z}|t||t||f;yw)N._get_restore_) resourcesreplacegetattr)rr# method_suffixget_name restore_names r resource_infoz$saved_test_environment.resource_info'sZNN MD LLc2M -H% 5Lh/|1LL L  MsA A cg|_|jD]-\}}} |}|jj||||f/|S#t$rY=wxYwr) saved_valuesrrr)rr#rrestoreoriginals r __enter__z saved_test_environment.__enter__.sq"&"4"4"6 E D#w 5    $ $dC(%C D  E '  sA  AAc  |j}d|_tj|D]b\}}}}|} | |k7sdt_|||jr5|j rBt |d|jd|d| ddy)NTz was modified by z Before: z After:  F)rr gc_collectenvironment_alteredrrrr) rexc_typeexc_valexc_tbrr#rrrcurrents r__exit__zsaved_test_environment.__exit__9s((   ,8 1 (D#weG(".2+!zz$((!& 1$..1AB%%-J/%%,IQ01 1r N)Fr r r __doc__rrr$r'r.r3r6r9r?rCrGrMrRrVrZr^rcrfrjrmrqrvryr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrdirrrrrrrr r rrr')rrrrs0000rrrs}  I!&3'&(5.3$"" <, 3$E+ #&K/ =2 G 1 E0 R W H. ** 8 8 . 0 34 ; %*-V $ $2mmE" 62  $C*$#M O $s5(C9 r)rrrPr rtestr test.supportrutilsr Exceptionrrr r rr.s5 "  ) rrr