Your IP : 216.73.217.129


Current Path : /opt/alt/python38/lib64/python3.8/test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/__pycache__/test_pickle.cpython-38.pyc

U

i�f�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�pickleZ_dump�dumpZ_dumps�dumps�_load�loadZ_loads�loads�_Pickler�Pickler�
_Unpickler�	Unpickler�r r �5/opt/alt/python38/lib64/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)rrrrrr'�
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:rr'rrr r r r!r87s
r8c@sBeZdZejefZejeee	e
jeefZ
ddd�Zdd�ZdZdS)�InMemoryPickleTestsNcKstj||f|�Sr#)rr)r)r>Zprotocolr@r r r!rQszInMemoryPickleTests.dumpscKstj|f|�Sr#)rr)r)r*r+r r r!rTszInMemoryPickleTests.loads)N)rrrrr0r.r/r1r2r3r4r5r6r7rrZ+test_framed_write_sizes_with_delayed_writerr r r r!rBIs
�
rBc@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!rD^szHPersistentPicklerUnpicklerMixin.dumps.<locals>.PersPickler.persistent_idN�rrrrDr rHr r!�PersPickler]srJ)r:r%r&r�getvalue)r)r>r?rJr,rAr rHr!r\s


z%PersistentPicklerUnpicklerMixin.dumpscs4G�fdd�d�j�}t�|�}||f|�}|��S)NcseZdZ�fdd�ZdS)z<PersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpicklercs
��|�Sr#)�persistent_loadrErHr r!rLgszLPersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpickler.persistent_loadN�rrrrLr rHr r!�
PersUnpicklerfsrN)r'r%r&r)r)r*r+rNr,r-r rHr!res
z%PersistentPicklerUnpicklerMixin.loads)N)rrrrrr r r r!rCZs
	rCc@seZdZejZejZdS)�PyPersPicklerTestsN)rrrrrr:rr'r r r r!rOnsrOc@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�assertEqualrrKrD�weakref�ref�assertIsNone)rr?r,r:�rrHr r!�check}s


