Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_pickle.cpython-310.opt-2.pyc

o

0�i�N�@sNddlmZmZmZmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlmZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZzddlZdZWne y�dZYnwGdd�deej!�Z"Gdd�deej!�Z#Gdd�deej!�Z$Gdd�deeeej!�Z%Gdd�de&�Z'Gdd�dee'ej!�Z(Gdd�dee'ej!�Z)Gdd �d eej!�Z*Gd!d"�d"eej!�Z+Gd#d$�d$eej!�Z,Gd%d&�d&eej!�Z-e�rqGd'd(�d(eej!�Z.Gd)d*�d*e#�Z/Gd+d,�d,e$�Z0Gd-d.�d.e(�Z1Gd/d0�d0e)�Z2Gd1d2�d2e$�Z3Gd3d4�d4e$�Z4Gd5d6�d6eej!�Z5Gd7d8�d8eej!�Z6Gd9d:�d:eej!�Z7Gd;d<�d<eej!�Z8ej9Gd=d>�d>ej!��Z:hd?�Z;hd@�Z<dAdB�Z=dCdD�Z>dEdF�Z?dGdH�Z@dIdJ�ZAGdKdL�dLej!�ZBdMdN�ZCeDdOk�r�e�E�dSdS)P�)�IMPORT_MAPPING�REVERSE_IMPORT_MAPPING�NAME_MAPPING�REVERSE_NAME_MAPPINGN)�support)�
import_helper)�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!�7/opt/alt/python310/lib64/python3.10/test/test_pickle.pyr#s




rc@s6eZdZejZefZeje	e
eej
eefZdd�ZdS)�PyUnpicklerTestscK�$t�|�}|j|fi|��}|��S�N��io�BytesIO�	unpicklerr��self�buf�kwds�f�ur!r!r"r4�
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)�PyPicklerTestsNcKs<t��}|j||fi|��}|�|�|�d�t|���S�Nr)r'r(�picklerr�seek�bytes�read)r+�arg�proto�kwargsr.�pr!r!r"r?s


zPyPicklerTests.dumpscKr$r%r&r*r!r!r"rFr0zPyPicklerTests.loadsr%)
rrrrrr=rr)rrr!r!r!r"r;:s

r;c@sBeZdZejefZejeee	e
jeefZ
ddd�Zdd�ZdZdS)�InMemoryPickleTestsNcKstj||fi|��Sr%)rr)r+rAZprotocolrCr!r!r"rTszInMemoryPickleTests.dumpscKstj|fi|��Sr%)rr)r+r,r-r!r!r"rWszInMemoryPickleTests.loadsr%)rrrrr3r1r2r4r5r6r7r8r9r:rrZ+test_framed_write_sizes_with_delayed_writerr!r!r!r"rELs
�
rEc@seZdZddd�Zdd�ZdS)�PersistentPicklerUnpicklerMixinNcs:G�fdd�d�j�}t��}|||�}|�|�|��S)Nc�eZdZ�fdd�ZdS)z:PersistentPicklerUnpicklerMixin.dumps.<locals>.PersPicklerc�
��|�Sr%)�
persistent_id��subself�obj�r+r!r"rIa�
zHPersistentPicklerUnpicklerMixin.dumps.<locals>.PersPickler.persistent_idN�rrrrIr!rMr!r"�PersPickler`�rP)r=r'r(r�getvalue)r+rArBrPr.rDr!rMr"r_s


z%PersistentPicklerUnpicklerMixin.dumpscs8G�fdd�d�j�}t�|�}||fi|��}|��S)NcrG)z<PersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpicklercrHr%)�persistent_loadrJrMr!r"rSjrNzLPersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpickler.persistent_loadN�rrrrSr!rMr!r"�
PersUnpicklerirQrU)r)r'r(r)r+r,r-rUr.r/r!rMr"rhs
z%PersistentPicklerUnpicklerMixin.loadsr%)rrrrrr!r!r!r"rF]s
	rFc@�eZdZejZejZdS)�PyPersPicklerTestsN)rrrrrr=rr)r!r!r!r"rWqs
