HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_pickle.cpython-37.pyc
B

��gJJ�@s�ddlmZmZmZmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZyddlZdZWnek
r�d
ZYnXGdd�de�ZGdd�de�ZGdd�de�ZGdd�deee�ZGdd�de�Z Gdd�dee �Z!Gdd�dee �Z"Gdd�de�Z#Gdd�de�Z$Gd d!�d!e�Z%e�rTGd"d#�d#e�Z&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+Gd.d/�d/e�Z,Gd0d1�d1e�Z-Gd2d3�d3e�Z.Gd4d5�d5e�Z/ej0Gd6d7�d7ej1��Z2d8d9d:d;hZ3d<d=d>d?hZ4d@dA�Z5dBdC�Z6dDdE�Z7dFdG�Z8dHdI�Z9GdJdK�dKej1�Z:dLdM�Z;e<dNk�r�e;�dS)O�)�IMPORT_MAPPING�REVERSE_IMPORT_MAPPING�NAME_MAPPING�REVERSE_NAME_MAPPINGN)�support)�AbstractUnpickleTests)�AbstractPickleTests)�AbstractPickleModuleTests)�AbstractPersistentPicklerTests)�&AbstractIdentityPersistentPicklerTests)�#AbstractPicklerUnpicklerObjectTests)�AbstractDispatchTableTests)�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�rr�,/usr/local/lib/python3.7/test/test_pickle.pyrs



rc@s6eZdZejZefZeje	e
eej
eefZdd�ZdS)�PyUnpicklerTestscKs t�|�}|j|f|�}|��S)N)�io�BytesIO�	unpicklerr)�self�buf�kwds�f�urrrr/s
zPyUnpicklerTests.loadsN)rrrrrr#�
IndexError�bad_stack_errors�UnpicklingError�EOFError�AttributeError�
ValueError�struct�error�ImportError�truncated_errorsrrrrrr 'sr c@s*eZdZejZejZddd�Zdd�Z	dS)�PyPicklerTestsNcCs4t��}|�||�}|�|�|�d�t|���S)Nr)r!r"�picklerr�seek�bytes�read)r$�arg�protor'�prrrr:s


zPyPicklerTests.dumpscKs t�|�}|j|f|�}|��S)N)r!r"r#r)r$r%r&r'r(rrrrAs
zPyPicklerTests.loads)N)
rrrrrr4rr#rrrrrrr35s
r3c@sBeZdZejefZejeee	e
jeefZ
ddd�Zdd�ZdZdS)�InMemoryPickleTestsNcCst�||�S)N)rr)r$r8ZprotocolrrrrOszInMemoryPickleTests.dumpscKstj|f|�S)N)rr)r$r%r&rrrrRszInMemoryPickleTests.loads)N)rrrrr+r)r*r,r-r.r/r0r1r2rrZ+test_framed_write_sizes_with_delayed_writerrrrrr;Gs

r;c@seZdZddd�Zdd�ZdS)�PersistentPicklerUnpicklerMixinNcs:G�fdd�d�j�}t��}|||�}|�|�|��S)NcseZdZ�fdd�ZdS)z:PersistentPicklerUnpicklerMixin.dumps.<locals>.PersPicklercs
��|�S)N)�
persistent_id)�subself�obj)r$rrr=\szHPersistentPicklerUnpicklerMixin.dumps.<locals>.PersPickler.persistent_idN)rrrr=r)r$rr�PersPickler[sr@)r4r!r"r�getvalue)r$r8r9r@r'r:r)r$rrZs


z%PersistentPicklerUnpicklerMixin.dumpscs4G�fdd�d�j�}t�|�}||f|�}|��S)NcseZdZ�fdd�ZdS)z<PersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpicklercs
��|�S)N)�persistent_load)r>r?)r$rrrBeszLPersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpickler.persistent_loadN)rrrrBr)r$rr�
PersUnpicklerdsrC)r#r!r"r)r$r%r&rCr'r(r)r$rrcs
z%PersistentPicklerUnpicklerMixin.loads)N)rrrrrrrrrr<Xs
	r<c@seZdZejZejZdS)�PyPersPicklerTestsN)rrrrrr4rr#rrrrrDlsrDc@s4eZdZejZejZej	dd��Z