z@PyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.checkc@seZdZdd�ZdS)�FPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPicklercSs|Sr#r rEr r r!rD�s�TPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_idNrIr r r r!rJ�srJc@seZdZedd��ZdS)r]cSs|Sr#r )�clsrGr r r!rD�sr^N)rrr�classmethodrDr r r r!rJ�sc@seZdZedd��ZdS)r]cSs|Sr#r )rGr r r!rD�sr^N)rrrrrDr r r r!rJ�s)r:)r)r\rJr rHr!�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	�
|�}~��|��dSrQ)rUrrVr%r&rrWrrLrXrYrZ)rr?r'r[rHr r!r\�s
zBPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.checkc@seZdZdd�ZdS)�JPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklercSs|Sr#r )rF�pidr r r!rL�s�ZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadNrMr r r r!rN�srNc@seZdZedd��ZdS)rbcSs|Sr#r )r_rcr r r!rL�srdN)rrrr`rLr r r r!rN�sc@seZdZedd��ZdS)rbcSs|Sr#r )rcr r r!rL�srdN)rrrrrLr r r r!rN�s)r')r)r\rNr rHr!�test_unpickler_reference_cycle�s
z3PyIdPersPicklerTests.test_unpickler_reference_cycleN)rrrrrr:rr'r�cpython_onlyrarer r r r!rPus
rPc@seZdZejZejZdS)�PyPicklerUnpicklerObjectTestsN)rrrrr�
pickler_classr�unpickler_classr r r r!rg�srgc@seZdZejZdd�ZdS)�PyDispatchTableTestscCs
tj��Sr#�r�dispatch_table�copyrHr r r!�get_dispatch_table�sz'PyDispatchTableTests.get_dispatch_tableN�rrrrrrhrnr r r r!rj�srjc@seZdZejZdd�ZdS)�PyChainDispatchTableTestscCst�itj�Sr#��collections�ChainMaprrlrHr r r!rn�sz,PyChainDispatchTableTests.get_dispatch_tableNror r r r!rp�srpc@s$eZdZGdd�deje�ZeZdS)�PyPicklerHookTestsc@seZdZdS)z'PyPicklerHookTests.CustomPyPicklerClassN�rrrr r r r!�CustomPyPicklerClass�srvN)rrrrrrrvrhr r r r!rt�s�rtc@s,eZdZddlmZmZmZmZmZm	Z	dS)�CPickleTestsr)rrrrrrN)
rrr�_picklerrrrrrr r r r!rw�srwc@s"eZdZejZejfZejfZ	dS)�CUnpicklerTestsN)
rrrrxrr'rr0r/r7r r r r!ry�sryc@seZdZejZejZdS)�
CPicklerTestsN�rrrrxrr:rr'r r r r!rz�srzc@seZdZejZejZdS)�CPersPicklerTestsNr{r r r r!r|�sr|c@seZdZejZejZdS)�CIdPersPicklerTestsNr{r r r r!r}�sr}c@seZdZejZejZdS)�CDumpPickle_LoadPickleN)	rrrrxrr:rrr'r r r r!r~�sr~c@seZdZejZejZdS)�DumpPickle_CLoadPickleN)	rrrrrr:rxrr'r r r r!r�src@s eZdZejZejZdd�ZdS)�CPicklerUnpicklerObjectTestsc	CsX|�t���}|�t��t|_W5QRX|�t��ddi|_W5QRXddi|_dS)N���rR)rir%r&ZassertRaises�	TypeError�objectZmemor3)r)r'r r r!�test_issue18339�sz,CPicklerUnpicklerObjectTests.test_issue18339N)	rrrrxrrhrrir�r r r r!r��sr�c@seZdZejZdd�ZdS)�CDispatchTableTestscCs
tj��Sr#rkrHr r r!rnsz&CDispatchTableTests.get_dispatch_tableN�rrrrrrhrnr r r r!r��sr�c@seZdZejZdd�ZdS)�CChainDispatchTableTestscCst�itj�Sr#rqrHr r r!rnsz+CChainDispatchTableTests.get_dispatch_tableNr�r r r r!r�sr�c@s$eZdZGdd�deje�ZeZdS)�CPicklerHookTestsc@seZdZdS)z%CPicklerHookTests.CustomCPicklerClassNrur r r r!�CustomCPicklerClass
sr�N)rrrrxrrr�rhr 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�calcobjsizerxrr%r&rWr��
__sizeof__r4�calcsize�check_sizeof�sys�	getsizeofrUr�chr)r)�basesizerAZMT_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�rRr�r�csDt�|�}�t�|�ddd�}|���|�|�|��dS)Nr�r�r�)rrr%r&r)�dataZ	memo_sizeZ
marks_sizerr-�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|Sr9)rU)Zdeepr�r�r r r!�recurse?s
z+SizeofTests.test_unpickler.<locals>.recurse�2�@�<��a�)rr�rxrr4r�r�r%r&rWr�r��lenrUrrr)r)r�r�r�r-r�r�r r�r!�test_unpickler#sP


������
�zSizeofTests.test_unpicklerN)rrrrr�r�r�r r r r!r�sr�)Z_elementtreezxml.etree.ElementTree)ZcPickler)�StringIOr%)Z	cStringIOr%)Z__builtin__Z
basestring�builtins�str)�
exceptions�
StandardErrorr��	Exception)�UserDictr�rrr�)�socketZ
_socketobjectr�Z
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__r2r�verbose�printr6)r��excr r r!�	getmodulelsr�cCs&t|�}|�d�D]}t||�}q|S)N�.)r��split�getattr)r�r�rGr�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�r6)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)NrR�_)r�items�subTestr�r6ZassertInrrW)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�r6rRr�)
rr�r�r�Z
assertTruer�r�r6r�rW)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�r6rr�r��ALT_IMPORT_MAPPINGr�getrZfailrW)	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�r6r��ALT_NAME_MAPPINGrWr�)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�)
rWr�r�r�r�r��BlockingIOError�ResourceWarning�StopAsyncIteration�RecursionErrorr�r�r6)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.contextZmultiprocessing)r�
import_moduler�r�rWr�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"r8rOrPrjrpr�rt�has_c_implementation�extendrwryrzr|r}r~rrgr�r�r�r�rBr�rZrun_unittestZrun_doctestr)Ztestsr r r!�	test_main�s0�
�
r��__main__)AZ_compat_picklerrrrr�rr%rrr4r�rXZunittestZtestrZtest.pickletesterrrr	r
rrr
rrrrxr�r6rr"r8rBr�rCrOrPrgrjrprtrwryrzr|r}r~rr�r�r�r�rfZTestCaser�r�r�r�r�r�r�r�r�r�rr r r r!�<module>s�
	���C
B��w