
    }e                         d dl Z d dlmZ d dlmZ d dlmc mZ ej                  d        Z
ej                  d        Z G d de j                        Zy)    N)Mock)eventsc                       y N r       @/usr/lib/python3/dist-packages/IPython/core/tests/test_events.pyping_receivedr
          r   c                      y r   r   )arguments    r	   event_with_argumentr      r   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)CallbackTestsc                 `    t        j                  t               t        t        d      | _        y )N)r
   r   )r   EventManagerget_ipythonr
   r   em)selfs    r	   setUpzCallbackTests.setUp   s%    %%km8E>Q'STr   c                 d   t               }| j                  j                  d|       | j                  j                  d       | j	                  |j
                  d       | j                  j                  d|       | j                  j                  d       | j	                  |j
                  d       y )Nr
      )r   r   registertriggerassertEqual
call_count
unregisterr   cbs     r	   test_register_unregisterz&CallbackTests.test_register_unregister   sy    V"-(*?B/(*r   c                     d }d }| j                   j                  d|       | j                  t        | j                   j                  d|       | j                   j	                  d|       y )Nc                       y r   r   r   r   r	   cb1z?CallbackTests.test_bare_function_missed_unregister.<locals>.cb1$       r   c                       y r   r   r   r   r	   cb2z?CallbackTests.test_bare_function_missed_unregister.<locals>.cb2'   r$   r   r
   )r   r   assertRaises
ValueErrorr   )r   r#   r&   s      r	   $test_bare_function_missed_unregisterz2CallbackTests.test_bare_function_missed_unregister#   sT    		 	#.*dgg&8&8/3O?C0r   c                     t        t              }| j                  j                  d|       t	        j
                  d      5  | j                  j                  d       d d d        y # 1 sw Y   y xY wN)side_effectr
   zError in callback)r   r(   r   r   ttAssertPrintsr   r   s     r	   test_cb_errorzCallbackTests.test_cb_error.   sR    j)"-__01 	-GGOOO,	- 	- 	-   A''A0c                     t        t              }| j                  j                  d|       t	        j
                  d      5  | j                  j                  d       d d d        y # 1 sw Y   y xY wr+   )r   KeyboardInterruptr   r   r-   r.   r   r   s     r	   test_cb_keyboard_interruptz(CallbackTests.test_cb_keyboard_interrupt4   sS    /0"-__01 	-GGOOO,	- 	- 	-r0   c                 d    dgdz   fd fdfd j                   j                  d        j                   j                  d        j                   j                  d        j                  g d        j                  g j                   j                  d          y )NF   c                      dd<   j                   j                  d       j                   j                  d       y )NTr   r
   )r   r   r   )_func1func3invokedr   s    r	   r8   z<CallbackTests.test_unregister_during_callback.<locals>.func1=   s4    GAJGG6GG_e4r   c                  H    dd<   j                   j                  d       y )NTr   r
   )r   r   )r7   func2r:   r   s    r	   r<   z<CallbackTests.test_unregister_during_callback.<locals>.func2B   s     GAJGG6r   c                      dd<   y )NT   r   )r7   r:   s    r	   r9   z<CallbackTests.test_unregister_during_callback.<locals>.func3F   s    GAJr   r
   )TTF)r   r   r   r   	callbacks)r   r8   r<   r9   r:   s   `@@@@r	   test_unregister_during_callbackz-CallbackTests.test_unregister_during_callback:   s    'A+	5
	7	 	%0%0(,g6%$''"3"3O"DEr   N)	__name__
__module____qualname__r   r    r)   r/   r3   r@   r   r   r	   r   r      s"    T
	+	1--Fr   r   )unittestunittest.mockr   IPython.corer   IPython.testing.toolstestingtoolsr-   _define_eventr
   r   TestCaser   r   r   r	   <module>rL      s\       " " 	 	 	 	<FH%% <Fr   