rWc@sBeZdZejZejZej	dd��Z
ej	dd��Zej	dd��ZdS)�PyIdPersPicklerTestsc�^�fdd�}Gdd�d�j�}||�Gdd�d�j�}||�Gdd�d�j�}||�dS)Ncs�ttjd�D]}t��}|||�}|�d�����|���d�q|t���}��|�	d�d�t
�|�}~��|��dS�N��abc�def)
�ranger�HIGHEST_PROTOCOLr'r(r�assertEqualrrRrI�weakref�ref�assertIsNone)rrBr.r=�rrMr!r"�check�s


z@PyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.checkc@�eZdZdd�ZdS)�FPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPicklercS�|Sr%r!rJr!r!r"rI���TPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_idNrOr!r!r!r"rP��rPc@�eZdZedd��ZdS)rgcSrhr%r!)�clsrLr!r!r"rI��rjN)rrr�classmethodrIr!r!r!r"rP��c@rl)rgcS�|Sr%r!)rLr!r!r"rI�rnrjN)rrrrrIr!r!r!r"rP�rp)r=)r+rerPr!rMr"�test_pickler_reference_cycle~sz1PyIdPersPicklerTests.test_pickler_reference_cyclecsvG�fdd�d|j�}Gdd�d�}|��|t���}|�|j��t���}|�|��~�t�	�|�
|��dS)NcseZdZ��fdd�Z�ZS)zPPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.Picklercs�|_t�j|i|��dSr%)�dispatch_table�super�__init__)r+�argsrC)�	__class__�tabler!r"ru�szYPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.Pickler.__init__)rrrru�
__classcell__r!�rx)rwr"r�src@�eZdZdS)zVPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.DispatchTableN�rrrr!r!r!r"�
DispatchTable��r})r=r'r(ZassertIsrsrarbZassertIsNotNonerZ
gc_collectrc)r+rr}r=Z	table_refr!rzr"�*test_custom_pickler_dispatch_table_memleak�s
z?PyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleakcrY)Ncstttjd�D]}|t���d|���}��|��d�q|t���}��|�d�d�t	�
|�}~��|��dSrZ)r^rr_r'r(rr`rrSrarbrc)r rBr)rdrMr!r"re�s
zBPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.checkc@rf)�JPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklercSrhr%r!)rK�pidr!r!r"rS�ri�ZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadNrTr!r!r!r"rU�rkrUc@rl)r�cSrhr%r!)rmr�r!r!r"rS�rnr�N)rrrrorSr!r!r!r"rU�rpc@rl)r�cSrqr%r!)r�r!r!r"rS�rnr�N)rrrrrSr!r!r!r"rU�rp)r))r+rerUr!rMr"�test_unpickler_reference_cycle�s
z3PyIdPersPicklerTests.test_unpickler_reference_cycleN)
rrrrrr=rr)r�cpython_onlyrrrr�r!r!r!r"rXxs

