a
    äze’  ã                   @   sÀ   d dl Z d dlZd dlmZ G dd„ dƒZG dd„ deƒZG dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZ	G dd„ deƒZ
G dd„ deƒZG dd„ deƒZG dd„ dejƒZedkr¼e ¡  dS )é    N)ÚExtensionSaverc                   @   s   e Zd ZdS )ÚCN©Ú__name__Ú
__module__Ú__qualname__© r   r   ú'/usr/lib/python3.9/test/test_copyreg.pyr      s   r   c                   @   s   e Zd ZdS )ÚWithoutSlotsNr   r   r   r   r	   r
   
   s   r
   c                   @   s   e Zd ZdZdS )ÚWithWeakref)Ú__weakref__N©r   r   r   Ú	__slots__r   r   r   r	   r      s   r   c                   @   s   e Zd ZdZdS )ÚWithPrivate©Ú__spamNr   r   r   r   r	   r      s   r   c                   @   s   e Zd ZdZdS )Ú _WithLeadingUnderscoreAndPrivater   Nr   r   r   r   r	   r      s   r   c                   @   s   e Zd ZdZdS )Ú___r   Nr   r   r   r   r	   r      s   r   c                   @   s   e Zd ZdZdS )ÚWithSingleStringÚspamNr   r   r   r   r	   r      s   r   c                   @   s   e Zd ZdZdS )ÚWithInherited)ÚeggsNr   r   r   r   r	   r      s   r   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚCopyRegTestCasec                 C   s   |   ttjtd d ¡ d S )N)ÚassertRaisesÚ	TypeErrorÚcopyregÚpickler   ©Úselfr   r   r	   Ú
test_class"   s    
ÿzCopyRegTestCase.test_classc                 C   s   |   ttjtdƒd¡ d S ©Né   znot a callable)r   r   r   r   Útyper   r   r   r	   Útest_noncallable_reduce&   s    
ÿz'CopyRegTestCase.test_noncallable_reducec                 C   s   |   ttjtdƒtd¡ d S r    )r   r   r   r   r"   Úintr   r   r   r	   Útest_noncallable_constructor*   s    

ÿz,CopyRegTestCase.test_noncallable_constructorc                 C   s   dd l }|  d|  d¡¡ d S )Nr   T)ÚcopyÚassertEqual)r   r&   r   r   r	   Ú	test_bool.   s    zCopyRegTestCase.test_boolc              	   C   sð  d\}}}t |ƒ}zR|  ttj|||¡ t |||¡ |  tj||f |k¡ |  tj| ||fk¡ |  	|tj
¡ t |||¡ |  ttj|||d ¡ |  ttj|||d ¡ |  ttj|dd … ||¡ |  ttj|dd … ||¡ |  ttj||dd … |¡ |  ttj||dd … |¡ |d tjvr\|  ttj|dd … |dd … |d ¡ W | ¡  n
| ¡  0 |  	||ftj¡ dD ]B}t |ƒ}z(t |||¡ t |||¡ W | ¡  n
| ¡  0 qˆdD ]}|  ttj|||¡ qÐd S )N)zjunk1 z junk2iÍ«  r!   )r!   iÿÿÿ)éÿÿÿÿr   l        )r   r   Ú
ValueErrorr   Úremove_extensionÚadd_extensionZ
assertTrueÚ_extension_registryÚ_inverted_registryZassertNotInÚ_extension_cacheZrestore)r   ÚmodÚfuncÚcodeÚer   r   r	   Útest_extension_registry2   sZ    

ÿ

ÿ

ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿz'CopyRegTestCase.test_extension_registryc                 C   s®   |   t t¡g ¡ |   t t¡g ¡ dg}|   t t¡|¡ dg}|   t t¡|¡ |   t t¡dg¡ |   t t¡dg¡ ddg}| 	¡  t t
¡}| 	¡  |   ||¡ d S )NZ_WithPrivate__spamZ&_WithLeadingUnderscoreAndPrivate__spamr   r   r   )r'   r   Ú
_slotnamesr
   r   r   r   r   r   Úsortr   )r   ZexpectedÚresultr   r   r	   Útest_slotnamesl   s    ÿ
zCopyRegTestCase.test_slotnamesN)	r   r   r   r   r#   r%   r(   r4   r8   r   r   r   r	   r       s   :r   Ú__main__)r   ZunittestZtest.pickletesterr   r   Úobjectr
   r   r   r   r   r   r   ZTestCaser   r   Úmainr   r   r   r	   Ú<module>   s   ]