Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_pickle.cpython-38.opt-1.pyc
U

>��g�L�@s�ddlmZmZmZmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZzddlZdZWnek
�rdZYnXGdd�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(e�r�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<d=�d=ej5��Z6d>d?d@dAhZ7dBdCdDdEhZ8dFdG�Z9dHdI�Z:dJdK�Z;dLdM�Z<dNdO�Z=GdPdQ�dQej5�Z>dRdS�Z?e@dTk�r�e?�dS)U�)�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#�//opt/cppython/lib/python3.8/test/test_pickle.pyr s



rc@s6eZdZejZefZeje	e
eej
eefZdd�ZdS)�PyUnpicklerTestscKs t�|�}|j|f|�}|��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)�PyPicklerTestsNcKs8t��}|j||f|�}|�|�|�d�t|���S�Nr)r(r)�picklerr�seek�bytes�read)r,�arg�proto�kwargsr/�pr#r#r$r<s


zPyPicklerTests.dumpscKs t�|�}|j|f|�}|��Sr&r'r+r#r#r$rCs
zPyPicklerTests.loads)N)
rrrrrr=r!r*rrr#r#r#r$r;7s
r;c@sBeZdZejefZejeee	e
jeefZ
ddd�Zdd�ZdZdS)�InMemoryPickleTestsNcKstj||f|�Sr&)rr)r,rA�protocolrCr#r#r$rQszInMemoryPickleTests.dumpscKstj|f|�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.<locals>.PersPicklercs
��|�Sr&)�
persistent_id��subself�obj�r,r#r$rH^szHPersistentPicklerUnpicklerMixin.dumps.<locals>.PersPickler.persistent_idN�rrrrHr#rLr#r$�PersPickler]srN)r=r(r)r�getvalue)r,rArBrNr/rDr#rLr$r\s


z%PersistentPicklerUnpicklerMixin.dumpscs4G�fdd�d�j�}t�|�}||f|�}|��S)NcseZdZ�fdd�ZdS)z<PersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpicklercs
��|�Sr&)�persistent_loadrIrLr#r$rPgszLPersistentPicklerUnpicklerMixin.loads.<locals>.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��ZdS)�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.<locals>.checkc@seZdZdd�ZdS)�FPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPicklercSs|Sr&r#rIr#r#r$rH�s�TPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_idNrMr#r#r#r$rN�srNc@seZdZedd��ZdS)racSs|Sr&r#)�clsrKr#r#r$rH�srbN)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.<locals>.checkc@seZdZdd�ZdS)�JPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklercSs|Sr&r#)rJ�pidr#r#r$rP�s�ZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.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��sr�c@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)�CPicklerUnpicklerObjectTestsc	CsX|�t���}|�t��t|_W5QRX|�t��ddi|_W5QRXddi|_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�	sr�c@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������fdd�}|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�r�r`r�Zstdsizer*r#r$�check_unpickler3s

�z3SizeofTests.test_unpickler.<locals>.check_unpicklerr�d�cSsg|]}t|��qSr#)r�)�.0r�r#r#r$�
<listcomp>>sz.SizeofTests.test_unpickler.<locals>.<listcomp>�cSsd}t|�D]}||g}q|Sr<)rY)Zdeepr�r�r#r#r$�recurse?s
z+SizeofTests.test_unpickler.<locals>.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#sP


������
�zSizeofTests.test_unpicklerN)rrrrr�r�r�r#r#r#r$r�sr�)�_elementtreezxml.etree.ElementTree)�cPickler)�StringIOr()�	cStringIOr()�__builtin__�
basestring�builtins�str)�
exceptions�
StandardErrorr��	Exception)�UserDictr�rvr�)�socket�
_socketobjectr��
SocketTypecCs6||ftkrt||f\}}n|tkr.t|}||fSr&)rr��module�namer#r#r$�mapping^s
r�cCs6||ftkrt||f\}}n|tkr.t|}||fSr&)rrr�r#r#r$�reverse_mappinges
r�c
Cs�ztj|WStk
r�zt|�Wnltk
rd}ztjrPtd||f�t�W5d}~XYn2tk
r�}ztjr�t|��W5d}~XYnXtj|YSXdS)NzCan't import module %r: %s)	r��modules�KeyError�
__import__r5r�verbose�printr9)r��excr#r#r$�	getmodulelsr�cCs&t|�}|�d�D]}t||�}q|S)N�.)r��split�getattr)r�r�rKr�r#r#r$�getattribute|sr�ccs:t|�D],}t||�}t|t�rt|t�r||fVqdSr&)�dirr��
isinstance�type�
issubclass�
BaseException)�modr��attrr#r#r$�get_exceptions�s
r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�CompatPickleTestsc	Csptt���}|tt�O}|dd�tD�O}|dd�t��D�O}|D]&}zt|�WqDtk
rhYqDXqDdS)NcSsh|]\}}|�qSr#r#�r�r�r�r#r#r$�	<setcomp>�sz0CompatPickleTests.test_import.<locals>.<setcomp>cSsh|]\}}|�qSr#r#r�r#r#r$r��s)�setr�valuesrrrr�r9)r,r�r�r#r#r$�test_import�szCompatPickleTests.test_importc
Cs~t��D]p\}}|�||f��Tzt|�Wntk
r@YnX|dd�dkrn|�|t�|�t||�W5QRXqdS)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��nht||�\}}|dd�dkr�|�	||f||f�zt||�}Wntk
r�YnX|�	t||�|�W5QRXqdS)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	Cs�t��D]�\}}|�||f���zt|�Wn0tk
r\}ztjrLt|�W5d}~XYnX||ftkr�t	�
|d�|kr�t��D]$\\}}\}}||f||fkr�q�q�|�d||f�t	�
||�}t�
||�}|�
||�W5QRXqdS)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||�}Wntk
rRYnXt||�\}}||||ftkr�|�||f||f�t||�\}}|�||f||f�W5QRXqdSr&)	rr�r�r�r9r��ALT_NAME_MAPPINGr[r�)r,r�r�r�r�r�r�r�r#r#r$�test_reverse_name_mapping�sz+CompatPickleTests.test_reverse_name_mappingc
Cs0|�tdd�d�|�tdd�d�|�tdd�d�|�tdd�d�|�tdd�d	�tt�D]�\}}|�|���|tttt	fkr�W5QR�qb|t
k	r�t|t
�r�|�td|�d	�nh|tk	r�t|t�r�|�td|�d
�|�td|�d|f�n,|�td|�d|f�|�td|�d|f�W5QRXqbdS)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
Csbt�d�}t|�D]J\}}|�|��2|�td|�d|f�|�td|�d|f�W5QRXqdS)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@|�
ttt
tttttttttttg�tj|�t�t�dSr&)rr%r;rSrTrnrtr�rx�has_c_implementation�extendr{r}r~r�r�r�r�rkr�r�r�r�rEr�rZrun_unittestZrun_doctestr)Ztestsr#r#r$�	test_main�s0�
�
r��__main__)A�_compat_picklerrrrr�rr(rvr7r�r\Zunittest�testrZtest.pickletesterrrr	r
rrr
rrrr|r�r9rr%r;rEr�rGrSrTrkrnrtrxr{r}r~r�r�r�r�r�r�r�r�rjZTestCaser�r�r�r�r�r�r�r�r�r�rr#r#r#r$�<module>s�
	���C
B��w


F1le Man4ger