U
    e»{jï  ã                   @   s8   d dl Z d dlmZmZmZ dd„ Zdd„ Zdd„ ZdS )	é    N)Ú
convertersÚ
exceptionsÚtreec               
   C   sˆ   dd„ } z@z
| ƒ  W n0 t k
rD } ztj|dd� W 5 d }~X Y nX W n2 t k
rz } zdt|ƒksjt‚W 5 d }~X Y n
X ds„t‚d S )Nc                   S   s   t dƒ‚d S )NzThis failed)ÚRuntimeError© r   r   úf/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/io/votable/tests/exception_test.pyÚfail	   s    ztest_reraise.<locals>.failz	From here)Ú
additionalF)r   r   Z
vo_reraiseÚstrÚAssertionError)r   Úer   r   r   Útest_reraise   s    
$"r   c               
   C   s†   dddœ} d}t  tj¡�*}tjd dd| |d�}tj|| |d� W 5 Q R X t t	|d	 j
ƒ¡}d
dddddddddœ	}||ks‚t‚d S )NÚ	exceptionzfoo.xml)ÚverifyÚfilename)é*   é@   ÚcÚchar)ÚnameÚdatatypeÚconfigÚpos)r   r   r   é/   Fr   ÚW47Tz$Missing arraysize indicates length 1z"io/votable/api_exceptions.html#w47r   )	ÚnumberZis_exceptionZncharÚwarningZis_somethingÚmessageZdoc_urlZnlineZ
is_warning)ÚpytestÚwarnsr   r   r   ÚFieldr   Zget_converterZparse_vowarningr
   r   r   )r   r   ÚwÚfieldÚpartsÚmatchr   r   r   Útest_parse_vowarning   s"    
÷r%   c               
   C   sÐ   i } t  d¡}t j dd¡�„ t t j¡�8}t  || ¡ t|ƒdksHt‚dt	|d j
ƒks^t‚W 5 Q R X tjt jdd�� t  || ¡ W 5 Q R X t  || ¡ W 5 Q R X | d t j d	ks¼t‚t jjd
ksÌt‚d S )NZfooÚmax_warningsé   é   Zsuppressingr   )r$   Z_warning_countsé   é
   )r   ZW01ZconfZset_tempr   r   Z_suppressed_warningÚlenr   r
   r   r&   )ÚcfgÚwarnÚrecordr   r   r   Útest_suppress_warnings.   s    
 r/   )r   Zastropy.io.votabler   r   r   r   r%   r/   r   r   r   r   Ú<module>   s   