a
    [ŠÝgõ  ã                   @   sl   d dl mZ d dl mZ d dlZd dlZddlmZ ddlmZ G dd„ deƒZe	d	krhd dl
Z
e
 ¡  dS )
é    )Úprint_function)Úabsolute_importNé   )Ú_test_extension)ÚTestCasec                   @   sd   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d„ Zdd„ ZdS )Ú	CAPITestsc              	   C   s    |   dt t dd„ ¡¡¡ d S )Né2   c                   S   s   dS )Nr   © r	   r	   r	   úu/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/greenlet/tests/test_extension_interface.pyÚ<lambda>   ó    z'CAPITests.test_switch.<locals>.<lambda>)ÚassertEqualr   Útest_switchÚgreenlet©Úselfr	   r	   r
   r      s    ÿzCAPITests.test_switchc                 C   s.   dd„ }t   |¡}|  dtj|ddd¡ d S )Nc                 S   s   | | S ©Nr	   ©ÚxÚyr	   r	   r
   Úadder   s    z+CAPITests.test_switch_kwargs.<locals>.adderé   é   é   r   )r   r   r   Útest_switch_kwargs)r   r   Úgr	   r	   r
   r      s    
zCAPITests.test_switch_kwargsc                 C   s,   dd„ }t   |¡ ¡ }|  d t |¡¡ d S )Nc                  S   sB   dd„ } t   | ¡}| ¡  t  ¡ j |¡ t  ¡ j tdƒ¡ d S )Nc                   S   s(   t  ¡ j ¡  t  ¡ j ¡  tdƒ‚d S )Nz#Should never have reached this code)r   Ú
getcurrentÚparentÚswitchÚAssertionErrorr	   r	   r	   r
   Úbar   s    z2CAPITests.test_setparent.<locals>.foo.<locals>.barzShould never reach this code)r   r   r   r   Úthrowr   )r    Úchildr	   r	   r
   Úfoo   s    

ÿz%CAPITests.test_setparent.<locals>.foo)r   r   r   r   Útest_setparent)r   r#   Z	foo_childr	   r	   r
   r$      s    zCAPITests.test_setparentc                 C   s   t  ¡  d S r   )r   Útest_getcurrentr   r	   r	   r
   r%   *   s    zCAPITests.test_getcurrentc                 C   s   |   dt dd„ ¡¡ d S )Néñÿÿÿc                   S   s   dS )Nr&   r	   r	   r	   r	   r
   r   .   r   z-CAPITests.test_new_greenlet.<locals>.<lambda>)r   r   Útest_new_greenletr   r	   r	   r
   r'   -   s    zCAPITests.test_new_greenletc                 C   s   |   tjtj¡ d S r   )ÚassertRaisesr   ÚGreenletExitr   Ztest_raise_dead_greenletr   r	   r	   r
   Útest_raise_greenlet_dead0   s    ÿz"CAPITests.test_raise_greenlet_deadc                 C   s   |   tjtj¡ d S r   )r(   r   Úerrorr   Útest_raise_greenlet_errorr   r	   r	   r
   r,   4   s    ÿz#CAPITests.test_raise_greenlet_errorc                    sl   g ‰ ‡ fdd„}t   |¡}| ¡  t |¡ |  tˆ ƒd¡ |  tˆ d tƒd¡ |  t	ˆ d ƒdd¡ d S )Nc                      sR   zt  ¡ j ¡  W n: ty6   ˆ  t ¡ d ¡ Y n t jyL   t	‚Y n0 d S )Nr   )
r   r   r   r   Ú
ValueErrorÚappendÚsysÚexc_infor)   r   r	   ©Úseenr	   r
   r#   ;   s    z!CAPITests.test_throw.<locals>.foor   r   z"ValueError was not raised in foo()ztake that sucka!zmessage doesn't match)
r   r   r   Ú
test_throwr   ÚlenÚ
assertTrueÚ
isinstancer-   Ústr)r   r#   r   r	   r1   r
   r3   8   s    

þ
ýzCAPITests.test_throwc                 C   sV   |   t¡&}t t ¡ ttƒ | ¡ W d   ƒ n1 s60    Y  |  t|j	ƒd¡ d S )Nz1throw() third argument must be a traceback object)
r(   Ú	TypeErrorr   Útest_throw_exactr   r   Ú	Exceptionr   r7   Ú	exception©r   Úexcr	   r	   r
   Útest_non_traceback_paramN   s    ü"ÿz"CAPITests.test_non_traceback_paramc                 C   sX   |   t¡(}t t ¡ tƒ tƒ d ¡ W d   ƒ n1 s80    Y  |  t	|j
ƒd¡ d S )Nz0instance exception may not have a separate value)r(   r8   r   r9   r   r   r:   ÚBaseExceptionr   r7   r;   r<   r	   r	   r
   Útest_instance_of_wrong_typeY   s    ü"ÿz%CAPITests.test_instance_of_wrong_typec                 C   sT   |   t¡$}t t ¡ dd d ¡ W d   ƒ n1 s40    Y  |  t|jƒd¡ d S )NÚabcz1exceptions must be classes, or instances, not str)	r(   r8   r   r9   r   r   r   r7   r;   r<   r	   r	   r
   Útest_not_throwablee   s    ü"ÿzCAPITests.test_not_throwableN)Ú__name__Ú
__module__Ú__qualname__r   r   r$   r%   r'   r*   r,   r3   r>   r@   rB   r	   r	   r	   r
   r      s   r   Ú__main__)Ú
__future__r   r   r/   r   Ú r   r   r   rC   ZunittestÚmainr	   r	   r	   r
   Ú<module>   s   e