ej	dd��ZdS)�PyIdPersPicklerTestscs^�fdd�}Gdd�d�j�}||�Gdd�d�j�}||�Gdd�d�j�}||�dS)Ncs�xHttjd�D]6}t��}|||�}|�d�����|���d�qW|t���}��|�	d�d�t
�|�}~��|��dS)N��abc�def)
�ranger�HIGHEST_PROTOCOLr!r"r�assertEqualrrAr=�weakref�ref�assertIsNone)rr9r'r4�r)r$rr�check{s


z@PyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.checkc@seZdZdd�ZdS)zFPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPicklercSs|S)Nr)r>r?rrrr=�szTPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_idN)rrrr=rrrrr@�sr@c@seZdZedd��ZdS)zFPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPicklercSs|S)Nr)�clsr?rrrr=�szTPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_idN)rrr�classmethodr=rrrrr@�sc@seZdZedd��ZdS)zFPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPicklercSs|S)Nr)r?rrrr=�szTPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_idN)rrrrr=rrrrr@�s)r4)r$rPr@r)r$r�test_pickler_reference_cycleysz1PyIdPersPicklerTests.test_pickler_reference_cyclecs^�fdd�}Gdd�d�j�}||�Gdd�d�j�}||�Gdd�d�j�}||�dS)Ncsxx<ttjd�D]*}|t���d|���}��|��d�qW|t���}��|�d�d�t	�
|�}~��|��dS)NrFrGrH)rIrrJr!r"rrKrrBrLrMrN)rr9r#rO)r$rrrP�s
zBPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.checkc@seZdZdd�ZdS)zJPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklercSs|S)Nr)r>�pidrrrrB�szZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadN)rrrrBrrrrrC�srCc@seZdZedd��ZdS)zJPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklercSs|S)Nr)rQrTrrrrB�szZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadN)rrrrRrBrrrrrC�sc@seZdZedd��ZdS)zJPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklercSs|S)Nr)rTrrrrB�szZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadN)rrrrrBrrrrrC�s)r#)r$rPrCr)r$r�test_unpickler_reference_cycle�s
z3PyIdPersPicklerTests.test_unpickler_reference_cycleN)rrrrrr4rr#r�cpython_onlyrSrUrrrrrEssrEc@seZdZejZejZdS)�PyPicklerUnpicklerObjectTestsN)rrrrr�
pickler_classr�unpickler_classrrrrrW�srWc@seZdZejZdd�ZdS)�PyDispatchTableTestscCs
tj��S)N)r�dispatch_table�copy)r$rrr�get_dispatch_table�sz'PyDispatchTableTests.get_dispatch_tableN)rrrrrrXr]rrrrrZ�srZc@seZdZejZdd�ZdS)�PyChainDispatchTableTestscCst�itj�S)N)�collections�ChainMaprr[)r$rrrr]�sz,PyChainDispatchTableTests.get_dispatch_tableN)rrrrrrXr]rrrrr^�sr^c@s,eZdZddlmZmZmZmZmZm	Z	dS)�CPickleTestsr)rrrrrrN)
rrr�_picklerrrrrrrrrrra�srac@s"eZdZejZejfZejfZ	dS)�CUnpicklerTestsN)
rrrrbrr#rr+r*r2rrrrrc�srcc@seZdZejZejZdS)�
CPicklerTestsN)rrrrbrr4rr#rrrrrd�srdc@seZdZejZejZdS)�CPersPicklerTestsN)rrrrbrr4rr#rrrrre�srec@seZdZejZejZdS)�CIdPersPicklerTestsN)rrrrbrr4rr#rrrrrf�srfc@seZdZejZejZdS)�CDumpPickle_LoadPickleN)	rrrrbrr4rrr#rrrrrg�srgc@seZdZejZejZdS)�DumpPickle_CLoadPickleN)	rrrrrr4rbrr#rrrrrh�srhc@s eZdZejZejZdd�ZdS)�CPicklerUnpicklerObjectTestsc	CsX|�t���}|�t��t|_WdQRX|�t��ddi|_WdQRXddi|_dS)N���rF)rYr!r"ZassertRaises�	TypeError�objectZmemor.)r$r#rrr�test_issue18339�sz,CPicklerUnpicklerObjectTests.test_issue18339N)	rrrrbrrXrrYrmrrrrri�sric@seZdZejZdd�ZdS)�CDispatchTableTestscCs
tj��S)N)rr[r\)r$rrrr]�sz&CDispatchTableTests.get_dispatch_tableN)rrrrrrXr]rrrrrn�srnc@seZdZejZdd�ZdS)�CChainDispatchTableTestscCst�itj�S)N)r_r`rr[)r$rrrr]�sz+CChainDispatchTableTests.get_dispatch_tableN)rrrrrrXr]rrrrro�sroc@s"eZdZejZdd�Zdd�ZdS)�SizeofTestscCs�t�d�}t�t���}|�t�|�|�t	�
d�}t	�
d�}|j}||||d|t�
d��xtd�D]}|�t|��qnW||||d|d�dS)	NZ6P2n3i2n3iPZ3nP0nZPn0P�sxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx�� r)r�calcobjsizerbrr!r"rKrl�
__sizeof__r/�calcsize�check_sizeof�sys�	getsizeofrIr�chr)r$�basesizer:ZMT_sizeZME_sizerP�irrr�test_picklers


zSizeofTests.test_picklercs�t�d�}tj�t�d��t�d��|j�xhdD]`}xZdD]R}�t��||d�}|�	t
�|�|��||d�t|�dt|�d�q:Wq0W|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 2P3n6P2n2i�P�n)�ASCIIzUTF-16zlatin-1)�strict�replace)�encoding�errorsrsrFr�r�csDt�|�}�t�|�ddd�}|���|�|�|��dS)Nr�r�)r�r�)rrr!r"r)�dataZ	memo_sizeZ
marks_sizerr()r~rPr�stdsizer#rr�check_unpickler%s