rXc@rV)�PyPicklerUnpicklerObjectTestsN)rrrrr�
pickler_classr�unpickler_classr!r!r!r"r��s
r�c@�eZdZejZdd�ZdS)�PyDispatchTableTestscC�
tj��Sr%�rrs�copyrMr!r!r"�get_dispatch_table�rNz'PyDispatchTableTests.get_dispatch_tableN�rrrrrr�r�r!r!r!r"r���r�c@r�)�PyChainDispatchTableTestscC�t�itj�Sr%��collections�ChainMaprrsrMr!r!r"r���z,PyChainDispatchTableTests.get_dispatch_tableNr�r!r!r!r"r��r�r�c@�$eZdZGdd�deje�ZeZdS)�PyPicklerHookTestsc@r{)z'PyPicklerHookTests.CustomPyPicklerClassNr|r!r!r!r"�CustomPyPicklerClass�sr�N)rrrrrrr�r�r!r!r!r"r��s
�r�c@s,eZdZddlmZmZmZmZmZm	Z	dS)�CPickleTestsr)rrrrrr N)
rrr�_picklerrrrrr r!r!r!r"r��s$r�c@s"eZdZejZejfZejfZ	dS)�CUnpicklerTestsN)
rrrr�r r)rr3r2r:r!r!r!r"r��sr�c@rV)�
CPicklerTestsN�rrrr�rr=r r)r!r!r!r"r���
r�c@rV)�CPersPicklerTestsNr�r!r!r!r"r��r�r�c@rV)�CIdPersPicklerTestsNr�r!r!r!r"r�r�r�c@�eZdZejZejZdS)�CDumpPickle_LoadPickleN)	rrrr�rr=rrr)r!r!r!r"r�r�r�c@r�)�DumpPickle_CLoadPickleN)	rrrrrr=r�r r)r!r!r!r"r�r�r�c@s eZdZejZejZdd�ZdS)�CPicklerUnpicklerObjectTestscCs�|�t���}|�t��t|_Wd�n1swY|�t��
ddi|_Wd�n1s4wYddi|_dS)N���r[)r�r'r(ZassertRaises�	TypeError�objectZmemor6)r+r)r!r!r"�test_issue18339s��z,CPicklerUnpicklerObjectTests.test_issue18339N)	rrrr�rr�r r�r�r!r!r!r"r�sr�c@r�)�CDispatchTableTestscCr�r%r�rMr!r!r"r�rNz&CDispatchTableTests.get_dispatch_tableN�rrrrrr�r�r!r!r!r"r��r�c@r�)�CChainDispatchTableTestscCr�r%r�rMr!r!r"r� r�z+CChainDispatchTableTests.get_dispatch_tableNr�r!r!r!r"r�r�r�c@r�)�CPicklerHookTestsc@r{)z%CPicklerHookTests.CustomCPicklerClassNr|r!r!r!r"�CustomCPicklerClass$r~r�N)rrrr�rrr�r�r!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|��q6||||d|d�dS)	NZ7P2n3i2n3i2PZ3nP0nZPn0P�sxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx�� r)r�calcobjsizer�rr'r(r`r��
__sizeof__r7�calcsize�check_sizeof�sys�	getsizeofr^r�chr)r+�basesizerDZMT_sizeZME_sizere�ir!r!r"�test_pickler,s,


�����
�zSizeofTests.test_picklercs�t�d�}tj�t�d��t�d��|j�dD].}dD])}�t��||d�}|�	t
�|�|��||d�t|�dt|�d�qq|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�r[r�r�csDt�|�}�t�|�ddd�}|���|�|�|��dS)Nr�r�r�)rrr'r(r)�dataZ	memo_sizeZ
marks_sizerr/�r�rer�Zstdsizer)r!r"�check_unpicklerMs

�z3SizeofTests.test_unpickler.<locals>.check_unpicklerr�d�cSsg|]}t|��qSr!)r�)�.0r�r!r!r"�
<listcomp>X�z.SizeofTests.test_unpickler.<locals>.<listcomp>�cSsd}t|�D]}||g}q|Sr<)r^)Zdeepr�r�r!r!r"�recurseYs
z+SizeofTests.test_unpickler.<locals>.recurse�2�@�<��a�)rr�r�r r7r�r�r'r(r`r�r��lenr^rrr)r+r�r�r�r/r�r�r!r�r"�test_unpickler=sN


