B
    u9a’  ã               @   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.7/test_copyreg.pyr      s   r   c               @   s   e Zd ZdS )ÚWithoutSlotsN)r   r   r   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)Ú__spamN)r   r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd ZdZdS )Ú _WithLeadingUnderscoreAndPrivate)r   N)r   r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd ZdZdS )Ú___)r   N)r   r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd ZdZdS )ÚWithSingleStringÚspamN)r   r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd ZdZdS )ÚWithInherited)ÚeggsN)r   r   r   r   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   Útype)r   r   r   r   Útest_noncallable_reduce&   s    
z'CopyRegTestCase.test_noncallable_reducec             C   s   |   ttjtdƒtd¡ d S )Nr   znot a callable)r   r   r   r   r   Úint)r   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 |ƒ}zJ|  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kr\|  ttj|dd … |dd … |d ¡ W d | ¡  X |  	||ftj¡ xBdD ]:}t |ƒ}z t |||¡ t |||¡ W d | ¡  X q‚W x"dD ]}|  ttj|||¡ qÆW 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   sH    









"



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#   r/   r3   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   ]