z3SizeofTests.test_unpickler.<locals>.check_unpicklerr�d�cSsg|]}t|��qSr)rz)�.0r|rrr�
<listcomp>0sz.SizeofTests.test_unpickler.<locals>.<listcomp>�cSs"d}xt|�D]}||g}qW|S)Nr)rI)Zdeepr�r|rrr�recurse1sz+SizeofTests.test_unpickler.<locals>.recurse�:�2�@��a�)rrtrbrr/rvrwr!r"rKrlru�lenrIrrr)r$r{r�r�r(r�r�r)r~rPrr�r#r�test_unpicklers6





.
zSizeofTests.test_unpicklerN)rrrrrwr}r�rrrrrpsrp)Z_elementtreezxml.etree.ElementTree)ZcPickler)�StringIOr!)Z	cStringIOr!)Z__builtin__Z
basestring�builtins�str)�
exceptions�
StandardErrorr��	Exception)�UserDictr�r_r�)�socketZ
_socketobjectr�Z
SocketTypecCs6||ftkrt||f\}}n|tkr.t|}||fS)N)rr)�module�namerrr�mappingPs
r�cCs6||ftkrt||f\}}n|tkr.t|}||fS)N)rr)r�r�rrr�reverse_mappingWs
r�c
Cs�y
tj|Stk
r�yt|�Wnltk
rb}ztjrNtd||f�t�Wdd}~XYn2tk
r�}ztjr�t|��Wdd}~XYnXtj|SXdS)NzCan't import module %r: %s)	rx�modules�KeyError�
__import__r-r�verbose�printr1)r��excrrr�	getmodule^s
r�cCs*t|�}x|�d�D]}t||�}qW|S)N�.)r��split�getattr)r�r�r?rrrr�getattributensr�ccs>x8t|�D],}t||�}t|t�r
t|t�r
||fVq
WdS)N)�dirr��
isinstance�type�
issubclass�
BaseException)�modr��attrrrr�get_exceptionsts
r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�CompatPickleTestsc	Csttt���}|tt�O}|dd�tD�O}|dd�t��D�O}x.|D]&}yt|�WqFtk
rjYqFXqFWdS)NcSsh|]\}}|�qSrr)r�r�r�rrr�	<setcomp>~sz0CompatPickleTests.test_import.<locals>.<setcomp>cSsh|]\}}|�qSrr)r�r�r�rrrr�s)�setr�valuesrrrr�r1)r$r�r�rrr�test_import{s
zCompatPickleTests.test_importc
Cs�x|t��D]p\}}|�||f��Tyt|�Wntk
rBYnX|dd�dkrp|�|t�|�t||�WdQRXq
WdS)NrF�_)r�items�subTestr�r1ZassertInrrK)r$�module3�module2rrr�test_import_mapping�sz%CompatPickleTests.test_import_mappingc
Cs�x�t��D]�\\}}\}}|�||f||ff���||fdkrZt||�}|�t|t��n�||fdkr�t||�}|�t|t��nht||�\}}|dd�dkr�|�	||f||f�yt||�}Wntk
r�YnX|�	t||�|�WdQRXq
WdS)N)r��OSError)r�r1rFr�)
rr�r�r�Z
assertTruer�r�r1r�rK)r$r��name3r��name2r�r�r�rrr�test_name_mapping�s 

