
    Xh                     ,   d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dlZd dl	m
Z
 ej                  j                  ej                  j                  ej                  j                  e            d      Z G d de
      Z G d d	ej$                        Zy)
    N)TemporaryDirectory)patch)ZMQTerminalInteractiveShellzwritetofile.pyc                       e Zd ZdZd Zy)NonCommunicatingShellzIA testing shell class that doesn't attempt to communicate with the kernelc                      y N selfs    \/var/www/html/myenv/lib/python3.12/site-packages/jupyter_console/tests/test_image_handler.pyinit_kernel_infoz&NonCommunicatingShell.init_kernel_info   s        N)__name__
__module____qualname____doc__r   r
   r   r   r   r      s
    Sr   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	#ZMQTerminalInteractiveShellTestCasec                     t               | _        d| _        d| _        | j                  t	        j
                  | j                        j                  d      i| _        y )Ns
   dummy dataz	image/pngascii)r   shellrawmimebase64encodebytesdecodedatar   s    r   setUpz)ZMQTerminalInteractiveShellTestCase.setUp   sD    *,
 	YY 2 2488 < C CG LM	r   c                     g fd}d }| j                   }||_        ||_        ||_        ||_        |j                  d d        t              dk(  sJ y )Nc                 (    j                  |        y r	   append)r   r   pil_called_withs     r   
pil_calledzPZMQTerminalInteractiveShellTestCase.test_call_pil_by_default.<locals>.pil_called$   s    ""4(r   c                      J r	   r
   )argskwdss     r   raise_if_calledzUZMQTerminalInteractiveShellTestCase.test_call_pil_by_default.<locals>.raise_if_called'   s    5r      )r   handle_image_PILhandle_image_streamhandle_image_tempfilehandle_image_callablehandle_imagelen)r   r%   r)   r   r$   s       @r   test_call_pil_by_defaultz<ZMQTerminalInteractiveShellTestCase.test_call_pil_by_default!   s`    	)	 

!+$3!&5#&5#4&?#q(((r   c                 4   t        j                  d       ddlm}m} g g fd}fd}t        j                  |d|      5  t        j                  |d|      5  | j                  j                  | j                  | j                         d d d        d d d        | j                  t              d       | j                  t              d       | j                  d   j                         | j                         y # 1 sw Y   uxY w# 1 sw Y   yxY w)	NPILr   )Image	ImageShowc                 (    j                  |        y r	   r"   )argopen_called_withs    r   	fake_openzLZMQTerminalInteractiveShellTestCase.test_handle_image_PIL.<locals>.fake_open:       ##C(r   c                 (    j                  |        y r	   r"   )imgshow_called_withs    r   	fake_showzLZMQTerminalInteractiveShellTestCase.test_handle_image_PIL.<locals>.fake_show=   r:   r   openshowr*   )pytestimportorskipr3   r4   r5   r   objectr   r+   r   r   assertEqualr0   getvaluer   )r   r4   r5   r9   r>   r8   r=   s        @@r   test_handle_image_PILz9ZMQTerminalInteractiveShellTestCase.test_handle_image_PIL3   s    E"(	)	) \\%3 	>\\)VY7	>JJ''		499=	> 	> 	-.2-.2)!,557B	> 	> 	> 	>s$   D1DDD	DDc                 H   | j                   }dj                  |      }dj                  |      }t        ||      sJ t        ||      sJ t               5 }t        j
                  j                  |d      }t        j                  t        ||g}t        |||        t        ||      | j                  | j                         t        |d      5 }	|	j                         }
d d d        d d d        | j!                  
| j"                         y # 1 sw Y   .xY w# 1 sw Y   2xY w)Nz{0}_image_handlerzhandle_image_{0}r   rb)r   formathasattrr   ospathjoinsys
executableSCRIPT_PATHsetattrgetattrr   r   r?   readrD   r   )r   inpathhandlerr   
confignamefuncnametmpdiroutpathcmdfiletransferreds              r   check_handler_with_filez;ZMQTerminalInteractiveShellTestCase.check_handler_with_fileH   s    

(//8
%,,W5uj)))uh'''! 	*Vggll662G>>;@CE:s+$GE8$TYY		:gt$ *"iik*	* 	dhh/* *	* 	*s%   A9DDDD	DD!c                 (    | j                  dd       y )N-streamr]   r   s    r   test_handle_image_streamz<ZMQTerminalInteractiveShellTestCase.test_handle_image_stream[   s    $$S(3r   c                 (    | j                  dd       y )Nz{file}tempfilera   r   s    r   test_handle_image_tempfilez>ZMQTerminalInteractiveShellTestCase.test_handle_image_tempfile^   s    $$Xz:r   c                     g }|j                   | j                  _        | j                  j                  | j                  | j
                         | j                  t        |      d       |d   | j                  u sJ y )Nr*   r   )r#   r   callable_image_handlerr.   r   r   rD   r0   )r   called_withs     r   test_handle_image_callablez>ZMQTerminalInteractiveShellTestCase.test_handle_image_callablea   s`    ,7,>,>

)

((DII>[)1-1~***r   N)
r   r   r   r   r1   rF   r]   rb   re   ri   r
   r   r   r   r      s'    N)$C*0&4;+r   r   )r   rK   rN   rd   r   unittestunittest.mockr   rA   jupyter_console.ptshellr   rL   rM   abspathdirname__file__rP   r   TestCaser   r
   r   r   <module>rq      su     	 
 '    ? ggllGGOOBGGOOH-.0@B7 M+(*;*; M+r   