U
    e»{j†	  ã                   @   sÒ   d dl m Z  d dlZd dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ i Zdd„ Zd	d
„ ZG dd„ dƒZG dd„ deƒZdZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ ZdS )"é    )ÚcopyN)Úassert_equal)ÚTable)ÚMixinRegistryErrorÚ	_handlersÚget_mixin_handlerÚregister_mixin_handler)ÚArrayWrapperc                 C   s   t tƒtd< t ¡  d S ©NÚhandlers)r   r   ÚORIGINALÚclear©Úfunction© r   úg/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/table/mixins/tests/test_registry.pyÚsetup_function   s    r   c                 C   s   t  ¡  t  td ¡ d S r
   )r   r   Úupdater   r   r   r   r   Úteardown_function   s    r   c                   @   s   e Zd ZdS )ÚSpamDataN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r      s   r   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚSpamWrapperc                    s   t ƒ  dddddg¡ d S )Nr   é   é   é   é   )ÚsuperÚ__init__)Úself©Ú	__class__r   r   r   !   s    zSpamWrapper.__init__)r   r   r   r   Ú__classcell__r   r   r!   r   r       s   r   z1astropy.table.mixins.tests.test_registry.SpamDatac                 C   s   t ƒ S ©N©r   ©Úobjr   r   r   Úhandle_spam(   s    r(   c                 C   s   t ƒ S r$   r%   r&   r   r   r   Úhandle_spam_alt,   s    r)   c                  C   s   t ƒ } t| ƒd kst‚d S r$   )r   r   ÚAssertionError)Údatar   r   r   Útest_no_handler0   s    r,   c                   C   s    t ttƒ ttƒ ƒtkst‚d S r$   )r   ÚFULL_QUALNAMEr(   r   r   r*   r   r   r   r   Útest_register_handler5   s    
r.   c               	   C   sb   t ttƒ t t¡�} t ttƒ W 5 Q R X | jjd dks>t	‚t ttdd� t
tƒ ƒtks^t	‚d S )Nr   zVHandler for class astropy.table.mixins.tests.test_registry.SpamData is already definedT)Úforce)r   r-   r(   ÚpytestÚraisesr   r)   ÚvalueÚargsr*   r   r   )Úexcr   r   r   Útest_register_handler_override:   s    

ÿÿr5   c                   C   s   t ttƒ ttƒtkst‚d S r$   )r   r-   r(   r   r*   r   r   r   r   Útest_get_mixin_handler_strG   s    
r6   c               	   C   sz   t ƒ } t t¡� tƒ | d< W 5 Q R X tttƒ tƒ | d< t| ƒdksJt	‚t
| d tƒs\t	‚t| d jdddddgƒ d S )NÚar   r   r   r   r   )r   r0   r1   Ú	TypeErrorr   r   r-   r(   Úlenr*   Ú
isinstancer   r   r+   )Útr   r   r   Útest_add_columnM   s    

r<   c                 C   s   dS )NÚinvalidr   r&   r   r   r   Úinvalid_handler[   s    r>   c               	   C   sP   t ƒ } tttƒ t t¡�}tƒ | d< W 5 Q R X |jj	d dt› d�ksLt
‚d S )Nr7   r   z!Mixin handler for object of type z$ did not return a valid mixin column)r   r   r-   r>   r0   r1   r8   r   r2   r3   r*   )r;   r4   r   r   r   Útest_invalid_handler_   s    
ÿr?   )r   r0   Znumpy.testingr   Zastropy.tabler   Zastropy.table.mixins.registryr   r   r   r   Zastropy.table.table_helpersr	   r   r   r   r   r   r-   r(   r)   r,   r.   r5   r6   r<   r>   r?   r   r   r   r   Ú<module>   s(   