
    IR-e	                         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 Zd Z G d	 d
          Z G d de          ZdZd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    )copyN)assert_equal)Table)MixinRegistryError	_handlersget_mixin_handlerregister_mixin_handler)ArrayWrapperc                 d    t          t                    t          d<   t          j                     d S Nhandlers)r   r   ORIGINALclearfunctions    Hlib/python3.11/site-packages/astropy/table/mixins/tests/test_registry.pysetup_functionr      s&    	??HZO    c                 j    t          j                     t          j        t          d                    d S r   )r   r   updater   r   s    r   teardown_functionr      s,    OXj)*****r   c                       e Zd ZdS )SpamDataN)__name__
__module____qualname__ r   r   r   r      s        Dr   r   c                        e Zd Z fdZ xZS )SpamWrapperc                 N    t                                          g d           d S )Nr               )super__init__)self	__class__s    r   r'   zSpamWrapper.__init__!   s%    )))))r   )r   r   r   r'   __classcell__)r)   s   @r   r   r       s8        * * * * * * * * *r   r   z1astropy.table.mixins.tests.test_registry.SpamDatac                     t                      S Nr   objs    r   handle_spamr0   (       ==r   c                     t                      S r,   r-   r.   s    r   handle_spam_altr3   ,   r1   r   c                  D    t                      } t          |           J d S r,   )r   r   )datas    r   test_no_handlerr6   0   s%    ::DT""*****r   c                      t          t          t                     t          t	                                t          u sJ d S r,   )r	   FULL_QUALNAMEr0   r   r   r   r   r   test_register_handlerr9   5   s5    =+666XZZ((K777777r   c                     t          t          t                     t          j        t
                    5 } t          t          t                     d d d            n# 1 swxY w Y   | j        j        d         dk    sJ t          t          t          d           t          t                                t          u sJ d S )Nr   zVHandler for class astropy.table.mixins.tests.test_registry.SpamData is already definedT)force)r	   r8   r0   pytestraisesr   r3   valueargsr   r   )excs    r   test_register_handler_overriderA   :   s    =+666	)	*	* ?c}o>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 		q	 	 	 	 =/FFFFXZZ((O;;;;;;s   AA"Ac                  t    t          t          t                     t          t                    t          u sJ d S r,   )r	   r8   r0   r   r   r   r   test_get_mixin_handler_strrC   G   s1    =+666]++{::::::r   c                     t                      } t          j        t                    5  t	                      | d<   d d d            n# 1 swxY w Y   t          t          t                     t	                      | d<   t          |           dk    sJ t          | d         t                    sJ t          | d         j        g d           d S )Nar%   r!   )r   r<   r=   	TypeErrorr   r	   r8   r0   len
isinstancer   r   r5   )ts    r   test_add_columnrJ   M   s    A	y	!	!  #               =+666ZZAcFq66Q;;;;afk*****3ooo.....s   AA
A
c                     dS )Ninvalidr   r.   s    r   invalid_handlerrM   [   s    9r   c                     t                      } t          t          t                     t	          j        t                    5 }t                      | d<   d d d            n# 1 swxY w Y   |j        j	        d         dt           dk    sJ d S )NrE   r   z!Mixin handler for object of type z$ did not return a valid mixin column)
r   r	   r8   rM   r<   r=   rF   r   r>   r?   )rI   r@   s     r   test_invalid_handlerrO   _   s    A=/:::	y	!	! S#               		q . . . . 	. 	. 	. 	. 	. 	.s   A  A$'A$)r   r<   numpy.testingr   astropy.tabler   astropy.table.mixins.registryr   r   r   r	   astropy.table.table_helpersr
   r   r   r   r   r   r8   r0   r3   r6   r9   rA   rC   rJ   rM   rO   r   r   r   <module>rT      s          & & & & & &                  5 4 4 4 4 4  
+ + +
	 	 	 	 	 	 	 	* * * * *, * * *
 D    + + +
8 8 8

< 
< 
<; ; ;/ / /  
 
 
 
 
r   