o
    2³cÙ	  ã                   @   sf   d dl mZ d dl mZ d dlZd dlZd dlZddlmZ G dd„ dejƒZ	e
dkr1e ¡  dS dS )	é    )Úprint_function)Úabsolute_importNé   )Ú_test_extensionc                   @   sL   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S )Ú	CAPITestsc              	   C   s    |   dt t dd„ ¡¡¡ d S )Né2   c                   S   ó   dS )Nr   © r	   r	   r	   ú]/var/www/html/gps/gps/lib/python3.10/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
   Úfoo   s   z)CAPITests.test_switch_kwargs.<locals>.fooé   é   é   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ƒ‚)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
   r      s   

ÿz%CAPITests.test_setparent.<locals>.foo)r   r   r   r   Útest_setparent)r   r   Ú	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   r   )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   ó   |   tjtj¡ d S r   )ÚassertRaisesr   ÚGreenletExitr   Útest_raise_dead_greenletr   r	   r	   r
   Útest_raise_greenlet_dead.   ó   ÿz"CAPITests.test_raise_greenlet_deadc                 C   r)   r   )r*   r   Úerrorr   Útest_raise_greenlet_errorr   r	   r	   r
   r0   2   r.   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                      sN   z
t  ¡ j ¡  W d S  ty   ˆ  t ¡ d ¡ Y d S  t jy&   t	‚w )Nr   )
r   r   r   r   Ú
ValueErrorÚappendÚsysÚexc_infor+   r    r	   ©Úseenr	   r
   r   9   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Ú
isinstancer1   Ústrr   r	   r5   r
   r7   6   s   

þ
ýzCAPITests.test_throwN)Ú__name__Ú
__module__Ú__qualname__r   r   r$   r&   r(   r-   r0   r7   r	   r	   r	   r
   r      s    r   Ú__main__)Ú
__future__r   r   r3   Úunittestr   Ú r   ÚTestCaser   r<   Úmainr	   r	   r	   r
   Ú<module>   s    Aÿ