a 5êdg¨Lã@sòddlmZmZmZmZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl mZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZzddlZdZWneydZYn0Gdd„deƒZGdd„deƒZGdd„deƒZGdd„deeeƒZ Gdd„de!ƒZ"Gdd„dee"ƒZ#Gdd„dee"ƒZ$Gdd„deƒZ%Gd d!„d!eƒZ&Gd"d#„d#eƒZ'Gd$d%„d%eƒZ(erŒGd&d'„d'eƒZ)Gd(d)„d)eƒZ*Gd*d+„d+eƒZ+Gd,d-„d-e#ƒZ,Gd.d/„d/e$ƒZ-Gd0d1„d1eƒZ.Gd2d3„d3eƒZ/Gd4d5„d5eƒZ0Gd6d7„d7eƒZ1Gd8d9„d9eƒZ2Gd:d;„d;eƒZ3ej4Gd£Z7hd?£Z8d@dA„Z9dBdC„Z:dDdE„Z;dFdG„ZdLdM„Z?e@dNkrîe?ƒdS)Oé)ÚIMPORT_MAPPINGÚREVERSE_IMPORT_MAPPINGÚ NAME_MAPPINGÚREVERSE_NAME_MAPPINGN)Úsupport)ÚAbstractHookTests)ÚAbstractUnpickleTests)ÚAbstractPickleTests)ÚAbstractPickleModuleTests)ÚAbstractPersistentPicklerTests)Ú&AbstractIdentityPersistentPicklerTests)Ú#AbstractPicklerUnpicklerObjectTests)ÚAbstractDispatchTableTests)ÚAbstractCustomPicklerClass)ÚBigmemPickleTestsTFc@s@eZdZeejƒZeejƒZeej ƒZ eej ƒZ ej ZejZdS)Ú PyPickleTestsN)Ú__name__Ú __module__Ú __qualname__Ú staticmethodÚpickleÚ_dumpÚdumpÚ_dumpsÚdumpsÚ_loadÚloadÚ_loadsÚloadsÚ_PicklerÚPicklerÚ _UnpicklerÚ Unpickler©r#r#ú,/usr/local/lib/python3.9/test/test_pickle.pyr s     rc@s6eZdZejZefZeje e e e j eefZdd„ZdS)ÚPyUnpicklerTestscKs$t |¡}|j|fi|¤Ž}| ¡S©N©ÚioÚBytesIOÚ unpicklerr©ÚselfÚbufÚkwdsÚfÚur#r#r$r1s zPyUnpicklerTests.loadsN)rrrrr!r*Ú IndexErrorÚbad_stack_errorsÚUnpicklingErrorÚEOFErrorÚAttributeErrorÚ ValueErrorÚstructÚerrorÚ ImportErrorÚtruncated_errorsrr#r#r#r$r%)sþr%c@s*eZdZejZejZddd„Zdd„Z dS)ÚPyPicklerTestsNcKs<t ¡}|j||fi|¤Ž}| |¡| d¡t| ¡ƒS©Nr)r(r)ÚpicklerrÚseekÚbytesÚread)r,ÚargÚprotoÚkwargsr/Úpr#r#r$r<s   zPyPicklerTests.dumpscKs$t |¡}|j|fi|¤Ž}| ¡Sr&r'r+r#r#r$rCs zPyPicklerTests.loads)N) rrrrrr=r!r*rrr#r#r#r$r;7s r;c@sBeZdZejefZejeee e j ee fZ ddd„Zdd„ZdZdS)ÚInMemoryPickleTestsNcKstj||fi|¤ŽSr&)rr)r,rAÚprotocolrCr#r#r$rQszInMemoryPickleTests.dumpscKstj|fi|¤ŽSr&)rr)r,r-r.r#r#r$rTszInMemoryPickleTests.loads)N)rrrrr3r1r2r4r5r6r7r8r9r:rrZ+test_framed_write_sizes_with_delayed_writerr#r#r#r$rEIs þ rEc@seZdZddd„Zdd„ZdS)ÚPersistentPicklerUnpicklerMixinNcs:G‡fdd„dˆjƒ}t ¡}|||ƒ}| |¡| ¡S)NcseZdZ‡fdd„ZdS)z:PersistentPicklerUnpicklerMixin.dumps..PersPicklercs ˆ |¡Sr&)Ú persistent_id©ÚsubselfÚobj©r,r#r$rH^szHPersistentPicklerUnpicklerMixin.dumps..PersPickler.persistent_idN©rrrrHr#rLr#r$Ú PersPickler]srN)r=r(r)rÚgetvalue)r,rArBrNr/rDr#rLr$r\s   z%PersistentPicklerUnpicklerMixin.dumpsc s8G‡fdd„dˆjƒ}t |¡}||fi|¤Ž}| ¡S)NcseZdZ‡fdd„ZdS)z.PersUnpicklercs ˆ |¡Sr&)Úpersistent_loadrIrLr#r$rPgszLPersistentPicklerUnpicklerMixin.loads..PersUnpickler.persistent_loadN©rrrrPr#rLr#r$Ú PersUnpicklerfsrR)r*r(r)r)r,r-r.rRr/r0r#rLr$res z%PersistentPicklerUnpicklerMixin.loads)N)rrrrrr#r#r#r$rGZs rGc@seZdZejZejZdS)ÚPyPersPicklerTestsN)rrrrrr=r!r*r#r#r#r$rSnsrSc@s4eZdZejZejZej dd„ƒZ ej dd„ƒZ dS)ÚPyIdPersPicklerTestscs^‡fdd„}Gdd„dˆjƒ}||ƒGdd„dˆjƒ}||ƒGdd„dˆjƒ}||ƒdS)Ncs€ttjdƒD]6}t ¡}|||ƒ}| d¡ˆ ˆ | ¡¡d¡q|t ¡ƒ}ˆ |  d¡d¡t   |¡}~ˆ  |ƒ¡dS©NéÚabcÚdef) ÚrangerÚHIGHEST_PROTOCOLr(r)rÚ assertEqualrrOrHÚweakrefÚrefÚ assertIsNone)r rBr/r=ÚrrLr#r$Úcheck}s    z@PyIdPersPicklerTests.test_pickler_reference_cycle..checkc@seZdZdd„ZdS)úFPyIdPersPicklerTests.test_pickler_reference_cycle..PersPicklercSs|Sr&r#rIr#r#r$rHŠsúTPyIdPersPicklerTests.test_pickler_reference_cycle..PersPickler.persistent_idNrMr#r#r#r$rN‰srNc@seZdZedd„ƒZdS)racSs|Sr&r#)ÚclsrKr#r#r$rHsrbN)rrrÚ classmethodrHr#r#r#r$rNŽsc@seZdZedd„ƒZdS)racSs|Sr&r#)rKr#r#r$rH•srbN)rrrrrHr#r#r#r$rN”s)r=)r,r`rNr#rLr$Útest_pickler_reference_cycle{s z1PyIdPersPicklerTests.test_pickler_reference_cyclecs^‡fdd„}Gdd„dˆjƒ}||ƒGdd„dˆjƒ}||ƒGdd„dˆjƒ}||ƒdS)NcstttjdƒD]*}|t ˆ d|¡¡ƒ}ˆ | ¡d¡q|t ¡ƒ}ˆ | d¡d¡t   |¡}~ˆ  |ƒ¡dSrU) rYrrZr(r)rr[rrPr\r]r^)r"rBr*r_rLr#r$r`œs  zBPyIdPersPicklerTests.test_unpickler_reference_cycle..checkc@seZdZdd„ZdS)úJPyIdPersPicklerTests.test_unpickler_reference_cycle..PersUnpicklercSs|Sr&r#)rJÚpidr#r#r$rP§súZPyIdPersPicklerTests.test_unpickler_reference_cycle..PersUnpickler.persistent_loadNrQr#r#r#r$rR¦srRc@seZdZedd„ƒZdS)rfcSs|Sr&r#)rcrgr#r#r$rP¬srhN)rrrrdrPr#r#r#r$rR«sc@seZdZedd„ƒZdS)rfcSs|Sr&r#)rgr#r#r$rP²srhN)rrrrrPr#r#r#r$rR±s)r*)r,r`rRr#rLr$Útest_unpickler_reference_cyclešs z3PyIdPersPicklerTests.test_unpickler_reference_cycleN) rrrrrr=r!r*rÚ cpython_onlyrerir#r#r#r$rTus  rTc@seZdZejZejZdS)ÚPyPicklerUnpicklerObjectTestsN)rrrrrÚ pickler_classr!Úunpickler_classr#r#r#r$rk¸srkc@seZdZejZdd„ZdS)ÚPyDispatchTableTestscCs tj ¡Sr&©rÚdispatch_tableÚcopyrLr#r#r$Úget_dispatch_tableÂsz'PyDispatchTableTests.get_dispatch_tableN©rrrrrrlrrr#r#r#r$rn¾srnc@seZdZejZdd„ZdS)ÚPyChainDispatchTableTestscCst itj¡Sr&©Ú collectionsÚChainMaprrprLr#r#r$rrÊsz,PyChainDispatchTableTests.get_dispatch_tableNrsr#r#r#r$rtÆsrtc@s$eZdZGdd„dejeƒZeZdS)ÚPyPicklerHookTestsc@s eZdZdS)z'PyPicklerHookTests.CustomPyPicklerClassN©rrrr#r#r#r$ÚCustomPyPicklerClassÏsrzN)rrrrrrrzrlr#r#r#r$rxÎsÿrxc@s,eZdZddlmZmZmZmZmZm Z dS)Ú CPickleTestsr)rrrrr r"N) rrrÚ_picklerrrrr r"r#r#r#r$r{Ösr{c@s"eZdZejZejfZejfZ dS)ÚCUnpicklerTestsN) rrrr|r"r*rr3r2r:r#r#r#r$r}Ùsr}c@seZdZejZejZdS)Ú CPicklerTestsN©rrrr|r r=r"r*r#r#r#r$r~Þsr~c@seZdZejZejZdS)ÚCPersPicklerTestsNrr#r#r#r$r€âsr€c@seZdZejZejZdS)ÚCIdPersPicklerTestsNrr#r#r#r$ræsrc@seZdZejZejZdS)ÚCDumpPickle_LoadPickleN) rrrr|r r=rr!r*r#r#r#r$r‚êsr‚c@seZdZejZejZdS)ÚDumpPickle_CLoadPickleN) rrrrrr=r|r"r*r#r#r#r$rƒîsrƒc@s eZdZejZejZdd„ZdS)ÚCPicklerUnpicklerObjectTestscCs€| t ¡¡}| t¡t|_Wdƒn1s40Y| t¡ddi|_Wdƒn1sh0Yddi|_dS)NéÿÿÿÿrV)rmr(r)Z assertRaisesÚ TypeErrorÚobjectÚmemor6)r,r*r#r#r$Útest_issue18339ös  $ (z,CPicklerUnpicklerObjectTests.test_issue18339N) rrrr|r rlr"rmr‰r#r#r#r$r„òsr„c@seZdZejZdd„ZdS)ÚCDispatchTableTestscCs tj ¡Sr&rorLr#r#r$rrsz&CDispatchTableTests.get_dispatch_tableN©rrrrr rlrrr#r#r#r$rŠÿsrŠc@seZdZejZdd„ZdS)ÚCChainDispatchTableTestscCst itj¡Sr&rurLr#r#r$rrsz+CChainDispatchTableTests.get_dispatch_tableNr‹r#r#r#r$rŒsrŒc@s$eZdZGdd„dejeƒZeZdS)ÚCPicklerHookTestsc@s eZdZdS)z%CPicklerHookTests.CustomCPicklerClassNryr#r#r#r$ÚCustomCPicklerClass srŽN)rrrr|r rrŽrlr#r#r#r$r src@s"eZdZejZdd„Zdd„ZdS)Ú SizeofTestscCsžt d¡}t t ¡¡}| t |¡|¡t   d¡}t   d¡}|j }||||d|t   d¡ƒtdƒD]}| t|ƒ¡ql||||d|dƒdS) NZ 7P2n3i2n3i2PZ3nP0nZPn0Pésxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxéé r)rÚ calcobjsizer|r r(r)r[r‡Ú __sizeof__r7ÚcalcsizeÚ check_sizeofÚsysÚ getsizeofrYrÚchr)r,ÚbasesizerDZMT_sizeZME_sizer`Úir#r#r$Ú test_picklers,   ÿÿþ ÿÿýzSizeofTests.test_picklercsŽt d¡}tj‰t d¡‰t d¡‰|j‰dD]\}dD]R}ˆt ¡||d}|  t   |¡|¡ˆ||dˆt |ƒdt |ƒdƒq6q.|t d ƒdt d ƒd‰‡‡‡‡‡fd d „}|d dd ƒ|d gdddƒ|dd„t dƒDƒddƒdd„}||d ƒdd ƒ||dƒddƒ||dƒddƒ||dƒddƒ||dƒddƒˆt t dd ¡¡d d d}| ¡ˆ|ˆdˆddƒdS)Nz2P2n2P 2P2n2i5P 2P3n8P2n2iÚPÚn)ÚASCIIzUTF-16zlatin-1)ÚstrictÚreplace©ÚencodingÚerrorsr’rVrŸr csDt |¡}ˆt |¡ddd}| ¡ˆ|ˆ|ˆ|ˆƒdS)NrŸr r¢)rrr(r)r)ÚdataZ memo_sizeZ marks_sizerr0©rr`ržZstdsizer*r#r$Úcheck_unpickler3s   ÿz3SizeofTests.test_unpickler..check_unpicklerrédécSsg|] }t|ƒ‘qSr#)r™)Ú.0r›r#r#r$Ú >óz.SizeofTests.test_unpickler..é€cSsd}t|ƒD] }||g}q |Sr<)rY)Zdeepr¥r›r#r#r$Úrecurse?s  z+SizeofTests.test_unpickler..recurseé2é@é<éŒÚaé)rr“r|r"r7r•r–r(r)r[r‡r”ÚlenrYrrr)r,ršr£r¤r0r§r®r#r¦r$Útest_unpickler#sL   ÿÿþþþþ  ÿzSizeofTests.test_unpicklerN)rrrrr–rœr¶r#r#r#r$rsr>)Ú _elementtreezxml.etree.ElementTree)Ú cStringIOr()ÚStringIOr()ÚcPickler>)Ú exceptionsÚ StandardErrorÚbuiltinsÚ Exception)ÚUserDictr¿rvr¿)ÚsocketÚ _socketobjectrÀÚ SocketType)Ú __builtin__Ú basestringr½ÚstrcCs6||ftvrt||f\}}n|tvr.t|}||fSr&)rr©ÚmoduleÚnamer#r#r$Úmapping^s  rÉcCs6||ftvrt||f\}}n|tvr.t|}||fSr&)rrrÆr#r#r$Úreverse_mappinges  rÊc Cs¬z tj|WSty¦z t|ƒWnptyd}z&tjrLtd||fƒt‚WYd}~nŒr¬z0CompatPickleTests.test_import..cSsh|] \}}|’qSr#r#rßr#r#r$ràr¬)ÚsetrÚvaluesrrrrÑr9)r,rËrÇr#r#r$Ú test_import‰s    zCompatPickleTests.test_importc Cst ¡D]‚\}}| ||f¡\z t|ƒWnty>Yn0|dd…dkrl| |t¡| t||¡Wdƒq1s€0YqdS)NrVÚ_)rÚitemsÚsubTestrÑr9ZassertInrr[)r,Úmodule3Úmodule2r#r#r$Útest_import_mapping”s   z%CompatPickleTests.test_import_mappingc Cs t ¡D]ü\\}}\}}| ||f||ff¡Æ||fdkrXt||ƒ}| t|tƒ¡nŽ||fdkr€t||ƒ}| t|tƒ¡nft||ƒ\}}|dd…dkr²|  ||f||f¡zt||ƒ}WntyÒYn0|  t||ƒ|¡Wdƒq1sú0YqdS)N©r»ÚOSError©r»r9rVrä) rrårærÕZ assertTruerÙrër9rÉr[)r,rçÚname3rèÚname2rÜrÇrÈr#r#r$Útest_name_mappingŸs      z#CompatPickleTests.test_name_mappingc Cst ¡D]ö\}}| ||f¡Ðz t|ƒWn2ty^}ztjrJt|ƒWYd}~n d}~00||ftvr¼t   |d¡|kr¼t  ¡D]$\\}}\}}||f||fkr„q¼q„|  d||f¡t   ||¡}t  ||¡}|  ||¡Wdƒq1sô0YqdS)Nz No reverse mapping from %r to %r)rrårærÑr9rrÎrÏÚALT_IMPORT_MAPPINGrÚgetrZfailr[) r,rèrçrÐZm3Zn3Zm2Zn2rÇr#r#r$Útest_reverse_import_mapping³s&  ÿÿ  z-CompatPickleTests.test_reverse_import_mappingc CsÊt ¡D]¼\\}}\}}| ||f||ff¡†zt||ƒ}WntyPYn0t||ƒ\}}||||ftvr„| ||f||f¡t||ƒ\}}| ||f||f¡Wdƒq1sº0YqdSr&) rrårærÕr9rÊÚALT_NAME_MAPPINGr[rÉ)r,rèrîrçrírÜrÇrÈr#r#r$Útest_reverse_name_mappingÇs z+CompatPickleTests.test_reverse_name_mappingc CsH| tddƒd¡| tddƒd¡| tddƒd¡| tddƒd¡| tddƒd ¡ttƒD]à\}}| |¡¼|tttt fvr”Wdƒqb|t urºt |t ƒrº| td|ƒd ¡nh|t uröt |t ƒrö| td|ƒd ¡| td|ƒd|f¡n,| td|ƒd|f¡| td|ƒd|f¡Wdƒqb1s80YqbdS) Nr»r¼)r½r¾r¾r½)r»r¾rë)r½rërêrì) r[rÉrÊrÝr½ræÚBlockingIOErrorÚResourceWarningÚStopAsyncIterationÚRecursionErrorrërÙr9)r,rÈrÐr#r#r$Útest_exceptionsÔsP ÿ ÿ ÿ ÿ ÿ ý ÿ ÿ ÿ ÿ ÿz!CompatPickleTests.test_exceptionsc Csvt d¡}t|ƒD]^\}}| |¡<| td|ƒd|f¡| td|ƒd|f¡Wdƒq1sf0YqdS)Nzmultiprocessing.contextÚmultiprocessing)rÚ import_modulerÝrær[rÊrÉ)r,rÇrÈrÐr#r#r$Útest_multiprocessing_exceptionsõs   ÿ ÿz1CompatPickleTests.test_multiprocessing_exceptionsN) rrrrãrérïròrôrùrür#r#r#r$rÞˆs   !rÞcCsXtttttttttg }t r@|  t t t tttttttttttg¡tj|Žt t¡dSr&)rr%r;rSrTrnrtrÞrxÚhas_c_implementationÚextendr{r}r~r€rr‚rƒrkr„rŠrŒrrErrZ run_unittestZ run_doctestr)Ztestsr#r#r$Ú test_mainÿs"ý ù rÿÚ__main__)AÚ_compat_picklerrrrr½rr(rvr7r—r\ZunittestÚtestrZtest.pickletesterrrr r r r r rrrr|rýr9rr%r;rEr‡rGrSrTrkrnrtrxr{r}r~r€rr‚rƒr„rŠrŒrrjZTestCaserrðrórÉrÊrÑrÕrÝrÞrÿrr#r#r#r$Ús„             ÿ ÿ ÿC Aw