z#CompatPickleTests.test_name_mappingc	Cs�x�t��D]�\}}|�||f���yt|�Wn0tk
r^}ztjrNt|�Wdd}~XYnX||ftkr�t	�
|d�|kr�x@t��D]"\\}}\}}||f||fkr�Pq�W|�d||f�t	�
||�}t�
||�}|�
||�WdQRXq
WdS)Nz No reverse mapping from %r to %r)rr�r�r�r1rr�r��ALT_IMPORT_MAPPINGr�getrZfailrK)	r$r�r�r�Zm3Zn3Zm2Zn2r�rrr�test_reverse_import_mapping�s"z-CompatPickleTests.test_reverse_import_mappingc
Cs�x�t��D]�\\}}\}}|�||f||ff��~yt||�}Wntk
rTYnXt||�\}}||||ftkr�|�||f||f�t||�\}}|�||f||f�WdQRXq
WdS)N)	rr�r�r�r1r��ALT_NAME_MAPPINGrKr�)r$r�r�r�r�r�r�r�rrr�test_reverse_name_mapping�sz+CompatPickleTests.test_reverse_name_mappingc
Cs*|�tdd�d�|�tdd�d�|�tdd�d�|�tdd�d�|�tdd�d	�x�tt�D]�\}}|�|���|tttt	fkr�wd|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�WdQRXqdWdS)Nr�r�)r�r�r�r�)r�r�r�)r�r�)r�r�)r�r1)
rKr�r�r�r�r��BlockingIOError�ResourceWarning�StopAsyncIteration�RecursionErrorr�r�r1)r$r�r�rrr�test_exceptions�s:
z!CompatPickleTests.test_exceptionsc
Csft�d�}xVt|�D]J\}}|�|��2|�td|�d|f�|�td|�d|f�WdQRXqWdS)Nzmultiprocessing.contextZmultiprocessing)r�
import_moduler�r�rKr�r�)r$r�r�r�rrr�test_multiprocessing_exceptions�s

z1CompatPickleTests.test_multiprocessing_exceptionsN)
rrrr�r�r�r�r�r�r�rrrrr�zs
!r�cCsTttttttttg}tr<|�	t
ttt
tttttttttg
�tj|�t�t�dS)N)rr r3rDrErZr^r��has_c_implementation�extendrarcrdrerfrgrhrWrirnror;rprZrun_unittestZrun_doctestr)Ztestsrrr�	test_main�s


r��__main__)=Z_compat_picklerrrrr�rr!r_r/rxrLZunittestZtestrZtest.pickletesterrrr	r
rrr
rrbr�r1rr r3r;rlr<rDrErWrZr^rarcrdrerfrgrhrirnrorVZTestCaserpr�r�r�r�r�r�r�r�r�rrrrr�<module>s�
	B

Bw