
    h                         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e      Ze	d	k(  rd dl
Z
 e
j                          yy)
    )print_function)absolute_importN   )_test_extension)TestCasec                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)	CAPITestsc                 v    | j                  dt        j                  t        j                  d                    y )N2   c                       y)Nr    r       PD:\EasyAligner\venv\Lib\site-packages\greenlet/tests/test_extension_interface.py<lambda>z'CAPITests.test_switch.<locals>.<lambda>   s    br   )assertEqualr   test_switchgreenletselfs    r   r   zCAPITests.test_switch   s,    ++H,=,=j,IJ	Lr   c                     d }t        j                   |      }| j                  dt        j                  |dd             y )Nc                     | |z  S Nr   xys     r   adderz+CAPITests.test_switch_kwargs.<locals>.adder   s    q5Lr            r   )r   r   r   test_switch_kwargs)r   r   gs      r   r    zCAPITests.test_switch_kwargs   s6    	e$O>>qAKLr   c                     d }t        j                   |      j                         }| j                  d t        j                  |             y )Nc                     d } t        j                   |       }|j                          t        j                         j                  j                  |       t        j                         j                  j	                  t        d             y )Nc                      t        j                         j                  j                          t        j                         j                  j                          t	        d      )Nz#Should never have reached this code)r   
getcurrentparentswitchAssertionErrorr   r   r   barz2CAPITests.test_setparent.<locals>.foo.<locals>.bar   sF    ##%,,335
 ##%,,335$%JKKr   zShould never reach this code)r   r'   r%   r&   throwr(   )r)   childs     r   fooz%CAPITests.test_setparent.<locals>.foo   sg    L %%c*ELLN!((//6!((..=>@r   )r   r'   r   r   test_setparent)r   r,   	foo_childs      r   r-   zCAPITests.test_setparent   s>    	@ %%c*113	==iHIr   c                 ,    t        j                          y r   )r   test_getcurrentr   s    r   r0   zCAPITests.test_getcurrent*   s    '')r   c                 P    | j                  dt        j                  d              y )Nc                       y)Nr2   r   r   r   r   r   z-CAPITests.test_new_greenlet.<locals>.<lambda>.   s    r   )r   r   test_new_greenletr   s    r   r4   zCAPITests.test_new_greenlet-   s    o??LMr   c                 `    | j                  t        j                  t        j                         y r   )assertRaisesr   GreenletExitr   test_raise_dead_greenletr   s    r   test_raise_greenlet_deadz"CAPITests.test_raise_greenlet_dead0   s"    !!?#K#K	Mr   c                 `    | j                  t        j                  t        j                         y r   )r6   r   errorr   test_raise_greenlet_errorr   s    r   r<   z#CAPITests.test_raise_greenlet_error4   s     NNOEE	Gr   c                 B   g fd}t        j                   |      }|j                          t        j                  |       | j	                  t              d       | j                  t        d   t              d       | j	                  t        d         dd       y )Nc                      	 t        j                         j                  j                          y # t        $ r)  j                  t        j                         d          Y y t         j                  $ r t        w xY w)Nr   )
r   r%   r&   r'   
ValueErrorappendsysexc_infor7   r(   )seens   r   r,   z!CAPITests.test_throw.<locals>.foo;   s]    %##%,,335 /CLLN1-.(( %$$%s   ,0 /A:!A:r   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!   rC   s      @r   rD   zCAPITests.test_throw8   s    	% c"	
""1%TA&tAw
+0	2 	QL#	%r   c                    | j                  t              5 }t        j                  t	        j
                         t        t               |        d d d        | j                  t        j                        d       y # 1 sw Y   /xY w)Nz1throw() third argument must be a traceback object)
r6   	TypeErrorr   test_throw_exactr   r%   	Exceptionr   rH   	exceptionr   excs     r   test_non_traceback_paramz"CAPITests.test_non_traceback_paramN   sd    y)S,,##%	 * 	S]]+L	N *)s   7A;;Bc                    | j                  t              5 }t        j                  t	        j
                         t               t               d        d d d        | j                  t        j                        d       y # 1 sw Y   /xY w)Nz0instance exception may not have a separate value)r6   rJ   r   rK   r   r%   rL   BaseExceptionr   rH   rM   rN   s     r   test_instance_of_wrong_typez%CAPITests.test_instance_of_wrong_typeY   sf    y)S,,##%	 * 	S]]+K	M *)s   ;A??Bc                     | j                  t              5 }t        j                  t	        j
                         dd d        d d d        | j                  t        j                        d       y # 1 sw Y   /xY w)Nabcz1exceptions must be classes, or instances, not str)	r6   rJ   r   rK   r   r%   r   rH   rM   rN   s     r   test_not_throwablezCAPITests.test_not_throwablee   sb    y)S,,##%	 * 	S]]+L	N *)s   +A//A8N)__name__
__module____qualname__r   r    r-   r0   r4   r9   r<   rD   rP   rS   rV   r   r   r   r	   r	      sB    LMJ&*NMG%,	N
M	Nr   r	   __main__)
__future__r   r   rA   r    r   r   r	   rW   unittestmainr   r   r   <module>r_      sE    % & 
   bN bNJ zHMMO r   