o
    ,wi                     @   sn   d Z ddlZddlmZ ddlmZ dd Zdd ZG d	d
 d
eZ	G dd dej
Zedkr5e  dS dS )zTests for reraised_exception.    N)absltest)reraised_exceptionc                   C      t d)Nztest exception
ValueError r   r   `/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/fiddle/_src/reraised_exception_test.pyfoo      r	   c                   C   s:   t dd  t  W d    d S 1 sw   Y  d S )Nc                   S   s   dS )N - test contextr   r   r   r   r   <lambda>   s    zbar.<locals>.<lambda>)r   try_with_lazy_messager	   r   r   r   r   bar   s   "r   c                   @   s   e Zd Zdd ZdS )CannotBeSubclassedErrorc                 C   r   )NzThis class is final.r   )clsr   r   r   __init_subclass__#   r
   z)CannotBeSubclassedError.__init_subclass__N)__name__
__module____qualname__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	S )
ReraisedExceptionTestc              
   C   s^   |  tt zt  W d S  ty. } z| |jd | t|d W Y d }~d S d }~ww )Nr   ztest exception - test context)assertRaisesr   r   assertEqualproxy_messagestr)selfer   r   r   test_reraise_value_error)   s   z.ReraisedExceptionTest.test_reraise_value_errorc                 C   "   t  }t|d}| || d S Nz msg)r   r   decorate_exceptionassertIsNotr   original	decoratedr   r   r   test_decorate_subclassing3      z/ReraisedExceptionTest.test_decorate_subclassingc                 C   r   )Nunused)r   r   r   assertIsr!   r   r   r   test_decorate_subclassing_fails8   r%   z5ReraisedExceptionTest.test_decorate_subclassing_failsc                 C   s`   t  }t|d}t|}t|}| t|t| | t|t| | 	|j
d d S r   )r   r   r   pickledumpsloadsr'   typer    r   r   )r   r"   r#   
serializeddeserializedr   r   r   test_pickling=   s   

z#ReraisedExceptionTest.test_picklingN)r   r   r   r   r$   r(   r/   r   r   r   r   r   '   s
    
r   __main__)__doc__r)   absl.testingr   fiddle._srcr   r	   r   	Exceptionr   TestCaser   r   mainr   r   r   r   <module>   s    