a  ze(.@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddlmZzddlZddlZWneydZYn0GdddZdS)N)support) print_warningc@seZdZdZdZd}ddddZdZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Z dd?Z"d@dAZ#dBdCZ$dDdEZ%dFdGZ&dHdIZ'dJdKZ(dLdMZ)dNdOZ*dPdQZ+dRdSZ,dTdUZ-dVdWZ.dXdYZ/dZd[Z0d\d]Z1d^d_Z2d`daZ3dbdcZ4dddeZ5dfdgZ6dhdiZ7djdkZ8dldme9e:DZ;dndoZdtduZ?dvdwZ@dxdyZAdzd{ZBd|S)~saved_test_environmentaSave bits of the test environment and restore them at block exit. with saved_test_environment(testname, 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 attribute 'changed' is initially False, but 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. Fr)pgocCs||_||_||_||_dSN)testnameverbosequietr)selfrrr rr M/opt/bitninja-python-dojo/embedded/lib/python3.9/test/libregrtest/save_env.py__init__,szsaved_test_environment.__init__)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.showwarningZshutil_archive_formatsZshutil_unpack_formatsz!asyncio.events._event_loop_policyzurllib.requests._url_tempfileszurllib.requests._openercCs ttjjSr)listurllibrequestZ_url_tempfilesr r r r "get_urllib_requests__url_tempfilesKsz9saved_test_environment.get_urllib_requests__url_tempfilescCs|D]}t|qdSr)runlink)r Z tempfilesfilenamer r r &restore_urllib_requests__url_tempfilesMsz=saved_test_environment.restore_urllib_requests__url_tempfilescCstjjSrrr_openerrr r r get_urllib_requests__openerQsz2saved_test_environment.get_urllib_requests__openercCs |tj_dSrr)r openerr r r restore_urllib_requests__openerSsz6saved_test_environment.restore_urllib_requests__openercCstSr)rZmaybe_get_event_loop_policyrr r r %get_asyncio_events__event_loop_policyVszr?r savedr r r restore_shutil_archive_formatss  z5saved_test_environment.restore_shutil_archive_formatscCstjtjfSr)r[_UNPACK_FORMATSrXrr r r get_shutil_unpack_formatssz0saved_test_environment.get_shutil_unpack_formatscCs(|dt_tjtj|ddSr^)r[rbr>r?r_r r r restore_shutil_unpack_formatss  z4saved_test_environment.restore_shutil_unpack_formatscCsttjtjtjfSr)r"logging _handlersrXrr r r get_logging__handlerssz,saved_test_environment.get_logging__handlerscCsdSrr )r Zsaved_handlersr r r restore_logging__handlerssz0saved_test_environment.restore_logging__handlerscCsttjtjtjddfSr)r"re _handlerListrr r r get_logging__handlerListsz/saved_test_environment.get_logging__handlerListcCsdSrr )r Zsaved_handlerListr r r restore_logging__handlerListsz3saved_test_environment.restore_logging__handlerListcCsttjtjtjddfSr)r"r# warnoptionsrr r r get_sys_warnoptionssz*saved_test_environment.get_sys_warnoptionscCs |dt_|dtjdd<dSr&)r#rl)r Z saved_optionsr r r restore_sys_warnoptionss z.saved_test_environment.restore_sys_warnoptionscCs tjSr) threading _danglingrXrr r r get_threading__danglingsz.saved_test_environment.get_threading__danglingcCstjtj|dSr)rorpr>r?r_r r r restore_threading__danglings z2saved_test_environment.restore_threading__danglingcCstsdStjtjjSr)multiprocessingprocess_cleanuprprXrr r r %get_multiprocessing_process__danglings zr?r_r r r )restore_multiprocessing_process__danglings z@saved_test_environment.restore_multiprocessing_process__danglingcCs"tdttjtjttjfS)Nprefix) sysconfigZget_config_varr" _CONFIG_VARSr<rr r r get_sysconfig__CONFIG_VARSs  z1saved_test_environment.get_sysconfig__CONFIG_VARScCs(|dt_tjtj|ddSr&)ryrzr>r?r_r r r restore_sysconfig__CONFIG_VARSs  z5saved_test_environment.restore_sysconfig__CONFIG_VARScCsttjtjtjfSr)r"ry_INSTALL_SCHEMESrXrr r r get_sysconfig__INSTALL_SCHEMESs z5saved_test_environment.get_sysconfig__INSTALL_SCHEMEScCs(|dt_tjtj|ddSr&)ryr}r>r?r_r r r "restore_sysconfig__INSTALL_SCHEMESs  z9saved_test_environment.restore_sysconfig__INSTALL_SCHEMEScCstddtDS)Ncss&|]}|tj|rdndVqdS)/N)r*rAisdir).0fnr r r sz3saved_test_environment.get_files..)sortedr*listdirrr r r get_filessz saved_test_environment.get_filescCsLtj}||vrH|d|vrHtj|r2t|ntj|rHt|dS)Nr)rZTESTFNr*rAisfilerrrmtree)r Z saved_valuerr r r restore_filess    z$saved_test_environment.restore_filescCs g|]}|drtt|qS)LC_) startswithgetattrr)rlcr r r s z!saved_test_environment.c CsJg}|jD]:}z||t|dfWq ttfyBYq Yq 0q |Sr)_lcappendr setlocale TypeError ValueError)r Zpairingsrr r r get_locales  z!saved_test_environment.get_localecCs|D]\}}t||qdSr)rr)r r`rZsettingr r r restore_locales z%saved_test_environment.restore_localecCstjSrrP showwarningrr r r get_warnings_showwarning sz/saved_test_environment.get_warnings_showwarningcCs |t_dSrr)r fxnr r r restore_warnings_showwarning sz3saved_test_environment.restore_warnings_showwarningccsD|jD]8}|dd}d|}d|}|t||t||fVqdS)N._Zget_Zrestore_) resourcesreplacer)r nameZ method_suffixget_nameZ restore_namer r r resource_infos   z$saved_test_environment.resource_infocCstdd|D|_|S)Ncss|]\}}}||fVqdSrr )rrrVrestorer r r rz3saved_test_environment.__enter__..)r<r saved_valuesrr r r __enter__s z saved_test_environment.__enter__c Cs|j}|`t|jtjO_|D]n\}}}|}||} || kr*d|_|| |js*|js*t |d|j t d| d|dt j ddq*dS)NTz was modified by z Before: z After:  )fileflushF)rr gc_collectchangedZenvironment_alteredrpopr rrrprintr#r4) r exc_typeexc_valexc_tbrrrVrcurrentZoriginalr r r __exit__s   zsaved_test_environment.__exit__N)rF)C__name__ __module__ __qualname____doc__rr rrrrrrr!r%r)r,r.r1r2r5r6r9r:r=r@rBrCrErFrHrJrMrOrRrSrYrZr]rarcrdrgrhrjrkrmrnrqrrrvrwr{r|r~rrrdirrrrrrrrrrr r r r rs| r)r rLrrer*r[r#ryroZurllib.requestrrPtestrZtest.libregrtest.utilsr_multiprocessingZmultiprocessing.processrs ImportErrorrr r r r s"