��������zSizeofTests.test_unpicklerN)rrrrr�r�r�r!r!r!r"r�(sr�>)Z	cStringIOr')Z_elementtreezxml.etree.ElementTree)�StringIOr')ZcPickler>)�
exceptions�
StandardError�builtins�	Exception)�socketZ
_socketobjectr�Z
SocketType)�UserDictr�r�r�)Z__builtin__Z
basestringr��strcC�<||ftvrt||f\}}||fS|tvrt|}||fSr%)rr��module�namer!r!r"�mappingx��r�cCr�r%)rrr�r!r!r"�reverse_mappingr�r�c
Cs�ztj|WStyhz't���tjrdnd}t�|t�t	|�Wd�n1s.wYWn,t
yM}z
tjrGtd||f�t�d}~wty`}ztjr[t|��d}~wwtj|YSw)N�always�ignorezCan't import module %r: %s)
r��modules�KeyError�warnings�catch_warningsr�verbose�simplefilter�DeprecationWarning�
__import__r5�printr9)r��action�excr!r!r"�	getmodule�s.

������r�cCs&t|�}|�d�D]}t||�}q	|S)N�.)r��split�getattr)r�r�rLr�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	Csltt���}|tt�O}|dd�tD�O}|dd�t��D�O}|D]}zt|�Wq"ty3Yq"wdS)NcS�h|]\}}|�qSr!r!�r�r�r�r!r!r"�	<setcomp>�r�z0CompatPickleTests.test_import.<locals>.<setcomp>cSrr!r!rr!r!r"r�r�)�setr�valuesrrrr�r9)r+r�r�r!r!r"�test_import�s��zCompatPickleTests.test_importc
Cs�t��D]A\}}|�||f��.zt|�Wn	tyYnw|dd�dkr6|�|t�|�t||�Wd�n1s@wYqdS)Nr[�_)r�items�subTestr�r9ZassertInrr`)r+�module3�module2r!r!r"�test_import_mapping�s�����z%CompatPickleTests.test_import_mappingc
Cs
t��D]~\\}}\}}|�||f||ff��c||fdkr,t||�}|�t|t��nG||fdkr@t||�}|�t|t��n3t||�\}}|dd�dkrY|�	||f||f�zt||�}Wn	tyiYn
w|�	t||�|�Wd�n1s}wYqdS)N�r��OSError�r�r9r[r)
rrr	r�Z
assertTruer�rr9r�r`)r+r
�name3r�name2r�r�r�r!r!r"�test_name_mapping�s*

�����z#CompatPickleTests.test_name_mappingc	Cst��D]{\}}|�||f��hzt|�Wnty/}z
tjr%t|�WYd}~nd}~ww||ftvr^t	�
|d�|kr^t��D]\\}}\}}||f||fkrTn
qB|�d||f�t	�
||�}t�
||�}|�
||�Wd�n1szwYqdS)Nz No reverse mapping from %r to %r)rrr	r�r9rr�r��ALT_IMPORT_MAPPINGr�getrZfailr`)	r+rr
r�Zm3Zn3Zm2Zn2r�r!r!r"�test_reverse_import_mapping�s0�������z-CompatPickleTests.test_reverse_import_mappingc
Cs�t��D]^\\}}\}}|�||f||ff��Czt||�}Wn	ty(Ynwt||�\}}||||ftvrB|�||f||f�t||�\}}|�||f||f�Wd�n1s]wYqdSr%)	rrr	r�r9r��ALT_NAME_MAPPINGr`r�)r+rrr
rr�r�r�r!r!r"�test_reverse_name_mapping�s����z+CompatPickleTests.test_reverse_name_mappingc	CsJ|�tdd�d�|�tdd�d�|�tdd�d�|�tdd�d�|�tdd�d	�tt�D]q\}}|�|��`|tttt	t
fvrL	Wd�q1|tur_t|t�r_|�td|�d	�n4|t
ur}t|t
�r}|�td|�d
�|�td|�d|f�n|�td|�d|f�|�td|�d|f�Wd�n1s�wYq1dS)Nr�r�)r�r�r�r�)r�r�r)r�rr
r)r`r�r�r�r�r	�BlockingIOError�ResourceWarning�StopAsyncIteration�RecursionError�EncodingWarningrr�r9)r+r�r�r!r!r"�test_exceptions�s\����������������z!CompatPickleTests.test_exceptionsc	Csvt�d�}t|�D]/\}}|�|��|�td|�d|f�|�td|�d|f�Wd�n1s3wYq	dS)Nzmultiprocessing.contextZmultiprocessing)r�
import_moduler�r	r`r�r�)r+r�r�r�r!r!r"�test_multiprocessing_exceptionss
�����z1CompatPickleTests.test_multiprocessing_exceptionsN)
rrrrrrrrrrr!r!r!r"r�s
"rcCs|�t���|Sr%)ZaddTest�doctestZDocTestSuite)�loaderZtests�patternr!r!r"�
load_testssr#�__main__)FZ_compat_picklerrrrr�rr'r�r7r�r�rar Zunittest�testrZtest.supportrZtest.pickletesterrr	r
rrr
rrrrr�Zhas_c_implementationr9ZTestCaserr#r;rEr�rFrWrXr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�r�r�r�rr#r�mainr!r!r!r"�<module>s��	���Z
Ax
